
Embedded Software Engineer
- Sunnyvale, CA
- Permanent
- Full-time
- Embedded Software Engineer - Modeling and Virtual Platforms Responsibilities
- Design and implement software components at all layers of the system, including kernel, synchronization primitives, resource allocators, memory management, security, I/O systems, persistence, etc
- Develop drivers and services that operate efficiently in constrained environments and deliver large volumes of data with low-latency and high-bandwidth
- Lead hardware bring-up, peripheral drivers and communication, silicon integration, and power and performance management and optimization efforts
- Debug complex, system-level, multi-component issues that span multiple layers from kernel to application.
- Profile performance problems and drive optimizations across the entire software stack
- Analyze, design, develop, and debug firmware for a wide variety of devices, including novel sensing and imaging systems, haptic devices, and audio prototypes
- Collaborate closely with cross-functional teams, including silicon architects, hardware designers, OS team, and algorithm and model development teams
- Understand and implement power-management, boot loaders, scheduling, inter-processor communication, computer vision, and firmware/system interfaces on RTOS and/or bare-metal environments
- Design, develop, and architect models and infrastructure building blocks of Virtual Platforms, integrating internal models and vendor IP models
- Bachelor's degree in Computer Science, Computer Engineering, relevant technical field, or equivalent practical experience
- We are looking 5+ years software development experience in industry settings or PhD with 2+ years of experience
- We are looking 3+ years embedded software development experience in industry settings
- Experience in large-scale C/C++ code base
- Demonstrated experience working across disciplines to drive optimal solutions
- M.S. degree in Computer Science or Electrical Engineering
- Experience with SystemC, TLM or other simulation frameworks
- Debugging experience using gdb or other debuggers
- Knowledge in algorithms, data structures, software design
- Experience automating development and validation tasks using Python
- Experience with Python based application development interfacing with C++
- Flexible work
- Healthcare including dental, vision, mental health, and well-being programs
- Financial well-being programs such as 401(k) and Employee Share Ownership Plan
- Paid time off and paid holidays
- Paid parental leave
- Family building benefits like adoption assistance, surrogacy, and cryopreservation
- Social well-being benefits like subsidized back-up child/elder care and tutoring
- Mentoring, coaching and learning programs
- Employee Resource Groups
- Disaster Relief