Prepin
Log in
Marvik

engineering opportunity

Embedded Software & Controls Engineer

Develop and maintain embedded C/C++ software for microcontrollers, including firmware, drivers, and board support packages. Design, simulate, and verify control logic using MATLAB and Simulink while integrating it into heavy machinery applications.

Colorado Springs, Colorado, United StatesremoteFULL_TIME

Posted

About the role

What will you do at Marvik?

We're looking for an Embedded Software & Controls Engineer to develop machine-control software for heavy equipment, from low-level drivers and board support packages to application-level control logic. The role combines hands-on C/C++ development on microcontrollers with model-based design using MATLAB and Simulink, translating machine requirements into reliable software running on real hardware. 🚜

🧑🏻‍💻

Responsibilities

  • Develop and maintain embedded C/C++ software for microcontrollers, including bare-metal firmware, hardware drivers, and board support packages (BSPs).
  • Translate system and functional requirements into control models and software designs, collaborating with systems, hardware, and application engineering teams.
  • Design, simulate, and verify control logic using MATLAB and Simulink, including model-level unit testing, and implement and integrate the resulting functionality in embedded C/C++.
  • Develop machine-control applications, interfacing with joysticks, keypads, sensors, and electrohydraulic systems.
  • Implement control logic for hydrostatic pumps and hydraulic valves, including flow metering and coordination with machine operating states.
  • Develop and refine power management, cooling, and hydraulic fan control functionality.
  • Debug and validate software across the embedded stack, from hardware interfaces and drivers to application behavior on the machine.
  • Work within an Agile development process, maintaining requirements traceability, verification evidence, and software lifecycle documentation using tools such as Polarion.
  • Contribute to code reviews, version control, automated builds, and continuous integration using GitHub, Jenkins, and GCC-based toolchains.
  • 🤝 If you have:
  • Hands-on experience developing embedded software in C/C++ on microcontrollers, including bare-metal systems.
  • Experience translating system requirements into models, control logic, and embedded implementations.
  • Understanding of control systems and hardware/software interfaces, with experience integrating sensors, actuators, or operator inputs.
  • Ability to debug embedded software and investigate issues across firmware, electronics, and machine behavior.
  • Solid software engineering practices, including unit testing, Git workflows, code reviews, and continuous integration.
  • Ability to collaborate across disciplines and work effectively within an Agile engineering team.
  • Availability to travel to the US.
  • 🦾 It’s a major plus:
  • Experience with MATLAB and Simulink for model-based control development, simulation, and verification.
  • Experience with heavy machinery, mobile equipment, or industrial machine-control systems.
  • Familiarity with electrohydraulics, hydrostatic drives, pump and valve control, power management, or cooling systems.
  • Experience spanning both low-level embedded development and application-level controls.
  • Familiarity with Jenkins, GitHub, and GCC toolchains.
  • Experience using engineering documentation and component datasheets, including through PLM tools such as Windchill.

Which skills does this role require?

Embedded C/C++MicrocontrollersModel-based designBare-metal firmwareHardware driversUnit testingGitAgileContinuous integrationDebuggingEmbedded SoftwareControls EngineerC++CFirmwareDriversBoard Support PackagesControl LogicHydrostatic pumpsSensorsActuatorsPolarionContinuous IntegrationUnit TestingIndustrial AutomationVersion ControlSystem RequirementsModel-based Design

Make your next move

Build a shortlist and prepare

Identify the requirements you can demonstrate, then choose examples from your work to discuss with the hiring team.

Review the responsibilities and requirements before adding an opening to your shortlist.

Role information can change. Confirm current details on the original application page.

Product

AI Candidate AgentCompaniesBrowse JobsDeep ProfileSkill AssessmentOpportunity Matching
Prepin.ai

© 2026 Prepin | All rights reserved.