Back to jobs

Embedded Software & Controls Engineer

MarvikRemote (Argentina, Chile, Colombia, Ecuador, El Salvador, Mexico, Paraguay, Peru, Uruguay)Posted 1w ago
Senior Software Engineer
Full Time
Remote
Craft my tailored resume free

Free to start · No card

Job description

We're looking for an Embedded Software & Controls Engineerto develop machine-control software for heavy equipment — from low-level drivers and embedded Linux to application-level control logic. The role combines C/C++ development on microcontrollers, embedded Linux/connectivity work, and model-based control design in MATLAB/Simulink.🚜

🧑🏻‍💻 Responsibilities:

  • Develop and maintain embedded C/C++ software for microcontrollers, including bare-metal firmware, hardware drivers, and board support packages (BSPs).

  • Develop and debug embedded Linux on ARM-based platforms (e.g., Jetson): systemd, journalctl, device tree basics.

  • Configure and troubleshoot on-machine networking and connectivity: Wi-Fi, Network Manager, LTE/5G/SIM provisioning, Modem Manager, and CAN bus.

  • Build and cross-compile containerized software for embedded targets (Docker: base images, layers, Compose), and script in Python/Bash for tooling and diagnostics.

  • Translate system requirements into control models and software designs; design, simulate, and verify control logic in MATLAB/Simulink, then implement and integrate it in embedded C/C++.

  • Develop machine-control applications interfacing with joysticks, keypads, sensors, and electrohydraulic systems, including hydrostatic pump/valve control and power, cooling, and fan management.

  • Debug and validate software across the full stack — hardware interfaces, drivers, connectivity, and application behavior on the machine.

  • Work within an Agile process, maintaining requirements traceability and documentation (e.g., Polarion), and contribute to code reviews, version control, and CI/CD (GitHub, Jenkins, GCC toolchains).

🤝 If you have:

  • Hands-on C/C++ embedded development experience, including bare-metal microcontroller systems.

  • Solid embedded Linux experience: systemd, journalctl, device tree basics, and general debugging on ARM/Jetson platforms.

  • Experience with on-device networking and connectivity: Network Manager, Wi-Fi, LTE/5G/SIM, Modem Manager, and CAN.

  • Experience with Docker in embedded/edge contexts (base containers, layers, cross-compilation, Compose) and scripting in Python/Bash.

  • Understanding of control systems and hardware/software interfaces (sensors, actuators, operator inputs).

  • Strong debugging skills across firmware, electronics, connectivity, and machine behavior.

  • Solid software engineering practices: unit testing, Git workflows, code reviews, and continuous integration.

  • Comfortable working cross-discipline in an Agile team, with 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/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, and PLM/documentation tools such as Windchill.

Originally posted on Himalayas

Prepare your application

Use the description above to assess your fit for Marvik. This checklist is guidance from Resumize, rather than additional requirements from the employer. Imported listings can be shortened or change after collection, so confirm the complete description and current availability before sending an application.

Match requirements to evidence

Identify the responsibilities and skills the employer explicitly names. For each important requirement, choose one example from your work, education, training, or projects. Explain what you did, how you did it, and what changed as a result. Include a measurable outcome when you can support it. If you lack a requirement, describe related experience accurately instead of adding an unfamiliar skill to your resume.

Put the most relevant examples near the top of your resume. Keep job titles, dates, qualifications, and contact details consistent across your application materials. Use the employer’s terminology when it describes your experience accurately; a copied list of keywords does not explain your contribution. A short, specific bullet is easier to review than a paragraph that mixes several unrelated duties.

Check the working arrangement

Confirm the location, schedule, employment type, and any eligibility requirements on the employer’s site. A remote label does not establish worldwide eligibility or flexible hours. If compensation, benefits, equipment, travel, or contract duration are missing from this listing, write down your questions for the recruiter. Do not assume details from another opening at the same company apply to this role.

Review before submitting

Follow the employer’s requested file format and application instructions. Open your exported resume and check that its text is selectable, its sections read in order, and its links work. Proofread names, dates, and contact information. Share confidential work samples only when you have permission, and use an anonymized example when necessary.

Submit through a trusted employer or recruiting destination. If the original listing has disappeared, search the employer’s careers page for the title rather than assuming the vacancy remains open. Save the application date, job reference, and the version of your resume you sent. Those details help you prepare for a later conversation and avoid submitting conflicting information through several job boards.

Review your resume for writing and readability feedback, or browse other openings if this opportunity is unavailable.