Software Developer - Sme Resume
5.00/5 (Submit Your Rating)
SUMMARY:
- Java developer with 14 years of experience in product development and resolving complex issues, with a strong desire to learn constantly and contribute to the continuous improvement of the business, and a great team player
SKILL:
- Java
- Spring
- Springboot
- Microservices
- Docker
- Kubernetes
- Kafka
- Elasticsearch
- Algorithms
- Data Structures
- Design Patterns
- J2EE
- SQL
- XML
- JSON
WORK EXPERIENCE:
Confidential
Software Developer - SME
Responsibilities:
- Currently working as lead Java software developer.
- Work and advise Pandit View’s various clients during critical phases and before product launch.
- Mentor team members and guide them with required technical information.
- Work with product management to identify requirements or enhancements on existing applications.
- Perform code reviews on code changes done by other team members.
- Monitor and update various ticket management tools.
- Work with documentation team to add/update documentation for features in progress.
- Involved in development of scalable Java applications using Rest APIs, Spring and Spring boot.
- Wrote unit tests for new features using JUnit and Mockito.
Confidential
Senior Software, R & D Engineer Software
Responsibilities:
- Primary owner of Jarvis component, responsible for making product enhancements and defect fixes, as well as working with support/customer on issues in production environments.
- Fixed multiple critical production issues related to Apache Kafka, Elasticsearch health and cluster stability in SaaS and on-prem customer environments thereby preventing loss of customer data.
- Fixed multiple security issues in code detected by code scanners like Veracode, Twistlock, etc.
- I was responsible for writing the API to store metric metadata of Application Performance Management product in Rocks DB instead of Elasticsearch, where it was stored previously.
- I was responsible for writing the code and upgrade scripts to support Application Performance Management product to use Elasticsearch 7.5 while maintaining backward compatibility with older version of Elasticsearch.
- I was involved in design and development of the OI Metric publisher micro service, which is responsible for propagating metrics from Rocks DB directly to Elasticsearch via Apache Kafka bypassing the Jarvis layer, resulting in increased data processing.
- I was part of a 2-man team responsible for the design and development of alarms integration module for transferring APM (Application Performance Management) alarms to Elasticsearch database index in JSON documents using Java Spring and REST API, which are used by DOI (Digital Operations Insight) product for various notification services and providing other intelligent insights including the cause of alarms and service impacted.
- I was a part of a 3-man team responsible for design and development of APM DOI Inventory integration module for transferring topological data from APM (Application Performance Management) to Elasticsearch database index in JSON documents using Spring Boot and REST API. This data is used by DOI (Digital Operations Insight) product to provide a Root Cause Analysis, in conjunction with the alarms data.
- I have worked with customers and professional services in resolving high priority issues in integration between APM (Application Performance Management) and DOI (Digital Operations Insight) products.
- I have mentored teammates, helping them with product and technical information as required, enabling them to resolve issues faster. Performed code reviews on teammates’ code check-ins.
- I was part of the team that wrote API for migration of Application eXperience Analysis (AXA) product data from Cassandra to Elasticsearch database.
- I wrote shell scripts for Unix based environments to automatically upgrade PostgreSQL database, when required, while upgrading the APM product. Previously, there was a need to manually uninstall the old version of PostgreSQL and install the new version of PostgreSQL before running a product upgrade which was a cause of dissatisfaction amongst many customers.
- I was responsible for automatically migrating data and customer configuration during product upgrade using Java for property migration in .properties files and XSL Transformations for merging content in .xml files. This helped retain customised values of properties that were modified by the customers and eliminated the need for manual customer backups of old data.
- Authored design document for automatic migration of data and customer configuration during product upgrade.
- Primary owner for Enterprise Server component reliability, I fixed multiple critical customer issues including,
- Performance issues which I fixed by tuning the java garbage collection configurations on the customer’s environment.
- Server hang issues which I resolved by analysing thread dumps for deadlocks or long running threads to find the root cause.Out of memory issues which I resolved by finding out the root cause of the issue using heap dump analysis.
- I was the sole owner of installer component reliability and resolved multiple critical customer issues in product installation and upgrade including,
- Database upgrade issues during product upgrade.
- Issues installing product over xTerminal for unix based environments.
- Providing workarounds for installation issues caused due to permission problems or space issues while installing as a non-root user.
- I helped improve the speed of the database schema upgrade (for PostgreSQL and Oracle databases) as well as reduced the number of files required in the upgrade process by over 50%, by developing and unit testing an xml-based schema upgrade procedure using shortest path algorithm. This algorithm calculates the best upgrade path between the end user’s old release and the current release he is trying to upgrade to and executes a minimum number of SQL commands to achieve the required schema upgrade.
- I was the secondary owner of the Enterprise Server component, and resolved multiple critical customer issues including, but not limited to
- Issues with Enterprise Server and Webserver failing to start after product upgrade due to issue in caching of osgi bundles during the upgrade process.
- Making code changes to fix an issue in the change detector plugin which monitors changes on end user’s file system and database and was not returning the author of the changes due to which customer was unable to determine the source of changes in his database and file system.
- Issue with integration between Enterprise Server and CA Performance server product, where the data base query for Oracle database was taking over 6 minutes to return the metrics for the integration-based dashboard queries. I optimized the code to reduce the time taken to run the database query to about one and half minutes (taking the same query for performance comparison).
- I authored multiple knowledge-based articles in order to create documents containing information of multiple known issues in specific components and versions of APM. This helped technical support to save a lot of time while resolving customer issues by first referring to the knowledge-based articles andadvise customer immediately rather than reach out to engineering team and wait for a response.
- Joined as a fresher, started working on sustaining team for CA Application Performance Management product, and gained reputation as a hard-working team member and a quick learner.
- I was the primary owner of the Java swing based User Interface client reliability, and resolved major issues in UI client including, but not limited to
- Freezing of the UI screen during login, due to Java class loading issues as well as product version incompatibility.
- Problems logging in to Enterprise Server over SSL ports, by importing required s in the appropriate keystore and truststore and helping customer and tech support with the corresponding configurations.
- I was responsible for ensuring compatibility of the Java WebStart component of the User Interface client with the latest java runtime environments, as well as backward compatibility the 2 previous java runtime environments.
