Apache Hadoop, C Programming, C++, Data science techniques, Java Programming, Machine learning techniques, MapReduce, Python Programming, PyTorch, R Programming, Scala Programming, SQL, TensorFlow
Join the Application Integration team of Cat Digital and build software solutions that integration common services across our application portfolio and other enterprise systems used by Caterpillar customers and dealers. The integration of applications with various Digital Platform capabilities that are built on the latest technologies by adopting industry’s best architecture patterns, security best practices etc. are critical for application’s success and its adoption.
JOB DUTIES: As a Principal Software Engineer you will lead all stages of software development including refining product vision, gathering requirements, project planning, software system design, coding, testing, release, deployment, and support.
- Competent to perform all programming, project management, and development assignments without close supervision; normally assigned the more complex aspects of systems work.
- Lead role in complex projects spanning across multiple system components
- Work in all phases of product creation process including creating technical requirements, project planning, identifying dependencies, system architecture and development.
- Investigation and root cause analysis of software and system defects.
- Focus on productivity, quality and competitiveness of major technology initiatives.
- Apply knowledge and skills to solve most complex engineering problems.
- Organize and drive configuration management activities of the development process
- 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 by establishing good practices and habits
- Identifies and encourage areas for growth and improvement
- 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.
- Position requires a four-year degree from an accredited college or university.
- Demonstrated experience leading software engineering projects.
- 12+ years (or at least 10 years with master’s degree) of overall backend or full-stack experience.
- 8+ years of Java, Scala or Python, Spring Boot and RESTful API development (preferably Microservices)
- 6+ years or more of developing customer facing applications using front-end frameworks, libraries (React / Angular) and design patterns.
- 4+ years for solid Cloud production experience (preferably AWS) OR a higher-level Cloud training certification (e.g., AWS Solution Architect Associate)
- 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)
- Hands-on experience with Application (web and mobile) Security implementation along with adoption of industry best practices.
- Deploying Security implementation experience as part of devops process.
- 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.
Visa sponsorship available for eligible applicants.
Caterpillar Inc. is an American Fortune 100 corporation that designs, develops, engineers, manufactures, markets, and sells machinery, engines, financial products, and insurance to customers via a worldwide dealer network. It is the world's largest construction-equipment manufacturer.
Get Similar Jobs In Your Inbox
Caterpillar is currently hiring Principal Software Engineer Jobs in Peoria, IL, USA with average base salary of $120,000 - $190,000 / Year.