Embedded Software Engineer
Apply NowCompany: Bulk Handling Systems
Location: Nashville, TN 37211
Description:
Summary:
The Embedded Software Engineer with Full Stack Capabilities plays a hybrid role, blending deep expertise in C++ and systems-level development with modern full stack skills in Python and JavaScript. This position supports Service, Production, and R&D groups through the development, testing, and deployment of software solutions for advanced machinery and automation systems. The role requires a hands-on engineer who can move between embedded systems and higher-level web or application layers, ensuring seamless integration and functionality from hardware to user interface.
Responsibilities:
Minimum Requirements:
The Embedded Software Engineer with Full Stack Capabilities plays a hybrid role, blending deep expertise in C++ and systems-level development with modern full stack skills in Python and JavaScript. This position supports Service, Production, and R&D groups through the development, testing, and deployment of software solutions for advanced machinery and automation systems. The role requires a hands-on engineer who can move between embedded systems and higher-level web or application layers, ensuring seamless integration and functionality from hardware to user interface.
Responsibilities:
- Develop and maintain core system software in C++ for complex electro-mechanical equipment.
- Build and support web-based and desktop tools using Python and JavaScript to complement and enhance machine functionality and user interaction.
- Design scalable, testable, and maintainable software architectures that bridge machine-level logic with user-level applications.
- Collaborate with cross-functional teams including controls engineers, R&D, and electrical technicians to deliver robust, production-ready software solutions.
- Participate in continuous improvement initiatives, including integrating modern frameworks and tools to improve functionality, safety, and efficiency.
- Test and validate machine performance, including software-hardware integration.
- Troubleshoot, document, and resolve issues across the software stack.
- Mentor junior developers in both low-level and full stack development practices.
- Perform other duties as assigned by management.
Minimum Requirements:
- Bachelor's degree in Computer Science, Electrical Engineering, or a related technical field and 10+ years of professional experience in C++ development with an emphasis on automation, controls, or embedded systems.
- Familiarity database design (SQL/NoSQL), and deployment tools.
- Experience working in Linux environments; system configuration, file systems, networking interfaces.
- Familiarity with Docker, Kubernetes, or similar containerization tools.
- Strong understanding of source control (Git/SVN)
- Strong organizational, analytical, and problem-solving skills.
- Ability to function both independently and as part of a fast-paced, cross-disciplinary team.
- Excellent verbal and written communication skills.