Firmware Developer

Location: Vancouver, BC
Date Posted: 06-28-2018
On behalf of our global security-solutions client, Affinity is seeking a Firmware Developer for a 3-6 month contract. 

  • Design and implement sophisticated scalable multi-threaded Object Oriented software in C++ for solving challenging problems involving real time data processing and networking
  • Design advanced software modules that follow modern C++ design patterns
  • Apply C programming skills for Linux device driver development and debugging
  • Apply problem solving skills and experience to identify and improve low-level system performance issues
  • Apply engineering principles to design algorithms for image processing, controlling image acquisition parameters, and environmental control
  • Create design documents on software architecture and algorithms
  • Collaborate with Hardware designers on board bring-up and debug
  • Maintain and improve Firmware build system using Make and Python
  • Review code of peers for adherence to coding standards and design guidelines
  • Estimate and track time and effort necessary for completing implementation tasks
  • Review Marketing and Product Requirements Document during feasibility and development
  • Collaborate with Quality Assurance team on identifying test cases for new features and areas for regression tests
  • Follow the established development process for all design and implementation tasks

  • 5+ years of experience in a software development role
  • 3+ years embedded development experience
  • Strong C and C++ design and programming skills for embedded applications
  • Firm grasp of operating system concepts including processes, threads, mutexes, and interrupt handling
  • Experience with C/C++ compilation and debugging tools
  •   Experience with scripting languages, build systems, and version control systems
  • Excellent written and oral communication skills
  • Degree in Computer or Electrical Engineering, Computer Science, or related technical discipline
  • Experience with development in a Linux environment for ARM processors
  • Understanding of embedded design considerations including C/C++ memory management, microprocessor architectures, instruction efficiency, and I/O timing
  • Knowledge of digital imaging/photography and audio/video coding
About Affinity Staffing:
Affinity Staffing is a full service Information Technology agency that takes a unique approach to recruiting. We believe recruiting is about creating long term relationships that foster a mutually beneficial partnership - an affinity. Bringing a new style of recruiting founded on four core principles – Transparency – Flexibility – Efficiency – Agility.
For more information on Affinity Staffing, please visit
this job portal is powered by CATS