Software Engineer 3

Epitec, Inc

Waterloo, ON

JOB DETAILS
SKILLS
Agile Programming Methodologies, Analysis Skills, Architectural Design, Best Practices, C Programming Language, C++ Programming Language, Code Reviews, Communication Skills, Computer Science, Continuous Deployment/Delivery, Continuous Improvement, Continuous Integration, Cross-Functional, Customer/Client Research, Embedded Software, Embedded Systems, Emerging Technology, IBM Product Family, MATLAB, Needs Assessment, Performance Tuning/Optimization, Problem Solving Skills, Product Requirements Document (PRD), Python Programming/Scripting Language, Quality Assurance Methodology, Requirements Management, Software Architecture, Software Development, Software Development Lifecycle (SDLC), Software Engineering, Software Testing, System Architecture, Systems Engineering, Team Player, Technical Leadership, Technical/Engineering Design, Test Automation, Test Driven Development (TDD), Test Plan/Schedule, Test Strategy, Testing, Use Cases
LOCATION
Waterloo, ON
POSTED
4 days ago
Software Engineer (Core Engineer) 
Location: Oakville, ON or Waterloo, ON 
Work Arrangement: Hybrid - 4 days onsite
Duration: 12 months, possibility of extension


Position Overview

We are seeking a talented Software Engineer III to join a team focused on developing innovative embedded software solutions. In this role, you will participate in the full software development lifecycle, from requirements definition and architecture design through implementation, testing, deployment, and continuous improvement.

The ideal candidate will have strong experience in embedded software development, C/C++ programming, Python-based tool and test development, and technical requirements authoring. This position offers the opportunity to work with cross-functional teams to build high-quality software systems for cutting-edge products.

Key Responsibilities

  • Collaborate with stakeholders to understand customer needs, use cases, and technical requirements.
  • Design, develop, test, and deliver embedded software solutions using modern engineering practices and Agile methodologies.
  • Define software architectures, interfaces, integration strategies, and deployment approaches.
  • Develop software applications and components in embedded environments using C/C++ and Python.
  • Create and maintain technical specifications, requirements documentation, and system-level artifacts.
  • Partner with product owners, systems engineers, architects, and other cross-functional teams to deliver high-quality solutions.
  • Define and implement software testing strategies, processes, and best practices.
  • Support continuous integration, continuous delivery, and test-driven development practices.
  • Optimize software performance, reliability, and maintainability.
  • Implement security best practices to help protect system and user data.
  • Research, evaluate, and incorporate emerging technologies to improve development efficiency and product capabilities.
  • Participate in code reviews, design reviews, and technical discussions to ensure engineering excellence.

Required Qualifications

  • Bachelor’s degree in a relevant engineering or computer science discipline.
  • 5+ years of experience developing software in an embedded environment.
  • 3+ years of experience developing software applications using C/C++.
  • 3+ years of experience using Python to develop software tools, automation, or test frameworks.
  • 3+ years of experience creating and managing technical requirements or specifications.
  • Experience using requirements management tools such as:
    • IBM DOORS / DNG
    • Polarion
    • Jama
  • Strong understanding of software development lifecycle methodologies and engineering best practices.
  • Experience working within Agile development environments.

Preferred Qualifications

  • 3+ years of experience developing applications using MATLAB.
  • 3+ years of experience developing applications using Simulink/Stateflow.
  • Experience with systems engineering principles and methodologies.
  • Experience with systems modeling tools such as MagicDraw.
  • Experience authoring system-level requirements.
  • Additional embedded systems development experience.

Technical Skills

Required

  • Embedded Software Development
  • C/C++
  • Python
  • Requirements Management & Specification Authoring
  • Agile Development Practices
  • Continuous Integration / Continuous Delivery (CI/CD)
  • Test-Driven Development (TDD)

Preferred

  • MATLAB
  • Simulink
  • Stateflow
  • Systems Engineering
  • MagicDraw
  • Embedded Systems Architecture

Work Arrangement

  • Hybrid schedule: 4 days per week onsite.
  • Candidates must be able to work from either the Oakville, Ontario or Waterloo, Ontario office locations.

What You'll Bring

  • Strong analytical and problem-solving skills.
  • Excellent communication and collaboration abilities.
  • Ability to work effectively across multidisciplinary teams.
  • Passion for developing high-quality software and continuously improving engineering practices.
  • Commitment to delivering reliable, secure, and scalable solutions.

#LI-EP1

About the Company

E

Epitec, Inc

Epitec is a leading staffing and recruiting services company with a mission to make staffing personal. We go beyond traditional hiring by truly understanding our candidates and matching them with the perfect opportunities. We offer competitive compensation, career growth, and support throughout the entire process. Working with top Fortune 500 companies, we are recognized for our excellence with numerous awards, including Best & Brightest and diversity recognitions. At Epitec, we're redefining the future of employment. 

COMPANY SIZE
2,500 to 4,999 employees
INDUSTRY
Staffing/Employment Agencies
EMPLOYEE BENEFITS
Professional Development, 401K, Employee Referral Program, Life Insurance
FOUNDED
1978
WEBSITE
https://epitec.com/