Matrox is currently looking for a software designer for its Video products. The candidate will be integrated as a developer into an experienced Scrum team. We are looking for a candidate who is passionate about software development, who enjoys working as part of a team and who wants to deliver high quality products to our customers.
Using the C ++ programming language, you will participate in the design, development and maintenance of cross-platform kernel drivers controlling PCI express cards and that are used by top television broadcasters, post-production facilities, and multimedia producers for broadcast and real-time non-linear editing around the world.
- Participate in daily scrum meetings, sprint planning, review and retrospective meetings;
- Collaborate with the product owner to fully understand customer requirements;
- Design and develop new functionalities;
- Participate in code reviews;
- Maintain and improve the quality of existing code;
- Create unit tests and integration tests;
- Develop sample applications that demonstrate the use of new features;
- Collaborate with other development teams.
You have the following qualifications:
- Bachelor's degree in Software Engineering, Electrical Engineering with computer science option or Computer Science;
- Strong knowledge of object oriented programming;
- 1 to 5 years of experience in C++;
- Good communication skills.
You master one or more of the following:
- Experience in Agile and Scrum practices;
- Experience in debugging real-time scenarios and in multi-threaded environments;
- Writing multiplatform libraries (Windows/Linux);
- Writing multiplatform kernel drivers (Windows/Linux);
- Hardware knowledge such as PCI express bus, I2C bus, processors architecture, FPGA design
- Experience in UML techniques and practices;
Knowledge of the following tools or technologies is considered an asset:
- JIRA, Agile/Scrum tool;
- Git/ Bitbucket version control and code review;
- Visual Studio, WinDbg;
- GCC, CLANG, CMake, Make (makefiles), bash, gdb, powershell;
- Java, JNI, NetBeans, Eclipse;
- Knowledge of the architecture of the Windows and Linux operating systems;
- Knowledge in networking and its protocols;
- Knowledge of unit test frameworks;
- Knowledge of Microsoft COM technologies.