Description

Responsibilities

  • Responsible for designing, developing, and implementing complex software systems.
  • Review the requirements and contribute to the formalization of mission/function/feature description, architectural & algorithms design and the refinement of functional and non-functional requirements.
  • Design, code, debug, test, integrate and support the certification of the software.
  • Analyze and implement correction for defect reports.
  • Contribute in co-engineering activities with the Systems Engineering team in order to ensure the system-software consistency and the right refinement of software components and compliance with the software architecture.
  • Solve tasks in the best technical and timely manner.

Required Skills

  • Understand application development life cycles/methodologies.
  • Must be proficient in SQL & Query Optimization.
  • Thoroughly understand computer systems and underlying platforms and architectures.
  • Skilled with web technologies including Javascript (framework of your choice), HTML, and CSS.
  • Ability to quickly integrate with the team and work independently.
  • Understanding of low level hardware control would be an asset.
  • Excellent verbal and written communication skills.

Required Experience

  • Experience with Object Oriented Programming with C++ language including templates, STL, Boost.
  • Project development experience in Microsoft Visual Studio IDE.
  • Experience with CAN bus protocol would be an asset.
  • Experience with scripting languages (i.e. Perl, Python and Ruby).
  • Experience with design patterns, object oriented techniques, multithreading and socket programming.

Education Requirements

  • Bachelor’s Degree in Computer Science, Computer Engineering or a closely related field.

Education

Any Graduate