Caterpillar Inc. is looking to solve the problem of developing and enhancing their Core Information Software team, which is responsible for creating telematics, displays, and network managers for Caterpillar machines & engines. This involves developing operating systems, core software, applications, and data transfer frameworks for future Caterpillar Displays & Connectivity product lines.
Requirements
- Knowledge of a given technology and various application methods; ability to develop and provide solutions to significant technical challenges.
- Solid experience with embedded software development, design, and architecture
- Experience with GIT configuration management tool
- Experience with scripting using Python
- Development experience with Rust
- Experience with Linux software development, including RTOS development (i.e. Free RTOS)
- Experience with Ethernet, TCP/IP, WiFi, Bluetooth low energy
Responsibilities
- Design new software components for displays and connectivity control modules
- Maintain and extend existing software
- Perform code reviews for software development team
- Review results of software unit and regression tests
- Provide Core Information software subject matter expertise to internal and external teams
- Design, develop, configure, and test our high-quality, secure software
- focusing on iterative development and fast delivery of features utilizing up-to-date technologies and practices like Agile, C, C++ and Rust, embedded Linux, and a plethora of open source software.
Other
- The team works in a dynamic environment that supports flexible work hours and a hybrid schedule, splitting time between working from home and in-person collaboration in the office in Mossville, IL.
- Mentor less experienced developers
- Collaborate with developers, architects, testers, and systems application engineers
- Knowledge of techniques and tools that promote effective analysis; ability to determine the root cause of organizational problems and create alternative solutions that resolve these problems.
- Understanding of effective communication concepts, tools and techniques; ability to effectively transmit, receive, and accurately interpret ideas, information, and needs through the application of appropriate communication behaviors.