Software Engineer I
C++ Language
CI/CD
Data Processing
Desktop Support
Developer
DevOps
Devops Tools
Embedded Software
Embedded System
Embedded Systems
End User Support
Engineering
Ethernet
Frontend
Hardware Engineering
Hardware Software Co Design
Information Technology (IT)
Information Technology It
It Support
Linux
Operating System
Operating Systems
Programming
Programming Language
Programming Languages
Qt/qml
Software Development
Software Engineer
Software Engineering
Systems
Technical Support
Testing
Ui Development
Unix Operating System
Job Description
The Manitowoc Company is hiring a Software Engineer I to help develop and support Linux-based crane operator displays and the software that powers the corresponding user interfaces. This onsite role in Shady Grove, PA focuses on building display applications, integrating them with crane control systems, and contributing to verification and validation activities.
You will work across design, development, and test for Qt/QML and C++ applications, collaborating with controls and software engineers to deliver feature improvements. The role also includes troubleshooting support during development and production, along with contributing to documentation and software planning artifacts.
Responsibilities
- Design, develop, test, and maintain software for Linux-based operator display systems.
- Develop graphical user interfaces using Qt and QML.
- Collaborate with controls, systems, and software engineers to implement new features and product improvements.
- Support integration of display applications with distributed control systems using Ethernet and CAN-based communications.
- Participate in software verification activities using simulation environments, test benches, and crane testing.
- Assist in developing software requirements, test plans, and technical documentation.
- Investigate software issues and support troubleshooting during development and production.
- Communicate project status, technical findings, and recommendations to project teams.
- Work safely and comply with all company safety policies and training requirements.
Requirements
- Bachelor’s degree in Computer Science, Computer Engineering, Software Engineering, or related field.
- Coursework and/or experience using C++ through academic projects, internships, co-ops, personal projects, or professional work.
- Understanding of object-oriented programming principles.
- Strong problem-solving and debugging skills using debugging tools such as GDB and Valgrind.
- Familiarity with source control tools such as Git.
- Interest in embedded systems, Linux, and user interface development.
Technologies
- Linux, Qt, QML, C++, Ethernet, CAN
- GDB, Valgrind, Git
- CAN-based communications, J1939, CANopen, MQTT
- Python, Jenkins, XML
- SWL, SWLite
- Linux Command Line tools
- AI-assisted development tools
- Unit testing, continuous integration, code reviews
Preferred Qualifications
- Experience with Qt and/or QML.
- Experience working in a Linux development environment.
- Knowledge of Ethernet networking fundamentals.
- Familiarity with MQTT or client/server software architectures.
- Familiarity with embedded systems and real-time software concepts.
- Familiarity with software development practices such as source control, code reviews, unit testing, and continuous integration.
- Knowledge of CAN communications, J1939, or CANopen.
- Experience with Python, Jenkins, XML.
- Internship, co-op, Formula SAE, robotics, senior design, or personal software development projects.
- Familiarity with databases such as SWL and SWLite.
- Comfortable using Linux Command Line tools.
- Knowledge about applying AI-assisted development tools for software design, code generation, verification, debugging, and documentation.
- Experience working in a team with other developers and contributors.