Cat Digital - Associate Software Engineer
Job Description:
Caterpillar is a company of builders. Of problem solvers. Of innovators who want to impact the world. Our people build and design the products and services that help shape the communities where we work and live. We are building on our legacy and innovating for the next generation. One where technology-enabled services create improved outcomes for our people and the customers and communities we serve.
Our ability to innovate and build begins with our people. Our tech and digital teams are at the forefront of Caterpillar’s evolution – taking pride in solving complex problems by building new systems from the ground up. On our team, you’ll leverage data from across our entire enterprise and one million connected assets to solve problems and find solutions that open a new world of possibilities for our machines, our customers, our dealers and our business.
Software Engineers are challenged to design, develop and deploy Caterpillar’s state-of-the-art digital platform. This position will build a world class platform to host a wide range of digital applications.
Responsibilities of the Software Engineer are across functional lines with individuals assigned in new program development and/or maintenance of existing mobile, WEB, Cloud, server, personal computer, mainframe, and/or distributed computing systems.
Competent to perform all programming, project management, 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 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.
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
Employee is also responsible for performing other job duties as assigned by Caterpillar management from time to time
Software Engineers manage the completion of their own work assignments and coordinates work with others.
Typical customers include Caterpillar customers, dealers, other external companies who purchase services offered by Caterpillar as well as internal business unit and/or service center groups. The position is challenged to quickly and correctly identify problems that may not be obvious. Software Engineers solve problems by determining the best course of action, within departmental guidelines, from many existing solutions. The position participates in brainstorming sessions focused on developing new approaches to meeting quality goals in the measure(s) stated.
Basic qualifications:
Currently attending a 4-year accredited university/college or have completed a minimum bachelor’s degree in a Computer Science, Software Engineering or related program
Minimum cumulative GPA requirement 3.0/ 4.0 (no rounding)
Graduation date between May 2020 through May 2021
One year or more of software development experience or a master’s degree in computer science or related field
One year or more of experience in designing and developing software applications in Java or Scala or a master’s degree in computer science or related field
Top candidates will also have:
Demonstrated Leadership
Proven experience in some 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 some 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 on 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 or Oracle
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
This employer is not currently hiring foreign national applicants that require or will require sponsorship tied to a specific employer, such as H, L, TN, F, J, E, O. As a global company, Caterpillar offers many job opportunities outside of the U.S. which can be found through our employment website at www.caterpillar.com/careers