SMART is helping educators and businesses succeed all over the world. Our technology empowers teachers, students, and teams to learn and collaborate in innovative ways, inspiring breakthroughs -- from improved learning outcomes to moving businesses forward.
Purpose of the position
You will be responsible for designing, developing, and implementing world-class software applications with a focus on education.
Duties and Responsibilities
· Writing, documenting, and debugging code for the SMART Notebook application, used by our Windows, macOS, and Linux, with SMART's custom multi-touch displays
· Participating in the design and implementation of features up to several weeks in duration while effectively communicating status and obstacles.
· Completing code changes for large, complex product functions up to several months in duration under supervision, contributing ideas and insights into project decisions
· Creating and maintaining unit tests and automated integration tests with a test-driven development mindset
· Researching the latest software development trends and technologies, and making recommendations on how they can be leveraged for new product ideas and innovations
· Assisting in the maintenance of commercial releases
· Supporting design, process, and best practices improvements for SW Development
· Conduct code reviews as required
· Performing other duties as required
Education and work experience
· B. Sc. Computer Science or equivalent
· Experience with C++17, including modern C++ idioms
· Knowledge of and familiarity with design principles such as design patterns, interfaces, and object-oriented programming
· Familiarity with a unit testing framework and unit testing techniques
· Experience in at least one of Windows, macOS, or Linux native application development. Bonus points for experience with multiple platforms.
· Proven ability to quickly get up to speed in new technologies.
· Ability to work with a global team
Bonus points:
· Experience with any non-C++ language, but particularly C# or Objective-C
· Graphics library experience, such as Direct2D, OpenGL, or Metal, and associated math concepts, such as linear algebra, trigonometry, vector math and matrix math.
· Experience with language interop/bridging technologies such as JNI or P/Invoke
· Experience with a continuous integration system
· Experience with Visual Studio or Xcode
· Can happily navigate and maintain a complex build system
Supervision
· This position has no direct reports
Working conditions
· Flexible work location available; you may choose to work in Calgary headquarters full-time or with a hybrid office/home schedule. Your presence will be required in the Calgary office from time-to-time for access to various SMART hardware in the development and debugging process. Requirements will vary depending on project needs
· Collaborative office experience
· Occasional travel may be required
LI-AS1
At SMART Technologies, privacy is not an afterthought to us. Privacy is at the core of our software design. The result is that privacy is an essential component at the core of our business. To read more about our specific policies, please follow the links below. For more information please review: Recruitment Privacy Policy | SMART Technologies