Software/Firmware Engineer, Mid-Level and Senior-Level

Do you like a challenge? Are you looking for an upbeat, progressive atmosphere to put your software/firmware skills to use? Join Apricity’s group of work hard/play hard electronics engineers where you will be programming for a wide variety of projects (e.g. audiophile wireless headphones, grid-scale energy monitoring, medical device robotics controllers, etc.).

About our group

Apricity is an electrical engineering consulting firm providing a wide variety of engineering services to our clients. We are dedicated to providing a great working environment with lots of flexibility. We believe happy employees generate efficient work. We value engineers that appreciate feedback and love to learn. The ideal candidate is both a generalist (knowledgeable about a broad range of things) and an expert (among the best in their field within a narrow discipline).


  • Design and implement firmware for embedded devices and systems from requirements and architecture to production and commercial deployment

  • Design, develop, test and debug system software

  • Participate in code reviews and provide feedback

  • Analyze and enhance efficiency, stability and scalability of system resources

  • Integrate and validate new product designs

  • Support software QA and optimize I/O performance

  • Provide post-production support

  • Interface with hardware design and development

  • Assess third party and open source software


  • A bachelor's degree in computer science, software engineering, or related field

  • Experience in hands-on development and troubleshooting embedded systems

  • Solid programming experience in a variety of languages C, C++, Python, etc.

  • Experience in embedded systems design

  • Familiarity with software management tools, Git or equivalent

  • Knowledge of OS coding techniques, IP protocols, interfaces and hardware subsystems

  • Adequate knowledge of reading schematics and data sheets for components

  • Strong documentation and writing skills

  • Team player

  • Willingness to take on challenges and learn new skills

  • Ability to manage time and priorities between multiple projects

how to apply