Apply to Senior Software Engineer (C++ | Embedded Systems | IoT | Android)
Job Title: Senior Software Engineer – Embedded Systems (C++ | IoT | Android)
Location: Toronto, ON
Duration: Contract
Work Model: Hybrid
Interview Process: In-Person Interview
Role & Responsibilities
-
Design, develop, and maintain embedded software applications using C++, C, and Python.
-
Develop software components for embedded systems, IoT, and mission-critical platforms.
-
Build and enhance Android platform applications and system components.
-
Design and implement REST APIs and integrate with cloud services.
-
Develop automation tools and deployment scripts using Python and Shell scripting.
-
Work with Docker and Kubernetes for containerized application development and deployment.
-
Perform software integration, debugging, troubleshooting, and performance optimization.
-
Create and execute unit, integration, and system test cases using GTest and Gherkin.
-
Collaborate with cross-functional teams, including hardware, QA, DevOps, and product engineering.
-
Participate in code reviews and ensure adherence to coding standards and best practices.
-
Prepare and maintain technical documentation, design specifications, and test reports.
-
Support Agile/Scrum development processes and CI/CD practices.
Required Skills
-
Strong programming experience in C++, C, Python, and Java.
-
Expertise in Embedded Software Development.
-
Experience with Android Platform Development.
-
Knowledge of IoT Solutions and connected devices.
-
Hands-on experience with Linux (Ubuntu), QNX, Windows, and macOS.
-
Experience with Docker and Kubernetes.
-
Knowledge of AWS services (EC2, S3, IoT Core, CloudWatch, Kinesis).
-
Experience in REST API Development.
-
Proficiency with Git, Visual Studio, Eclipse, PyCharm, VMware, and Wireshark.
-
Knowledge of Terraform, Shell Scripting, and MySQL.
-
Experience with GTest, Gherkin, MC/DC Testing, and software automation.
-
Strong debugging, troubleshooting, and performance optimization skills.
Preferred Qualifications
-
8-10 years of software development experience.
-
Experience with embedded Linux and real-time operating systems.
-
Knowledge of mobile security and Android frameworks.
-
Strong analytical and problem-solving skills.
-
Excellent communication and teamwork abilities.
-
Bachelor's or Master's degree in Computer Science, Information Technology, or a related engineering discipline.