Embedded Engineer
We are looking for a Senior/Lead Embedded Software Engineer (Ukraine-based) to join Ralabs and work on technically challenging projects involving embedded systems, edge computing, and AI-powered solutions.
Engagement: Initially, approximately 10–20 hours per week during the first 3 months, with a transition to full-time afterward.
What is the role about?
The role combines hands-on software development, hardware integration, and performance optimization. You will work with resource-constrained devices, adapt existing software to new hardware platforms, and help develop reliable, production-ready solutions.
Beyond individual projects, you will contribute to our broader engineering capabilities in embedded systems and edge AI.
How many stages of the interview are there?
- Interview with the Recruiter – up to 30 min.
- Technical Interview – up to 1 hour;
- Final interview – up to 1 hour;
Hard skills - 6+ years of commercial software engineering experience.
- Proven experience developing software for embedded Linux environments.
- Hands-on experience with ARM-based computing platforms.
- Proven experience integrating software with hardware components and external devices.
- Proven experience optimizing software for performance, memory, and hardware constraints.
- Ability to independently investigate technical challenges and deliver working solutions.
Upper-Intermediate or higher English proficiency.
Technical Expertise
- Strong proficiency in C/C++ and/or Python.
- Solid knowledge of Linux internals, system-level programming, and debugging.
- Experience with embedded platforms such as NVIDIA Jetson, Raspberry Pi, or similar.
- Experience with YOLO-NAS, YOLOX, and DarkYOLO in ONNX.
- Understanding of hardware interfaces and communication protocols (UART, GPIO, SPI, I2C, etc.).
- Experience with computer vision, image processing, or real-time data processing.
- Understanding of ML model deployment and optimization on edge devices.
- Familiarity with software security, encryption, and secure deployment practices.
Strong understanding of performance optimization, testing, and troubleshooting.
Leadership & Coloboration- Ability to take technical ownership of assigned tasks and solutions.
- Strong analytical and problem-solving skills.
- Ability to evaluate technical approaches and make practical engineering decisions.
- Comfortable working with incomplete requirements and exploring alternative solutions.
Ability to collaborate with cross-functional engineering teams and technical stakeholders.
Responsibilities
Embedded Software Development
- Design, develop, and maintain software for embedded computing platforms.
- Adapt existing software solutions to different hardware architectures.
- Integrate software with hardware components, peripherals, and external systems.
- Troubleshoot system-level issues and improve overall reliability.
Ensure software operates efficiently within hardware limitations.
Edge AI & Computer Vision
- Support the integration and deployment of AI/ML models on edge devices.
- Optimize inference performance, resource usage, and processing efficiency.
- Work with computer vision and real-time data processing pipelines.
Evaluate technical approaches for improving system performance.
Engineering Excellence
- Write clean, maintainable, and well-tested code.
- Establish reliable development, testing, and deployment practices.
- Identify performance bottlenecks and propose improvements.
- Ensure appropriate security and reliability standards.
Maintain technical documentation.
Collaboration & Delivery Support
- Work closely with engineering teams, technical leads, and project stakeholders.
- Participate in technical discovery and solution design.
- Support technical estimations and feasibility assessments.
- Communicate technical challenges, risks, and dependencies.
Take ownership of delivering working, production-ready solutions.
Pre-Sales & Solution Design (Optional Involvement)
- Support technical discovery for new embedded and edge AI opportunities.
- Evaluate technical feasibility and potential implementation approaches.
- Contribute to solution design and effort estimation.
- Participate in technical discussions with prospective clients.
Nice to Have - Experience with CUDA, TensorRT, or other NVIDIA technologies.
- Experience with OpenCV, GStreamer, or similar frameworks.
- Practical experience deploying and optimizing ML/CV models on embedded hardware.
- Experience with real-time systems and video processing.
- Experience with secure boot, firmware protection, or embedded security.
- Experience in hardware prototyping and working directly with electronic components.
- Experience with hardware migration or embedded platform modernization.