Lead Software Engineer, Cat Digital
Location: Chicago, IL, United States
Date Posted: Apr 5, 2021
Closing Date: Apr 26, 2021
Join the team in Cat Digital building the next generation dealer web application that is used by Caterpillar dealers across the world. This asset condition monitoring application provides a consolidated view of all equipment data in a single application that incorporates analytic capabilities. By taking advantage of new predictive analytic models, we can efficiently help to monitor the condition of assets, identify upcoming service needs, extend maintenance intervals, avoid costly failures, and deliver on the value promises of caterpillar dealers.
JOB DUTIES: Looking for a Full-stack Lead software engineer who is passionate business problem solver through innovation and engineering practices. You will be leading development team of a world class condition monitoring application engineered to maximize customer uptime. Your expertise in various technology domains will be counted on for the development of new software products and enhancements to existing products using leading-edge technologies and methodologies. You'll be required to apply your depth of knowledge and expertise to all aspects of the software development lifecycle, as well as partner continuously with your many stakeholders daily to stay focused on common goals. Candidate will be responsible for overseeing and mentoring junior developers and handle code reviews.
- Competent to perform all programming, project management, and development assignments without close supervision; normally assigned the more complex aspects of systems work.
- Acts as team leader for development and support groups; provides programming and application/technical leadership, guidance, and assistance to other team members.
- 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 that may be used by one or more applications or systems.
- Drives application development focused around delivering business valuable features
- Mentor and assist software engineers, providing technical assistance and direction as needed
- 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
- Guide the team to develop a structured application/interface code, new program documentation, operations documentation and user guides in a casual, flexible environment
- Communicate with end users and internal customers to help direct development, debugging, and testing of application software for accuracy, integrity, interoperability, and completeness
- Lead development of new functionality and applications on cross-functional Agile project teams
- Performs integrated testing and customer acceptance testing of components that requires careful planning and execution to ensure timely, quality results.
- Employee is also responsible for performing other job duties as assigned by Caterpillar management from time to time.
- Position requires a four-year degree from an accredited college or university.
- Demonstrated experience leading software engineering projects.
- 10+ years (or at least 7 years with master’s degree) of overall backend or full-stack experience.
- 7+ years of Java 8 or 11, Spring Boot and RESTful API development (preferably Microservices)
- 4+ years or more of developing customer facing applications using front-end frameworks, libraries (React / Angular) and design patterns.
- 2+ years for solid Cloud production experience (preferably AWS) OR a higher-level Cloud training certification (e.g., AWS Solution Architect Associate) OR Cloud native computing with PCF or Kubernetes
- Excellent communication and presentational skills
Top candidates will also have:
- Proven experience in many of the following,
- Designing, developing, deploying and maintaining software at scale.
- 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 etc.
- Deploying and maintaining software using public clouds such as AWS or Azure.
- Working within an Agile framework (ideally Scrum)
- Strong understanding and/or experience in many of the following,
- 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.
- Experience designing well-defined Restful APIs
- Experience writing API proxies on platforms such as Apigee Edge, AWS API Gateway or Azure API Gateway
- 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 Selenium and Cucumber and their integration into CI/CD pipelines.
- Datastores such as MongoDB, Cassandra, Redis, Elasticsearch, MySQL, Oracle.
- Debugging and maintaining software in Linux or Unix platforms.
- Understanding of front-end state management libraries (redux)
- 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 an eagerness to contribute to a team-oriented environment
- Demonstrated leadership on small to medium-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.