Lead Software Engineer
caterpillar
Job Description
Lead Software Engineer provides technical leadership in design, development and deployment of Caterpillar’s state-of-the-art digital platform. This position will build a world class platform to host a wide range of digital applications.
-
14+ years of experience in designing, developing, deploying and maintaining software at scale
-
Hands-on in JAVA and J2EE technologies & Cloud based environment with experience in leading the engineers and providing technical guidance
-
Expert knowledge in JPA, Hibernate, JDBC, SQL, Spring, JUnit and JSON, REST/JSON web services.
-
Strong knowledge in Java Design Patterns.
-
At least three plus years of deploying and maintaining software using public clouds such as Azure.
-
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.
-
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.
-
Experience in working with the Leads to create product plans, resource and scope estimates and feature technical specifications
-
Knowledge of modern authorization mechanisms, such as OAuth, JSON Web Token
-
Advance knowledge in Security and best practices in cyber security
-
A strong understanding of approaches and techniques to optimize web performance.
-
Additionally, you would participate in competency development with the objective of ensuring the best-fit and high-quality technical solutions.
-