Senior System Software Engineer

San Mateo, CA, US

Job Description / Skills Required

GoPro is seeking a top tier candidate for the Senior System Software Engineer role. This position will be responsible for supporting the firmware development on GoPro’s next generation camera platforms. The Senior System Software Engineer role will work closely with the system architect to define and implement the camera system middleware and/or application layer firmware modules and integrate with the camera UI framework. In addition, the Senior System Software Engineer will also be working and directing external contractors and vendor teams, as well as mentoring the junior engineers in the group. The ideal candidate will have excellent C Programming skills, excellent knowledge of RTOS/embedded systems, have a variety of experiences in system software, love to do whatever it takes to ship products, and possesses great attitude and communications skills.

What You Will Do

Work on and maintain camera system framework and application development.
Work on a variety of different software components in the system, including but not limited to: file systems, low-level database management, camera framework control, USB stacks, IPC controls…etc.
Support research, investigation, and prototyping of new firmware for next generation advanced camera platforms.
Mentor junior firmware engineers
Lead and manage external contractors and resources to augment internal development.

Skills We’re Stoked About

Electrical Engineering or computer science or equivalent BA/BS degree
Minimum 5 years of hands-on industry experience developing embedded applications for portable consumer electronics products
Expert in C programming with RTOS experience (VxWorks, ThreadX, FreeRTOS, Embedded Linux..etc) and excellent understanding of embedded systems concepts and how it works, including tasks, threads, semaphores, deadlocks…etc.
Excellent debugging skills using serial port, JTAG…etc.
Excellent communication and interpersonal skills, ability to lead and conduct meeting, gather status, and make decisions.
Passion for building and shipping AWESOME products!
Experience with the following are a plus:
Audio/video frameworks
File systems
Small Embedded databases
USB Software stacks
Networking software stacks