Embedded C++ Programmer

Employment Type:Temporary
Job Location:Toronto, Ontario
Job Function:


General Mission: To perform design, analysis, programming and integration activities in the development of software for train control systems

Job Description:

  • Understands the customer's needs and through life cycle concerns whatever the used means (e.g. advanced studies, simulations, mock-ups, models, prototypes, etc.).
  • Contributes to the formalization of mission/function description, architectural & algorithms design and the refinement of functional and non-functional requirements.
  • Designs, codes, debugs, write test procedures and tests software code, chairs design reviews.
  • Reviews code, test procedures and test results
  • Analyses and implements correction for defect reports
  • Perform engineering testing in the field and investigates problems in the field.
  • Contributes in co-engineering activities with the Systems Engineering team in order to ensure system- software consistency and the right refinement of software components and compliance with the software architecture.
  • Solves tasks in the best technical and timely manner. Looks for opportunities and make suggestions for improvements.
Job Requirement:

  • Required Skills

    • 5+ years of working experience in software development in C++
    • Command of scripting languages, preferably Python
    • Experience with black box and white box testing and continuous integration frameworks
    • Familiar with source control tools (git, ClearCase, etc.),  static analysis (PC-lint, Coverity, etc.), build system automation
    • Excellent analytical skills, able to diagnose issues based on field logs & correlate events to failures
    • Strong technical writing & communication skills
    • Excellent team collaboration skills, writing & verbal skills


    Desirable Skills

    • VectorCAST/C++ or  other unit/component test tools
    • Embedded development for ARM based microcontrollers  or other embedded platforms
    • Familiar with Linux, GCC, Eclipse, ARM/Keil tools, TCP/IP, Ethernet, SDLC/HDLC, CAN Bus, RS-232, RS-485, National Instruments products
    • Familiar with agile work environments, test-driven development, & continuous integration
    • Working knowledge of modern software engineering practices, methods & tools
    • Experience developing for safety critical systems (CENELEC, DO-178B/C, etc.)
    • Experience with large mission-critical & multi-platform heterogeneous systems
    • Comfortable with oscilloscopes, multi-meters, logic analyzers, electrical schematics, lab environments, on-site test & debug