Synaptics is looking for a Senior Software C++ engineer who is equally comfortable going low-level in user mode and rolling up sleeves in embedded C++ on MCUs when needed. Primary focus is on building, shipping, and maintaining robust Windows drivers and companion user mode services for our USB connected devices; you’ll also collaborate with firmware engineers to shape on device protocols and occasionally contribute firmware changes depending on the feature.
responsibilities :
Participate in the full software development lifecycle—from analysis and design through test and delivery.
Design, implement, and maintain Windows drivers for USB-connected docking-station devices and related interfaces.
Build user-mode services and tools for configuration, diagnostics, and firmware updates (DFU) of docking-station SoCs
Define and evolve the host to dock protocol (USB control endpoints, IOCTLs; WinUSB/HID as appropriate).
Contribute to design and architectural decisions, write clear design documentation
requirements-expected :
Strong programming skills in C/C++ and Python
Experience in building Windows drivers on Windows 10/11
Comfortable with debugging and be able to read and act on crash dumps
Proficiency with Git, code review, and CI pipelines for driver builds
Excellent written & verbal communication, interpersonal and analytical skills, including the ability to communicate complex, interactive design concepts clearly to both technical teams and non-technical partners at the appropriate level of detail
Proactive, self-starter, able to work independently in a fast-paced environment to complete projects on time with minimal guidance
Well organized with strong attention to detail; proactively ensures work is accurate
Positive attitude and work ethic; unafraid to ask questions and explore new ideas
Resourceful and able to solve complex problems through adaptation of existing technology and investigation of new technology to resolve complex problems
Strong team player with the ability to work within a diverse team
Bachelor’s degree in Electrical Engineering, Software Engineering, Computer Science or related field or equivalent
5+ years of experience in multi-threaded software/multi-core embedded development
Demonstrated capabilities to develop SW components under power/foot-print sensitive design considerations