18 Mar
Embedded Engineer
Vacancy expired!
- BSEE/BSCS or equivalent, MSEE/MSCS a plus.
- 5+ years of practical experience in embedded product development for networking equipment (wired or wireless), M2M technology or equivalent.
- Experience in developing low-level hardware drivers, system and hardware level diagnostic routines, boot loaders, error handling, and event logging
- Requires strong C/C programming experience and good understanding of algorithms and data structures.
- Custom board bring-up.
- Build tools (GNU Toolchain, OpenWRT, Buildroot, Yocto), Bootloaders (U-Boot, Coreboot, UEFI), Kernel configuration, Device Drivers and Device Tree Customization.
- Experience in source control such as GitHub or GitLab.
- Device driver development for Wireless devices (Cellular, Wi-Fi and Bluetooth)
- Device driver development for hardware peripherals/interfaces (UART, SPI, I2C, GPIO, MDIO, USB, PCIe)
- Demonstrated understanding of system level concepts, including:
- Kernel and User Mode Software Partitioning
- Host Device Driver / Hardware Interfaces
- PCIe Protocol
- Interrupts (INTA, MSIx)
- DMA Concepts
- Physical and Virtual Memory Management
- Complex Data Structures and Multi-Process / Multi-Threaded Software Architectures
- Hardware Virtualization Concepts (IOMMU, SR-IOV, Multi-Tenant Architectures)
- Networking Concepts (all layers)
- Low level device and block level programming for complex SoC platforms
- Demonstrated expertise in hardware and software debug, including:
- Reading schematics and data sheets.
- Ability to work with system bus analyzers and network protocol analyzers
- Comfortable with In Circuit Emulators and low level ARM CPU debug environment
- Trace buffer and post-mortem analysis / troubleshooting
- Ability to work with hardware design engineers to capture and analyze digital wave forms
- Experience in Ethernet switching chipsets such as Broadcom and Marvell.
- Experience with containerized systems (Docker, Vagrant, Virtual Box and VMWare)
- Demonstrated experience in TCP/IP protocols (Sockets, IPv4, IPv6, TCP, UDP, ICMP, QOS, etc.).
- Experience in at least one embedded Linux distribution is needed
- Effective written and verbal communication skills.
Vacancy expired!