As an Embedded Software Engineer, you will support the design, development, and testing of high performance electronics for unmanned ticket vending machines, and embedded applications. Candidate will be working with a multi-disciplined, fast paced team and should be prepared to work on a large variety of interesting projects. We are looking for an independent thinker that is self-motivated, goal oriented, and willing to learn something new every day.
What you can expect in this role (Job Responsibilities)
While each day brings new opportunities at SPX, your core responsibilities will be:
- Work independently or as a team member to design, build, test, troubleshoot and support software for Ticket Vending Machines.
- Execute the file software development life cycle (SDLC).
- Identify and document requirements and design solutions.
- Implement (C/C++) applications and device drivers on Free RTOS.
- Troubleshoot, debug, and upgrade existing systems.
- Collaborate with other engineering disciplines in planning, design and development of systems to ensure software and hardware performance and compatibility.
- Write test plans and test cases, conduct unit, integration and system-level testing.
- Deploy the application and evaluate customer feedback.
- Contribute to and champion initiatives in a continuous improvement environment.
What we are looking for (Experience, Knowledge, Skills, Abilities, Education)
We each bring something to the table, and we are looking for someone who has:
Required Experience
- Solid programing experience in C/C++.
- Proven experience with RTOS, CAN, multi-process software architecture, device drivers, and OS security.
- Experience with shell scripts, make files, and the gnu toolchain.
- Experience with Agile development practices.
- Experience with source code control systems like GIT
- Experience with communication interfaces such as Ethernet, RS-232, RS-485, and J1708.
- Programming experience with real time multi-threaded embedded applications.
Preferred Knowledge, Skills, and Abilities
- Good working knowledge of software development on RTOS. Ubuntu and Qt for embedded hands-on experience is a plus.
- Familiarity with Test Driven Development, Continuous Integration, and DevOps is a plus.
- Familiarity with graphical user interfaces.
- Familiarity with communications protocols such as TCP/IP, MQTT, and HTTPS.
- Familiarity with databases and data stores such as SQLite and redis is a plus.
Education & Certifications
- Bachelor’s degree in computer science or engineering.
Travel & Working Environment
Some travel required (~10%) to customer sites