Embedded Software Engineer

  • Full-time

Highlights

Develop and troubleshoot networking functionality involving IPv4/IPv6, TCP, UDP, routing, DNS, DHCP, NAT, VPNs, and other IP networking. · Experience developing software for systems requiring high availability, reliability, security, or operation in constrained network environments.

Numbers & Facts

LocationSan Diego, CA
Job TypeFull-time

Description

 


 Our client headquartered is a premier global provider of satellite solutions and technology services, and offers the opportunity to explore the boundaries of what’s possible in the fields of engineering and the business functions transforming this engineering into revenue.


  


Responsibilities


· Design, develop, integrate, and support production-quality embedded and


network software for commercial and government communication systems,


applications, and products.


· Own significant software components from architecture and design through


implementation, integration, test, deployment, and sustaining engineering.


· Develop high-performance software and services in C/C++, with additional


development in languages such as Python as appropriate.


· Design and implement software for Linux-based embedded and RTOS


platforms, including multithreaded and event-driven applications, system


services, device interfaces, and network applications.


· Develop and troubleshoot networking functionality involving IPv4/IPv6, TCP,


UDP, routing, DNS, DHCP, NAT, VPNs, and other IP networking


technologies.


· Analyze packet flows and diagnose complex system and network issues using


tools such as Wireshark, tcpdump, and Linux networking utilities.


· Optimize applications, protocols, and algorithms for operation across wireless,


cellular, satellite, and other variable or constrained network environments.


· Collaborate with systems, hardware, firmware, test, and network engineers to


define interfaces, architectures, and end-to-end solutions.


· Investigate difficult field and system-level problems, identify root causes, and


drive solutions through production deployment.


· Participate in architecture and design reviews and contribute to software


engineering best practices, including code reviews, automated testing, CI/CD,


and configuration management.


· Provide technical guidance and mentorship to less-experienced engineers while


contributing directly to software development.


· Communicate technical trade-offs, status, risks, and recommendations clearly to


engineering teams and stakeholders.


 


Basic Requirements


· Bachelor’s degree in Computer Science, Computer Engineering, Electrical


Engineering, or a related technical discipline.


· 5+ years of professional software development experience, with


approximately 5 years of experience preferred for this role.


· Strong software development experience in C and/or C++.


· Professional experience developing software for embedded Linux or RTOS


environments.


· Solid understanding of computer networking, including IP, TCP, UDP, sockets,


and common networking protocols.


· Experience designing, debugging, and maintaining multithreaded, concurrent,


or real-time software systems.


· Strong understanding of software engineering fundamentals, including data


structures, algorithms, object-oriented design, operating systems, and


software architecture.


· Experience debugging complex software and system-level issues using source-


level debuggers, logs, packet captures, and other diagnostic tools.


 


Preferred Qualifications


· Experience developing software for routers, gateways, modems, wireless


devices, telecommunications equipment, or other networked embedded


platforms.


· Strong understanding of Linux networking, including routing, interfaces,


VLANs, bridging, firewalling, and network configuration.


· Experience with wireless communications technologies such as cellular, Wi-Fi,


satellite, or other RF/networking systems.


· Experience with embedded Linux build environments, development toolchains,


cross-compilation, and hardware/software integration.


· Familiarity with Yocto, Buildroot, OpenWrt, or similar embedded Linux


environments.


· Experience with networking software and technologies such as VPNs,


tunneling, QoS, and advanced routing libraries.


· Experience developing interfaces to hardware and peripherals using


technologies such as UART, SPI, I²C, USB, Ethernet, or PCIe.


· Familiarity with modern development practices and tools including Git, CI/CD,


automated testing, static analysis, and issue tracking.


· Experience developing software for systems requiring high availability,


reliability, security, or operation in constrained network environments.


· Exposure to containerized applications, cloud-connected edge systems,


telemetry, or device-management platforms.


· Experience working with communications systems for commercial,


government, aerospace, or defense applications.


· Strong written and verbal communication skills with the ability to explain complex


technical concepts clearly.


· Self-directed, collaborative engineer who can take ownership of challenging


technical problems and drive them to resolution.

Similar Jobs