Software Developer - Greater Sudbury, Canada - MacLean Engineering

    MacLean Engineering
    MacLean Engineering Greater Sudbury, Canada

    Found in: Talent CA C2 - 1 week ago

    Default job background
    Full time
    Description

    Title: Software Developer II – Advanced Vehicle Technologies – Remote Control Systems

    Location: Sudbury, ON

    Scope:

    Reporting to the Advanced Vehicle Technologies (AVT) Product Engineering Manager for Remote Control Systems, the Software Developer is responsible for the design of modular, unit-tested code for the Maclean remote control offerings. The successful candidate will help design and implement new code for our line of sight, tele-remote, and tele-op systems using primarily C++ and Simulink with the objective of building towards combining operator assist and semi-autonomous driving features into the remote control systems.

    Duties and Responsibilities:

  • Design, implement and test major software features in collaboration with multi-disciplinary teams to develop new software for a variety of Remote Control products
  • Establish a solid software implementation for machine control which will form the base for advanced driver assist features.
  • Define, design, and implement multi-tiered object-oriented distributed software applications
  • Integrate new and existing software into new and existing machinery
  • Maintain and modify existing applications
  • Perform custom programming as assigned
  • Debug and test software implementations
  • Some travel may be required
  • Qualifications

    The successful candidate must be willing to learn, open-minded and flexible, organized and detail oriented, team oriented, disciplined, and must have a positive attitude, along with the following qualifications:

  • Degree in Software Engineering, Computer Engineering or Computer Science, or equivalent experience is required
  • Master's degree would be considered an asset
  • Experience working in an ISO 9001 environment would be considered an asset
  • Core Technical Skills

  • Experience designing and developing desktop or embedded software, particularly in distributed, industrial systems
  • Strong proficiency in C++ with fair knowledge of the language specification
  • Strong understanding of object-oriented (OO) software development practices
  • Understanding of functional programming and design patterns
  • Experience with source control management, especially git
  • Development experience with scripting languages (Python, shell scripting)
  • Experience with Unix-based operating systems,
  • Thorough knowledge of the standard library, STL containers, and algorithms
  • Good understanding of memory management in non-garbage collected environments
  • Experience with build automation and packaging software, especially Mbed
  • Additional Technical Competencies that would be Considered an Asset:

  • Experience with MATLAB/Simulink
  • Experience with Docker
  • Knowledge of the C and C++ core guidelines support library
  • Experience with well-known C++ open-source library
  • Experience with automated testing platforms and unit, integration, and regression tests
  • Experience with CI/CD tools
  • Knowledge of optimization practices and tools
  • Familiarity with the open-source multimedia framework
  • Familiarity with computer vision and math C++ library
  • Experience with GPU and parallel programming libraries
  • Familiarity with embedded systems design, low-level hardware interactions
  • Familiarity with arm processors and cross-compile toolchains
  • Working knowledge of CAN Bus, serial and ethernet protocols
  • Working knowledge of real-time systems or control systems
  • Familiarity with Agile software development practices, including Agile project management tools, particularly Jira
  • Adequate knowledge of reading schematics and data sheets for components
  • Experience in robotics and machine automation
  • Core General Competencies

  • Strong technical skills
  • Communication skills, both technically and non-technically (verbally and in writing)
  • Experience in software product development
  • Ability to work in a collaborative software development environment
  • Ability to document the processes
  • Multitasking and shifting priorities
  • Adaptability
  • Decision-making skills and analytical skills
  • Ability to prioritize and manage time effectively
  • MacLean Engineering & Marketing Co. Limited is an equal opportunity employer and is committed to providing employment accommodation in accordance with the Ontario Human Rights Code and the Accessibility for Ontarians with Disabilities Act

    MacLean Engineering & Marketing Co. Limited will provide accommodations to job applicants with disabilities throughout the recruitment process. If you require an accommodation, please notify us and we will work with you to meet your needs.