Come join a world class organization and play a key role in its digital transformation. Caterpillar is looking for talented and motivated software engineer managers to build a world class platform to host a wide range of applications.
Software Engineering manager provides leadership in design, development and deployment of Caterpillar’s state-of-the-art digital platform. This person is also accountable for hiring, managing and mentoring a team or multiple teams of software engineers in delivering the common department goals in line with CAT Digital Strategy.
JOB RELATED STATISTICS:
Caterpillar Headcount: 5-8
Agency/Consulting Headcount: 5-10
Responsibilities include supervising teams and projects related to developing business and technical solutions and implementing common operating procedures to provide process functionality and the requisite infrastructure to enable effective, efficient, economical services. Directs implementation of hardware and software infrastructure components to maximize common process and minimize costs by efficiently controlling the infrastructure environment.
The position supports the CAT Digital strategy, recognizes the service requirements/needs of dealers and customers, corporate and business unit goals, and gives input to leadership in formulating global concepts, strategies and plans to deliver service solutions.
Typical internal customers include various contacts throughout Caterpillar worldwide and its subsidiaries.
External contacts include various customers, dealers, and vendors throughout worldwide markets. The position is challenged to carefully evaluate problems and provide input into a large number of possible solutions before selecting one option. Problems may be complex and can require the incumbent to develop and monetize new solutions. The incumbent follows general policies and guidelines for projects under his/her control to ensure specific, management goals are met and desired results are achieved. Impacts key quality goals including Customer Satisfaction, Continuous Improvement, and Reoccurring
Revenue, Timeliness, Accuracy, Efficiency, Cost Savings, Process Quality, etc.
The position supervises a work unit of primarily management/professional employees where some review of subordinate work is required as well as training, development and mentoring. The position is responsible for all personnel issues and performance evaluation of subordinates, as well as overall employee satisfaction for the division.
• Position requires a four-year degree from an accredited college or university.
• Ten years or more of software development experience or at least eight years of experience with master’s degree in computer science or related field.
• Ten years or more of experience in designing and developing software applications in Java or Scala or at least eight years of experience in Java or Scala with master’s degree in computer science or related field.
• Three years or more of experience in managing software development teams.
• Three years or more of experience in public cloud technologies such as AWS or Azure.
Top candidates will also have:
• Demonstrated leadership on medium to large-scale projects impacting strategic priorities.
• Ability to cope with shifting priorities, demands and timelines through analytical and problem-solving skills.
• Ability to effectively prioritize, delegate responsibilities and execute tasks in a high-pressure environment.
• Proven experience in many of the following,
o Designing, developing, deploying and maintaining software at scale.
o Batch or stream processing systems such as Apache Spark, Flink, Akka, Storm
o Message brokers such as Kafka, Rabbitmq, AWS SQS, AWS SNS, Apache ActiveMQ, Kinesis.
o Datastores such as MongoDB, Cassandra, Redis, Elasticsearch, MySQL, Oracle.
o Developing software applications using relational and Nosql databases.
o Application architectural patterns, such as MVC, Microservices, Event-driven, etc.
o Deploying software using CI/CD tools such as Jenkins, GoCD, Azure Devops etc.
o At least three plus years of deploying and maintaining software using public clouds such as AWS or Azure.
o Working within an Agile framework (ideally Scrum).
o Debugging and maintaining software in Linux or Unix platforms.
• Strong understanding and/or experience in many of the following,
o Test driven development and behavior driven development.
• Must demonstrate solid knowledge of computer science fundamentals like data structures and algorithms.
• Ability to work under pressure and within time constraints.
• Passion for technology and innovation.
• Bachelor’s degree in Computer science or Electrical engineering or related field is required.