This job posting has expired and no longer is available. Please explore other opportunities.

Lead Software Engineer

Caterpillar is investing in our digital future, and we’re looking for talented and motivated Lead Software Engineer to build a world class platform to host a wide range of applications.


Our iconic products have evolved from mechanical work horses to highly sophisticated, and electronically-controlled worksite solutions. This transformation, along with our smart factories and our integrated dealer network, has a wealth of data ready to be leveraged by our customers and our dealers. We’re generating innovative solutions from millions of data points and hundreds of thousands of IoT connected assets.


JOB DUTIES: As a Lead Software Engineer you will contribute to design, development and deployment of Caterpillar’s state-of-the-art digital platform with a specific focus on solutions to ingest, validate, enrich, and persist high volumes of telematics data.


  • Competent to perform all programming and development assignments without close supervision; normally assigned the more complex aspects of systems work.
  • Works directly on complex application/technical problem identification and resolution, including periodically responding to off-shift and weekend support calls.
  • Works independently on complex systems or infrastructure components that may be used by one or more applications or systems.
  • Drives application development focused around delivering business valuable features
  • Maintains high standards of software quality within the team by establishing good practices and habits.
  • Identifies and encourage areas for growth and improvement within the team.
  • Mentors junior developers.
  • Communicate with end users and internal customers to help direct development, debugging, and testing of application software for accuracy, integrity, interoperability, and completeness.
  • Performs integrated testing and customer acceptance testing of components that requires careful planning and execution to ensure timely, quality results.


Basic qualifications:

  • Position requires a four-year degree from an accredited college or university.
  • Eight years or more of software development experience or at least five years of experience with master’s degree in computer science or related field.
  • Eight years or more of experience in designing and developing software applications in Java or at least five years of experience in Java with master’s degree in computer science or related field.
  • Three years or more of experience designing and developing big data solutions in Python.


Top candidates will also have:

  • Deep domain knowledge in telematics
  • Proven experience in many of the following,
  • Designing, developing, deploying and maintaining software at scale, with good understanding of concurrency.
  • Batch or stream processing systems such as Apache Spark, Flink, Akka, Storm
  • Message brokers such as Kafka, RabbitMq, AWS SQS, AWS SNS, Apache ActiveMQ, Kinesis, Azure Event Hub.
  • Datastores such as DynamoDB, Aurora PostgreSQL, MongoDB, Cassandra, Redis, Elasticsearch, MySQL, Oracle.
  • Developing software applications using relational and NoSQL databases.
  • Application architectural patterns, such as MVC, Microservices, Event-driven, etc.
  • Deploying software using CI/CD tools such as Jenkins, GoCD, Azure Devops, Confluence, etc.
  • At least three plus years of deploying and maintaining software using public clouds such as AWS or Azure.
  • Working within an Agile framework (ideally Scrum).
  • Experience designing well-defined Restful APIs
  • Experience writing API proxies on platforms such as Apigee Edge, AWS API Gateway or Azure API Manager
  • Hands one experience with API tools such as Swagger, Postman and Assertible
  • Test driven development and behavior driven development.
  • Hands on experience with testing tools such as Cucumber and their integration into CI/CD pipelines.
  • Experience using mocking frameworks and unit test frameworks
  • Expertise writing and debugging multi-threaded applications
  • Strong analytical skills.
  • Must demonstrate solid knowledge of computer science fundamentals like data structures and algorithms and object-oriented design.
  • Ability to work under pressure and within time constraints.
  • Passion for technology and an eagerness to contribute to a team-oriented environment.
  • Demonstrated leadership on medium to large-scale projects impacting strategic priorities.
  • Bachelor’s degree in Computer science or Electrical engineering or related field is required.


EEO/AA Employer. All qualified individuals - Including minorities, females, veterans and individuals with disabilities - are encouraged to apply.


Not ready to apply? Submit your information to our Talent Network here.

Subscribe to Job Alerts