Job Summary:
Our client in Waterloo, ON is looking for a Software Engineer Practitioner. This is a contract position.
What You Will Do:
We seek a skilled and motivated C/C++ Software Developer to join our team. This role is crucial for designing, developing, and maintaining embedded software solutions. The ideal candidate should have good experience in debugging, and compiler tools, and possess good knowledge of C/C++ programming. This position requires a strong background in real-time, multithreaded/multi-process programming, and a passion for delivering high-quality, efficient code.
Core Duties/Responsabilities:
1. Work in an agile team of software developers, test engineers, technical product managers and leads.
2. Responsible for delivering high quality embedded code running on the processors at the heart of all vehicles.
3. Design, Code, document, test, integrate SW code for embedded vehicle to add new features and do defect resolution.
4. Analyze SW logs and defects and problem Solving through SW.
5. Participate in system design, documentation, and testing to deliver a best-in-class SW solution.
Basics:
6. Bachelor's Degree: Bachelor's degree in computer science, Software Engineering, Electrical Engineering, or equivalent experience.
7. 3+ years of experience of 2 or more of C/C++/Java/Kotlin/JavaScript/XML/Python/Perl/MATLAB.
8. 2+ years of Experience with any of Linux/Unix/QNX/Android.
9. 2+ Experience of embedded software development.
10. 2+ years of Proficient knowledge of unit-testing.
11. Experience working with embedded software, can demonstrate proficient software development skills.
12. Basic knowledge of unit-testing and mock frameworks.
13. Knowledge of Agile SW engineering principles.
14. Knoweldge of Code quality tools like static code analysis eg. sonarqube or klocworks.
15. Experience in automotive SW development.
16. Hybrid position.
Preferred:
17. Master's Degree: Master's degree in Electrical and Computer Engineering or related field.
18. Object-Oriented Programming: Practical experience with Object-Oriented Programming (OOP) and design patterns.
19. Scripting Languages: Proficiency in scripting languages such as Python and Bash.
20. Version Control: Experience with version control systems like Git.
21. Operating Systems: Working knowledge of Linux/Unix operating systems.
22. Code Review: Experience in conducting code reviews and providing constructive feedback to improve code quality. * Software Integration: Proven experience in integrating software components and ensuring seamless interaction between different modules.
23. Documentation: Proficiency in documenting software designs, specifications, and user manuals.
24. SOLID Principles: Strong understanding and practical experience in applying SOLID principles to software development.
25. Mentoring: Experience in mentoring junior developers and helping new hires ramp up quickly.
26. Agile SW Engineering Principles: Experience with Agile software engineering principles.
27. Distributed Architecture: Experience designing/developing in a distributed architecture.
28. Automotive Software Development: Experience in automotive software development.
How You Will Be Successful:
29. Envision the Future
30. Communicate Honestly and Broadly
31. Seek Technology and Business “First”
32. Embrace Diversity and Take Risks
What We Offer:
33. Competitive Salary
34. Comprehensive Benefit Package
35. Group Retirement Savings Plan (GRSP) with matching contributions
36. Paid holidays and vacation time off
37. Free training on all Altair products