Senior Software Engineer (Java Full Stack)
caterpillar
Job Description
What you will do
- Experience in architecting large scale applications. Responsible for the high- and low-level design.
- Experience in design and development of distributed high-availability and reliable web
applications built using Java/J2EE technologies. - Experience with Microservices utilizing Spring Boot/Spring MVC in a multi-threaded, distributed environment.
- Cross collaboration with different teams to enhance applications from legacy components to latest updated frameworks/architectures and design patterns.
- Manage applications source code with Continuous Integration/Continuous Deployment (CI/CD) pipelines.
- Adhere to security directives and enable security concepts in application lifecycle – implement shift-left concepts, vulnerability remediation processes and minimize overall risk for the enterprise solutions.
- Competent to perform all programming, project management, and development assignments without close supervision.
- Works directly on complex application/technical problem identification and resolution, including responding to off-shift and weekend support calls.
- Works independently on complex systems or infrastructure components used by one or more applications or systems.
- Drives application development focused around delivering valuable business features.
- Maintain high standards of software quality within the team by establishing good practices and coding guidelines.
- Identifies and encourages areas for growth and improvement within the team.
- Communicate with end users and internal customers to help direct development, debugging, and testing of application software for accuracy, integrity, interoperability, and closure.
- Performs integrated testing and customer acceptance testing of components that require careful planning and execution to ensure timely and quality output.
What you will have
- More than 14 years of application development experience in Core Java, Spring Boot, Spring Security, Hibernate/Spring Data JPA, Spring WebFlux, Spring Modulith, OpenAPI, Liquibase/Flyway.
- Experience in providing technical solutions and architecture. Understand business requirements and provide high- and low-level designs.
- Experience with design, analysis, programming, integration, debugging, testing, and implementation activities to deliver software solutions to business.
- Experience in developing web-based applications using JavaScript, HTML, CSS, and React/Angular frameworks.
- Experience in identifying technical problems and recommending options to address them.
- Experience with architecture and design of large-scale systems with a focus on performance, scalability, high-availability, reliability, and fault tolerance.
- Experience of developing applications with event driven architecture using Kafka, SQS, Pub/Sub models
- Experience using AI tools like Microsoft Copilot for software development and testing. Understanding and experience in using AI/GenAI for automation.
- Experience with developing applications using Microservices with containerized based architectures (Docker/Kubernetes) and design patterns.
- Ability to quickly learn modern technologies and apply them with an enterprise perspective.
- A strength in source code management strategies using Git and other popular tools.
- Experience with GitLab, GitHub or Azure Repos.
- Experience in application unit testing using Junit, Mockito, Bruno etc.
- Experience in optimizing and improvising the application performance using cache mechanisms and other possible solutions.
- Experience with security concepts implementation in application development and deployment on Cloud platforms such as AWS using AWS Cloudformation, ECS Fargate, RDS, ALB, Lambda, S3, ElastiCache, EventBridge, SQS, SNS, Grafana/Prometheus/Cloudwatch, API Gateway.
- Experience with vulnerability remediation and ability to automate security measures in application development.
- Experience with DevOps/security tools – Azure DevOps, Git, GitHub, JFrog Artifactory etc.
- An understanding of modern web development security threats and security best practices.
- Understanding of Rest, GraphQL, gRPC.
- Familiarity with two or more Databases – DB2, PostgreSQL etc.
- Basic understanding of networking concepts as it pertains to Java/J2EE hosting
(Load balancing, DNS, HTTP, SSL/TLS, etc.).
Desired Skills:
- Experience with APIGee is a huge plus.
- Experience using the Scaled Agile Framework (SAFe) methodology.
- Experience working with CI/CD