Job description
Software Design Engineer - Contract
DISHER is looking for a contract Software Designer to support one of our customers for a 6-month contract (with possible extensions) in the Portage, MI area. This role is Hybrid (one day in office). You must be willing to commute and be on-site in Portage, MI one day per week or as needed.
What it’s like to work here:
Make a positive difference! It’s why we exist. We are always looking for teammates who are eager to use their diverse set of talents with our customers, coworkers, and communities. We want to leave this world better than we found it.
What you will get to do:
- Design, implement, and maintain C++ applications running on a custom Yocto-based Linux platform
- Integrate and configure Pulseaudio, spdlog, RapidJSON, and related libraries into existing or new services
- Implement and debug inter-process communication using Linux sockets
- Manage application configuration and persistence using the Linux filesystem and JSON-based configs
- Create, configure, and troubleshoot systemd services for application components (start-up, shutdown, restart policies, logging)
- Work with in-house engineers to diagnose and resolve issues on target hardware (e.g., performance, stability, resource usage)
- Contribute to build and deployment workflows for Yocto images and application updates
What will make you successful:
- Strong modern C++ (C++11 or later) application development on Linux targets
- Hands-on experience with custom Linux distributions built using Yocto or OpenEmbedded (building images, debugging target issues, integrating packages)
- Comfortable developing Linux user-space applications that use:
- Pulseaudio for audio routing and playback/capture on Linux systems
- spdlog for structured, high-performance logging in C++
- RapidJSON (or similar) for efficient JSON parsing/serialization in C++
- POSIX/Linux sockets (TCP/UDP, basic networking, and IPC)
- Linux filesystem APIs (file I/O, directory operations, permissions)
- Linux service management (systemd units, logging, enabling/disabling services, service supervision)
We may use artificial intelligence (AI) tools to support parts of the hiring process, such as reviewing applications, analyzing resumes, or assessing responses. These tools assist our recruitment team but do not replace human judgment. Final hiring decisions are ultimately made by humans. If you would like more information about how your data is processed, please contact us.








