Embedded Software Engineer

Opulent Global Technologies Inc
Lake Forest, CA, United States
4 days ago
Apply on www.dice.com
Prepare application

Role details

Contract type
Permanent contract
Employment type
Full-time (> 32 hours)
Experience level
Expert
Experience required
5 years minimum
Working hours
Regular working hours
Job source

Tech stack

Adobe Flash Automation of Tests C++ (Programming Language) Code Review Communications Protocols Computer Engineering Datasheets Software Debugging Linux Device Drivers Dynamic Random-Access Memory Memory Management
+16 more
Ethernet Protocol Buffers Hardware Interface Design Python (Programming Language) Message Queuing Telemetry Transport (MQTT) Real-Time Operating Systems System Testing TCP/IP Universal Asynchronous Receiver/Transmitter Multithreading Real Time Systems State Machines Hardware Testing Information Technology Low Latency Heap (Data Structure)

Job description

· Design, develop, and maintain C/C++ software for RTOS, Real-Time Linux, and Linux-based embedded controllers for real-time sensing, communication, monitoring, and device control.

· Develop multi-threaded and real-time applications, including task scheduling, interrupts, synchronization, IPC, timers, state machines, watchdogs, and fault handling.

· Develop and integrate low-level hardware interfaces and communication protocols including GPIO, UART, SPI, I²C, CAN/CAN-FD, Ethernet, TCP/IP, and UDP.

· Develop and debug device drivers, BSP/HAL components, and hardware/software interfaces.

· Perform system-level debugging and performance analysis, including latency, jitter, CPU/memory utilization, and communication performance.

· Support networking and application interfaces including REST, MQTT, gRPC/Protobuf, and related technologies.

· Develop Python tools for test automation, diagnostics, data collection, and hardware validation.

· Participate in architecture/design reviews, code reviews, testing, integration, and system validation.

Requirements

· BS/MS in Computer Engineering, Electrical Engineering, Computer Science, or related field, with 5+ years of embedded/real-time software development experience.

· Strong proficiency in C/C++ and working proficiency in Python.

· Strong foundation in computer organization and architecture, including Von Neumann/Harvard architectures, CPU operation, registers, instruction execution, buses, and memory-mapped I/O.

· Strong understanding of memory architecture, including cache, SRAM/DRAM/Flash, stack/heap, virtual/physical memory, DMA, and memory management.

· Strong knowledge of Real-Time Operating Systems, including tasks/threads, scheduling, priorities, context switching, mutexes/semaphores, queues, synchronization, priority inversion, latency, jitter, and deterministic execution.

· Strong understanding of hardware/software interrupts, ISRs, interrupt priorities, exceptions, interrupt latency, and interrupt-to-task interaction.

· Hands-on experience with embedded controllers/microprocessors/SoCs and hardware interfaces such as GPIO, UART, SPI, I²C, CAN/CAN-FD, ADC/DAC, and Ethernet.

· Experience with Embedded/Real-Time Linux, multithreading, IPC, sockets, device interfaces, and user-space/kernel-space concepts.

· Ability to read schematics, datasheets, register maps, memory maps, and timing diagrams and debug hardware/software interactions.

Apply for this position

This job is hosted externally. Click below to view the full posting and apply.

Apply on www.dice.com
Prepare application

Good distractions

Talks and stories from around this role — technically off-topic, practically not.

52 sec

Running persistent Linux environments directly on Windows

Ben Breard Ben Breard · World Congress 2025

2:59 min

Designing HTTP and HTML for familiar document sharing

Tim Berners-Lee · World Congress 2023

4:52 min

Connecting namespaces with local virtual ethernet pairs

Oliver Seitz Oliver Seitz · World Congress 2025

1:19 min

Advancing autonomous driving capabilities with specialized software talent

Katrin Lehmann Katrin Lehmann +1 · Coffee With Developers

5:02 min

Mapping distributed compute paradigms to modern vehicles

Joachim Werner · LIVE

3:55 min

Demonstrating .NET installation on Debian and Azure Linux

Silvano Coriani Silvano Coriani · Europe 2026 Virtual

Videos

See all

Related articles

See all