Software Engineer (Dearborn, MI) Oct-2017 to Sep-2020
- Utilized various design patterns like MVC, Strategy, Observer etc. to develop and design applications.
- Developed interceptors, filters in Spring Boot to capture user, co-relation Id and other information for better logging and traceability.
- Implemented Inter system communication using RabbitMQ and Kafka for messaging.
- Separated application code and configuration using config server.
- Implemented Spring Retry to retry any failed transactions.
- Designed and Developed UI wireframes using UX-Pin, and implemented them using Angular and Prime-NG.
- Developed web-socket backed endpoint to display live updates to the UI.
- Acted as a Tech Lead (Anchor Engineer) to guide developers and participated with other team for design discussions.
- Worked on a 6 to 8-person team developing restful micro services and UI applications.
- Utilized Spring Boot for Service development and Angular 8 for front end application.
- Perform software design, development, integration, maintenance and support.
- Wrote automated tests (unit, integration, acceptance) to ensure code quality using mock frameworks and postman.
- Design and develop web interfaces to fulfill the business needs.
- Wrote abstraction layers to support maximum code reusability.
- Class design to support logic separation and code cleanliness.
- Develop Persistence layers to save and retrieve data from SQL and NOSQL databases.
- Developed traversal logic to persist and retrieve data from graph database.
- Improved JPA query performance from almost half a minute to milliseconds.
- Secured the rest endpoints and web application with OAuth.