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.