Embedded Software Engineer (University Grad)
On-site
Job Description
As an Embedded Software Engineer at Meta, you can help build new, innovative hardware and software that radically redefine the way people work, play and connect. What we build today could one day be the norm. So to be here today is to truly be at the heart of change and the frontier of what's to come. We're the people helping to define the metaverse. We may not have all the answers. But together, we're getting closer.You will architect, design, build and test embedded firmware systems for future AR, VR, and new platforms. In this role, you will participate in the definition of architecture and implementation of designs in both prototype and shipping consumer products as well as demonstrate good development practices and seamless collaboration. Our teams deliver all embedded software from low-level device drivers, to computer vision, to machine learning algorithms.
Responsibilities
- Design and implement components at all layers of the system, e.g. kernel, synchronization primitives, resource allocators, memory management, security, I/O systems, persistence, etc.
- Design and implement drivers and services that operate efficiently in a constrained environment yet when pressed can efficiently deliver large volumes of data with low-latency and high-bandwidth.
- Debug complex, system-level, multi-component issues that typically span across multiple layers from kernel to application.
- Profile performance problems and drive optimizations that span the entire software stack.
- Bring up new devices and lead debugging and performance tuning exercises that span multiple hardware/firmware/software engineers.
- Understand software components from multiple partner teams, lead the integration of those components into the unified product code base, and drive their continued development.
Job Requirements
Minimum Qualifications
- Currently has, or is in the process of obtaining a Bachelor's degree in Computer Science, Computer Engineering, relevant technical field, or equivalent practical experience. Degree must be completed prior to joining Meta.
- Experience working with embedded system and developing firmware/software in C/C++
- Experience with debugging tools such as GDB, oscilloscope, analyzer, and JTAG.
- Demonstrated software engineer experience via an internship, work experience, coding competitions, or widely used contributions in open source repositories (e.g. GitHub). including: source control and design documentation.
- Interpersonal experience: cross-group and cross-culture collaboration
- Must obtain work authorization in the country of employment at the time of hire, and maintain ongoing work authorization during employment
Preferred Qualifications
- Currently has, or is in the process of obtaining a Master's degree in Computer Science, Computer Engineering, relevant technical field, or equivalent practical experience. Degree must be completed prior to joining Meta.
- Experience in peripheral drivers like PCIe, UART, I2C, SPI is plus.
- Experience with RTOS (preferably Zephyr) and embedded Linux
- Experience with embedded MCU and DSP architectures
- Experience in Python or any other scripting language for tooling and test automation