
Principal Software Developer
- Ottawa, ON
- Permanent
- Full-time
- Provide strong leadership for the team, wielding technical and business influence beyond team boundaries.
- Drive multi-team initiatives spanning diverse domains, consistently delivering value that extends beyond the immediate team.
- Demonstrate deep business acumen to align technical strategy with customer and market needs.
- Make timely decisions, prioritizing customer trust over expediency, and leverage input to determine optimal technical solutions.
- Identify and course-correct when the current path does not meaningfully serve customer needs, playing a key role in setting longer-term business strategy.
- Provide technical and architectural leadership and lead in setting the quality standards for the team's technical work, from code to software designs, while raising the skill level of less experienced team members.
- Build scalable, on-premises and cloud-native applications based on marketing requirement specifications.
- Develop libraries, APIs and frameworks to assist in the creation of applications.
- Drive the integration of AI and machine learning technologies into core platforms to enhance functionality, scalability and user experience.
- Evaluate and adopt emerging AI frameworks and mentor engineering teams on AI/ML best practices.
- Perform unit and integration testing for software.
- Strong experience in enterprise-class server applications in Java, Web services, REST protocols.
- Deep understanding of advanced Java topics such as extreme multi-threading, garbage collection internals, performance tuning, memory debugging, and cross-platform portability.
- Strong knowledge of software design patterns, object-oriented analysis and design.
- Proficient and comfortable at problem diagnosis, troubleshooting and problem solving.
- Ability to design and implement complex algorithms to deliver architectural components and business functions.
- Self-driven quick learner with attention to detail and strong interpersonal and communication skills.
- Experience with distributed frameworks such as Kafka and Hazelcast.
- Experience with SaaS, cloud and container technologies such as Docker and Kubernetes.
- Experience with cloud deployment and cloud providers such as AWS, Google Cloud, Azure.
- Proficiency in programming languages such as Python to develop and automate cybersecurity tools and scripts.
- Experience with scripting languages such as PowerShell, Bash, or Shell for automating security tasks and configurations.
- Bachelors or Master's degree in Computer Science or equivalent