Software Engineer II
What will I be doing?
You will be focused on developing and maintaining software for SmallHD’s video monitoring products and will need to be comfortable programming in C for an embedded environment. You will also coordinate with Electronic and FPGA engineering teams during the design, test, and integration phases.
Qualified candidates must have
- A Bachelor’s in computer science or computer engineering, Master’s degree preferred
- 3+ years professional experience
- Advanced proficiency with C programming
- Advanced proficiency developing Linux applications
- Advanced proficiency with common Version Control software
- Familiarity with GNU Make, Python, Bash and Batch Scripting
- Familiarity with I2C, SPI, UART, USB protocols
- Familiarity with ARM Cortex processor cores
- Familiarity with AI tools for software development
- Proficiency with Linear Algebra preferred
- Experience reading electronic schematics preferred
- Experience reading and understanding VHDL preferred
- Experience with UI Design a plus
- Experience with basic Image Processing a plus
- Experience with Videography a plus
About the role
Join SmallHD in Cary, NC as Software Engineer II: develop and maintain embedded C on Linux for video monitoring; collaborate with FPGA/EC teams; grow with a supportive, skilled group.
Responsibilities
You will be focused on developing and maintaining software for SmallHD’s video monitoring products and will need to be comfortable programming in C for an embedded environment. You will also coordinate with Electronic and FPGA engineering teams during the design, test, and integration phases.
A typical day might include the following:
- Completing programming tasks encountered in the process of developing, building, validating, and supporting a Linux-driven embedded device.
- Maintaining existing custom C applications
- Aiding in custom hardware bring-up
- Developing and maintaining ARM based microcontroller software
- Routinely lead code reviews with other team members
Requirements
- A Bachelor’s in computer science or computer engineering, Master’s degree preferred
- 3+ years professional experience
- Advanced proficiency with C programming
- Advanced proficiency developing Linux applications
- Advanced proficiency with common Version Control software
- Familiarity with GNU Make, Python, Bash and Batch Scripting
- Familiarity with I2C, SPI, UART, USB protocols
- Familiarity with ARM Cortex processor cores
- Familiarity with AI tools for software development
- Proficiency with Linear Algebra preferred
- Experience reading electronic schematics preferred
- Experience reading and understanding VHDL preferred
- Experience with UI Design a plus
- Experience with basic Image Processing a plus
- Experience with Videography a plus
Qualifications
- A Bachelor’s in computer science or computer engineering, Master’s degree preferred
- 3+ years professional experience
- Advanced proficiency with C programming
- Advanced proficiency developing Linux applications
- Advanced proficiency with common Version Control software
- Familiarity with GNU Make, Python, Bash and Batch Scripting
- Familiarity with I2C, SPI, UART, USB protocols
- Familiarity with ARM Cortex processor cores
- Familiarity with AI tools for software development
- Proficiency with Linear Algebra preferred
- Experience reading electronic schematics preferred
- Experience reading and understanding VHDL preferred
- Experience with UI Design a plus
- Experience with basic Image Processing a plus
- Experience with Videography a plus
Skills
- C programming
- Linux applications
- Version Control software
- GNU Make, Python, Bash and Batch Scripting
- I2C, SPI, UART, USB protocols
- ARM Cortex processor cores
- AI tools for software development
- Linear Algebra
- Electronic schematics
- VHDL
- UI Design
- Image Processing
- Videography
Benefits
Great people, great work environment
Health Insurance (incl. dental and vision)
401(k) Matching
Fun events throughout the year
Pay
$90,000 - $115,000
Schedule
Full Time
Locations
SmallHD - Cary, NC