Start Your Search Here

push notification bell

Would you like to receive notifications about Computer and Mathematical Occupations jobs in Lake Forest?

push notification bell

You have blocked notifications

Oops! You have blocked notifications. Click here for more info

You have blocked notifications, please check your browser settings.

push notification bell

You're currently subscribed to job notifications

Want to change your notifications for job alerts?

push notification bell

Subscribe to notifications

You will no longer receive notifications

Job Search

Pi Square Technologies

Lake Forest / Global

Embedded Software Engineer

Job Description

Embedded Software Engineer

Responsibilities

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.

Required Qualifications

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.

Preferred Qualifications

Experience with FreeRTOS, Zephyr, QNX, VxWorks, ThreadX, PREEMPT_RT, ARM-based controllers, device drivers, BSPs, Yocto/Buildroot, industrial communication protocols, and JTAG/GDB/oscilloscope/logic-analyzer debugging.

Experience with BESS/HESS, BMS, PCS, power electronics, industrial controls, automotive, robotics, or other real-time control systems is a plus.

UL 60730 experience is a plus

Apply Now

Similar Opportunities

View all jobs

Get Job Alerts

Don't miss the perfect fit. Get Daily curated job alerts.

Job Title or Keyword(s)
Location