Jobs.ca
Jobs.ca
Language
Enedym Inc logo

Co-op Embedded Software

Enedym Inc4 days ago
Hamilton, ON
Mid Level
internship

About the role

Enedym Embedded Software Developer

Enedym is a startup from McMaster University focused on developing electric motor and propulsion technologies. We specialize in innovative switched reluctance motor solutions, aiming to revolutionize energy systems for a cleaner, more efficient future. Join our dynamic team to be part of driving meaningful change towards sustainability in transportation and energy.

We are looking for a knowledgeable Embedded Software Developer to join our team. We are developing cutting-edge control systems for our electric motors, interfacing directly with our custom-designed PCBs and hardware. We are looking for individuals who are passionate about low-level programming, real-time systems, and seeing their code bring physical hardware to life.

If you have experience writing firmware for microcontrollers in C and C++ and you are interested in working closely with a multidisciplinary team (including electrical and motor design engineers), then this job is for you. We expect you to be a tech-savvy professional who is curious about debugging hardware/software interactions and applying new ideas to solve complex control problems.

Everyone on our team is highly autonomous and we value individuals that bring insight to the development of our systems and software.

Job Description

Your role as an Embedded Software Developer is to take control algorithms and system requirements from conception to implementation on our custom-designed PCBs. Our technology stack is primarily C and C++ for real-time firmware, with Python used for scripting, testing, and data analysis. This role will require you to actively own and develop firmware for microcontrollers and embedded processors. You will work closely with our small team to develop new features for motor control, sensor integration, and communications. Previous experience with C/C++, embedded development, and reading schematics will be essential to working with our hardware.

In this role as an Embedded Software Developer, you will play a crucial role in the development and validation of our motor propulsion systems. You will work with our team to create and enhance our embedded software, ensuring reliability, efficiency, and real-time performance. Proficiency in C/C++, familiarity with microcontrollers (e.g., ARM Cortex-M, DSPs), and experience with Python scripting is essential for this position. Your responsibilities include developing, testing, and debugging firmware, bringing up new custom PCBs, and collaborating with hardware engineers to drive innovation. Experience with real-time operating systems (RTOS) and a strong focus on robust, maintainable code are highly valued.

Responsibilities

  • Develop new firmware features (e.g., control loops, communication protocols, diagnostics) considering all aspects of the system.
  • Learn and develop skills with new microcontrollers, sensors, and development tools.
  • Build reusable code and libraries (e.g., Hardware Abstraction Layers, drivers) for future use.
  • Take ownership of a feature from idea to deployment on target hardware.
  • Develop and explore new ideas quickly through rapid prototyping on development kits and custom hardware.
  • Collaborate with other team members (electrical, mechanical, systems) and stakeholders.
  • Maintaining documentation on implementation, interfaces, and testing procedures.

Technical Skills:

  • Strong proficiency in C and C++ for embedded systems.
  • Experience with Python for scripting, test automation, or data analysis.
  • Experience with 32-bit microcontrollers (e.g., ARM Cortex-M, STM32, TI C2000) or embedded processors.
  • Familiarity with embedded development tools (compilers, debuggers, IDEs).
  • Experience with communication protocols (e.g., SPI, I2C, UART, CAN).
  • Basic understanding of code versioning tools, such as Git.
  • Familiarity with Real-Time Operating Systems (RTOS) is a plus.
  • Basic understanding of build systems (e.g., CMake, Make) is a plus.

Hardware & Systems Skills:

  • Experience reading and interpreting electronic schematics and component datasheets.
  • Hands-on experience with lab equipment for debugging (e.g., oscilloscope, logic analyzer, multimeter).
  • Experience with board bring-up and hardware/software integration.
  • Understanding of basic electronics principles.

Experience

We realize that the set of skills and responsibilities listed here are large for students and recent graduates. We value individuals who can problem-solve given little background or experience. If you find this position exciting and believe you have relevant experience please apply.

About Enedym Inc

Motor Vehicle Manufacturing
11-50

We believe in disruption for the good of our planet and each other. Now is the time to challenge the status quo. The results can have a massive, lasting, and positive impact on the world.

We have developed innovative engineering processes and tools to quickly and intelligently meet the demands of any application.

We design and build sustainable, low-cost, efficient motor drive technologies.