Principal Software Engineer

Caterpillar Caterpillar · Industrial · Bangalore, Karnataka

Principal Software Engineer at Caterpillar, focusing on modernizing legacy Java/J2EE applications to cloud-native AWS architectures. The role involves leading strategic modernization initiatives, defining target architectures, driving POCs for new technologies, and influencing engineering practices. A key aspect is identifying opportunities to embed AI and automation into engineering workflows to improve developer productivity. Experience in industrial domains like autonomous vehicles or mining is a plus.

What you'd actually do

  1. Lead and contribute to strategic modernization initiatives across Helios platforms, including transformation of legacy Java/J2EE applications to cloud-native(AWS) and scalable architectures
  2. Guide implementation approach for modernization initiatives, ensuring alignment between architecture intent and delivery execution
  3. Define and guide target architecture patterns and design principles for modernization efforts
  4. Drive experiments and proof-of-concepts (POCs) to evaluate new technologies, frameworks, and architectural patterns, enabling data-driven technology decisions
  5. Translate successful POCs into scalable, production-ready solutions and drive adoption across teams

Skills

Required

  • software engineering
  • technical leadership
  • Java/J2EE
  • cloud-native (AWS)
  • microservices
  • Spring frameworks
  • REST/JSON APIs
  • distributed system design
  • Postgres
  • SQL
  • NoSQL
  • JPA/Hibernate/JDBC
  • JUnit
  • Git
  • Maven
  • Docker
  • DevOps/CI-CD
  • Kubernetes

Nice to have

  • autonomous vehicles
  • mining
  • construction
  • industrial domains
  • machine-to-cloud communication
  • edge-to-cloud communication
  • onboard system architectures
  • offboard system architectures
  • distributed autonomy platforms
  • TCP/IP
  • messaging systems
  • telemetry pipelines

What the JD emphasized

  • 15+ years of experience
  • strong hands-on development and technical leadership experience
  • Proven experience in Java/J2EE-based application development
  • leading design and delivery of scalable services
  • Strong expertise in software architecture, design patterns, object-oriented design, and low-level design principles
  • Experience modernizing legacy enterprise applications
  • transitioning to microservices-based architectures
  • Hands-on experience with Spring frameworks, REST/JSON APIs, and distributed system design
  • Comprehensive knowledge of database technologies, including Postgres, SQL, and NoSQL
  • proven ability to design, optimize, and troubleshoot data solutions
  • Strong experience with data access technologies (JPA/Hibernate/JDBC)
  • Experience with testing frameworks (e.g., JUnit) and building high-quality, testable software
  • Proficiency with Git (branching, merging, tagging), Maven or equivalent build tools, and strong debugging skills
  • Experience leading or contributing to POCs, innovation initiatives, or modernization programs
  • Strong experience working with cross-functional and global teams, influencing without direct authority
  • Excellent technical communication, mentoring, and stakeholder engagement skills
  • Experience with containerization technologies (e.g., Docker) and working with DevOps/CI-CD pipelines
  • Solid understanding of Kubernetes for orchestration of containerized applications
  • Experience working with software systems in autonomous vehicles, mining, construction, or similar industrial domains
  • Understanding of onboard (machine) and offboard (cloud/office) system architectures and their integration in distributed autonomy platforms
  • Familiarity with communication protocols and networking concepts used in distributed systems (e.g., TCP/IP, messaging systems, telemetry pipelines)
  • Experience designing or integrating systems involving machine-to-cloud or edge-to-cloud communication