Job Description
Job Description:
Caterpillar is seeking an experienced Lead Software Engineer to provide technical leadership in designing and developing cloud-native backend applications using Java, Spring Boot, and AWS. This is a hands-on engineering role responsible for architecting scalable distributed systems, leading technical decisions, mentoring engineers, and driving best practices across cloud-native application development.
Key Responsibilities
- Lead the design and development of Java-based cloud-native applications on AWS.
- Build scalable microservices using S
pring Boot. - Design and implement RESTful APIs and event-driven services.
- Architect highly available, fault-tolerant distributed systems.
- Develop asynchronous messaging solutions using Kafka or similar technologies.
- Design cloud infrastructure leveraging AWS managed services.
- Implement Infrastructure as Code and CI/CD best practices.
- Lead technical design discussions, architecture reviews, and code reviews.
- Improve system observability through logging, metrics, monitoring, and distributed tracing.
- Troubleshoot production issues and optimize application performance.
- Collaborate with Product Owners, Architects, and cross-functional engineering teams.
- Mentor engineers and establish engineering standards and best practices.
Required Qualifications
- 10+ years of software engineering experience.
- 3+ years of technical leadership or team lead experience preferred.
- Strong experience building enterprise-scale backend applications.
- No degree required.
Required Technical Skills
- AWS Cloud Architecture
- Java (Advanced) and/or Kotlin
- Spring Boot
- Microservices Architecture
- REST API Development
- OpenAPI / Swagger
- SQL & Relational Databases
- NoSQL Databases (DynamoDB, MongoDB, Cassandra)
- Kafka or Event-Driven Messaging
- CI/CD Pipelines
- Build & Deployment Automation
- Distributed Systems
- Cloud-Native Development
- Observability (Logging, Metrics, Tracing)
- Production Support & Performance Tuning
Preferred Experience
- Designing highly available distributed systems.
- Infrastructure as Code.
- Event-driven architecture.
- Cloud-native application modernization.
- Technical architecture and solution design.
- Agile/Scrum development environment.