Software Developer
Safariland View all jobs
- Ottawa, ON
- Permanent
- Full-time
- Design, develop, and maintain applications and systems within the team’s scope.
- Write clean, maintainable, performant, and well-tested code to implement features and resolve bugs.
- Build intuitive graphical user interfaces (GUIs) using Qt 5.x.
- Collaborate with Product, Design, and Business stakeholders to plan and prioritize feature development.
- Own feature development through design, coding, testing, and production release.
- Write unit and integration tests, coordinating with QA and technical writers for timely regression testing.
- Troubleshoot and resolve production and customer support issues.
- Investigate existing system functionality and propose technical improvements.
- Ensure scalability, maintainability, and availability of applications.
- Document code, technologies, and application functionality with clear comments and technical documentation.
- Communicate project updates, dependencies, and blockers to stakeholders promptly.
- Bachelor’s degree in Computer Science or a related field (or equivalent experience).
- 3+ years of professional software development experience.
- Strong proficiency in C/C++, Qt 5.x, and GStreamer.
- Experience with Ubuntu/Lubuntu Linux 22.04 and Android development.
- Familiarity with GNU tools (GCC, GDB), MQTT, DDS, Yocto Linux, Trac, SVN, Jenkins, GitLab/GitHub, and CMake.
- Knowledge of Ethernet, TCP/IP protocols (e.g., RTSP), and networking principles (IPv4, unicast, multicast).
- Effective listening and verbal communication skills for interacting with peers, customers, and suppliers.
- Ability to work autonomously or collaboratively in a team environment.
- Strong problem-solving skills, with a creative and constructive approach.
- Eagerness to learn new tools, systems, and technologies.
- Preferred:
- Proficiency in Python.
- Basic knowledge of AI and machine learning concepts, including large language models (LLMs), transformers, neural networks, and vision processing using neural networks.
- Familiarity with computer vision libraries (e.g., OpenCV) and AI frameworks (e.g., TensorFlow, PyTorch).
- Experience with AI in robotics applications, such as perception, decision-making, or real-time inference.
- Knowledge of relevant AI protocols and standards, such as AG-UI (Agent-User Interaction), A2A (Agent-to-Agent), and MCP (Model Context Protocol).
- Required: Ubuntu/Lubuntu Linux 22.04, Android, C/C++, Qt 5.x, GStreamer.
- Preferred: GNU tools (GCC, GDB), MQTT, DDS, Yocto Linux, Trac, SVN, Jenkins, GitLab/GitHub, CMake, ROS2.
- Networking: Understanding of Ethernet, TCP/IP, RTSP, IPv4, unicast, and multicast.