SOFTWARE ENGINEER
JOB DESCRIPTION
Description
Caterpillar is the world's leading manufacturer of construction and mining equipment, diesel and natural gas engines, industrial gas turbines and diesel-electric locomotives. We don't just build great products; we pair them with the newest digital technologies and analytics to solve problems and anticipate customer needs.
We are bringing our industry into the Age of Smart iron. A lasting legacy of talented and committed employees give Caterpillar its competitive edge. It is our team that has allowed this company to accomplish great things. From the construction of the Hoover Dam, to earthquake relief in Indonesia, our employees have never failed to give customers enduring results through superior service and innovation.
Job Purpose:
Software Engineers contribute to 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.
Job Responsibilities include, but are not limited to:
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. Based on past experiences and knowledge, the incumbent normally works independently with minimal management input and review of end results.
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. The incumbent solves problems by determining the best course of action, within departmental guidelines, from many existing solutions. The incumbent sets priorities and establishes a work plan in order to complete broadly defined assignments and achieve desired results. The position participates in brainstorming sessions focused on developing new approaches to meeting quality goals in the measure(s) stated.
Qualifications
Basic qualifications:
- Currently attending a 4-year accredited university/college or have completed a minimum bachelor’s degree in a Computer Science degree 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:
- 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
EEO/AA Employer. All qualified individuals – including minorities, females, veterans and individuals with disabilities – are encouraged to apply.
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/career.