Enable job alerts via email!

Engineer, Software

Celestica

Newmarket

On-site

CAD 80,000 - 100,000

Full time

8 days ago

Job summary

A leading technology firm in Newmarket, Ontario is seeking an experienced Software Engineer to develop and support embedded software solutions. The ideal candidate will work with cross-functional teams and engage in firmware development using C/C++. Strong knowledge of microcontroller architectures and a commitment to high-quality product development are required. Candidates must be Canadian citizens or permanent residents due to regulatory requirements.

Qualifications

  • 2 to 5 years of experience.
  • Experience in designing and developing firmware for embedded systems.
  • Proficient in bare-metal programming and interrupt-driven design.

Responsibilities

  • Work independently to design and develop technical solutions.
  • Write code directly interacting with microcontrollers and sensors.
  • Develop and debug applications on constrained systems using RTOS.

Skills

Firmware & Low-Level Programming
Microcontroller/Microprocessor
Real-Time Operating Systems (RTOS)
Hardware-Software Integration
Communication Protocols
Embedded Linux/Operating Systems
Scripting & Automation
Software Development Lifecycle (SDLC)
Version Control
Documentation
Continuous Integration/Continuous Deployment (CI/CD)

Education

Bachelor of Applied Science or Engineering in Computer, Software, or Computer Science

Tools

C/C++
Python
JTAG/SWD debuggers
Git
Job description
Overview

Req ID: 129670

Remote Position: No
Region: Americas
Country: Canada
State/Province: Ontario
City: Newmarket

The Engineer, Software develops, debugs, tests, deploys and supports code to be deployed in systems/products/equipment for various applications. They write, debug, maintain, and test software in various common languages and for software at various levels in the hierarchy (from Firmware to Application). Software creation follows an agreed to development process (such as Agile, Scrum, etc.) and complies with the product life cycle development (phase/gate deliverables).

The Engineer, Software works in cross functional teams with other designers, customers, manufacturing engineering and project leadership to ensure robust and high quality product development. Enhance designs with feedback from reviews in areas such as manufacturing, test, supply chain, reliability, industrial design and simulations.

Responsibilities
  • Work independently to design and develop technical solutions without assistance in a limited number of technical fields supporting common segments/technologies. May also solve complex problems in cooperation with a team of other engineers.
  • Hardware Interaction: Write code directly interacting with microcontrollers/Microprocessors, SOCs, sensors, actuators, and other hardware components.
  • Low-Level Programming: Work extensively with C/C++ and assembly language for optimal performance and resource management.
  • Real-Time Operating Systems (RTOS): Develop and debug applications on constrained systems, often using RTOS for task scheduling and concurrency.
  • Resource Optimization: Efficiently manage memory, power, and processing cycles, critical for embedded devices.
  • Driver Development: Create and maintain device drivers for specific hardware peripherals (e.g., SPI, I2C, UART).
  • Firmware Development: Design, implement, and test firmware, often from boot-up to application logic.
  • Debugging & Testing: Utilize specialized tools like JTAG/SWD debuggers, oscilloscopes, and logic analyzers for hardware-level debugging.
  • Board Bring-Up: Participate in the initial software development phase when a new hardware board becomes available.
  • Protocol Implementation: Implement and work with various communication protocols (e.g., CAN, Ethernet, USB, custom wireless protocols).
  • Reliability & Safety: Design and test software for high reliability and, in A&D or equivalent, safety-critical operation (e.g., fail-safes, watchdog timers).
  • Standards & Compliances: Design and develop the software aligned with listed standards including but not limited to: RTA DO-178C & related standards.
  • Integrate tools and code developed by other internal groups or external customers
  • Debug of solutions using design of experiments, tools, and failure analysis methodologies
  • Liaison between the Customer, Program Manager, and the technical team
  • Apply a continuous improvement mindset to all aspects of the development process
  • Occasional travel and flexible work schedules for global site support may be required
Knowledge/Skills/Competencies
  • Firmware & Low-Level Programming: Experience in designing and developing firmware for embedded systems using languages like C/C++. Proficient in bare-metal programming, interrupt-driven design, and memory management for highly optimized code.
  • Microcontroller/Microprocessor: Working knowledge of microcontroller and microprocessor architectures (e.g., ARM Cortex, PIC, AVR) and their peripherals, including timers, ADC/DAC, PWM, and GPIO.
  • Real-Time Operating Systems (RTOS): Experience with RTOS concepts and implementations (e.g., FreeRTOS, RT-Thread), including task scheduling, inter-task communication, and synchronization.
  • Hardware-Software Integration: Proven ability to integrate software with hardware, perform board bring-up, and use electronic lab equipment (e.g., oscilloscopes, logic analyzers, and JTAG/SWD debuggers) to diagnose and resolve complex hardware-software issues.
  • Communication Protocols: Hands-on experience with both on-board and external communication protocols such as I2C, SPI, UART, CAN, USB, and Ethernet.
  • Embedded Linux/Operating Systems: Experience in developing applications for embedded Linux environments, including device driver development, kernel configuration, and file system management.
  • Scripting & Automation: Proficient in Python for developing build scripts, test automation frameworks, and data analysis tools to support the embedded development workflow.
  • Software Development Lifecycle (SDLC): Experience with the complete SDLC for embedded products, from concept and design to testing, deployment, and long-term maintenance.
  • Version Control: Experience with version control systems, particularly Git, for collaborative development and managing codebases.
  • Documentation: Strong technical writing skills to create and maintain clear, comprehensive documentation for firmware design, APIs, and test procedures.
  • Continuous Integration/Continuous Deployment (CI/CD): Experience working in robust CI/CD pipelines using tools like Jenkins, GitLab CI/CD, or GitHub Actions. This includes automated testing, code quality checks, and deployment strategies.
  • Experience in VxWorks is considered an asset
  • Ability to learn new software coding languages and custom code deployments
Physical Demands
  • Duties of this position are performed in a normal office environment.
  • Duties may require extended periods of sitting and sustained visual concentration on a computer monitor or on numbers and other detailed data.
  • Repetitive manual movements (e.g., data entry, using a computer mouse, using a calculator, etc.) are frequently required.
  • Occasional travel may be required.
Typical Experience
  • 2 to 5 years
Typical Education

Bachelor of Applied Science or Engineering in Computer, Software, or Computer Science

Notes

This job description is not intended to be an exhaustive list of all duties and responsibilities of the position. Employees are held accountable for all duties of the job. Job duties and the % of time identified for any function are subject to change at any time.

Celestica is an Equal Opportunity Employer. All qualified applicants will receive consideration for employment without regard to race, color, religion, sex, sexual orientation, gender identity, national origin, age, pregnancy, genetic information, disability, status as a protected veteran, or any other protected category under applicable federal, state, and local laws.

At Celestica we are committed to fostering an inclusive, accessible environment, where all employees and customers feel valued, respected and supported. Accommodations are available upon request for candidates throughout the hiring process. If you require an accommodation, we will work with you to meet your needs.

This position involves technologies regulated by the Canadian government\'s Controlled Goods Program (CGP). Candidates must be Canadian citizens or permanent residents of Canada and meet all other requirements under CGP. Job offers will be conditional upon candidates undergoing a successful security screening per the Controlled Goods Regulations.

COMPANY OVERVIEW: Celestica (NYSE, TSX: CLS) enables the world’s best brands. Through our recognized customer-centric approach, we partner with leading companies in Aerospace and Defense, Communications, Enterprise, HealthTech, Industrial, Capital Equipment and Energy to deliver solutions for their most complex challenges. As a leader in design, manufacturing, hardware platform and supply chain solutions, Celestica brings global expertise and insight at every stage of product development – from drawing board to full-scale production and after-market services for products from advanced medical devices, to highly engineered aviation systems, to next-generation hardware platform solutions for the Cloud.

Headquartered in Toronto, with talented teams spanning 40+ locations in 13 countries across the Americas, Europe and Asia, we imagine, develop and deliver a better future with our customers.

Celestica would like to thank all applicants, however, only qualified applicants will be contacted.

Celestica does not accept unsolicited resumes from recruitment agencies or fee based recruitment services.

Get your free, confidential resume review.
or drag and drop a PDF, DOC, DOCX, ODT, or PAGES file up to 5MB.