Embedded Engineer, Operating System

Snap Snap · Consumer · Vienna, Austria

Embedded Engineer for Snap's Spectacles team, focusing on designing and implementing embedded software for consumer products, including kernel, synchronization primitives, resource allocators, and I/O systems. Requires experience with ARM architecture, C/C++, BSP, and Operating Systems.

What you'd actually do

  1. Lead or participate in the design, architecture and implementation of embedded software in both prototype and shipping consumer products
  2. Design and implement software or system development components at all layers of the system, e.g. kernel, synchronization primitives, resource allocators, memory management, security, I/O systems, persistence, Camera, Audio etc
  3. Participate in design reviews, code review with peers and stakeholders to create reliable solutions
  4. Triage product or system issues and debug/track/resolve by analyzing the sources of issues

Skills

Required

  • computer system architecture
  • microprocessor and microcontroller fundamentals
  • source control
  • bug tracking
  • design documentation
  • reading schematics
  • component data sheets
  • analytical and software debugging skills
  • Operating Systems architecture
  • Dependency management
  • BSP (Board Support Package) creation/Integration
  • embedded software development
  • ARM architecture
  • C or C++
  • BSP/Board Support Package
  • Operating Systems
  • Linux Embedded OS (AOSP, Yocto, Buildroot)
  • Build systems (Cmake, Autotools, GNU make, Ninja)

Nice to have

  • Advanced degree in a relevant field such as computer science or electrical engineering

What the JD emphasized

  • ARM architecture
  • embedded software development
  • C or C++
  • BSP/Board Support Package
  • Operating Systems
  • Linux Embedded OS