Senior Staff / Principal Engineer
Senior Staff / Principal Engineer
Toronto, Ontario, Canada - Permanent
We are looking for Senior Staff / Principal Engineers. You will have over twelve years of engineering experience, worked for multiple companies as a software engineer and have become an Expert or a Polymath in Software Engineering, one of our Dominant Tech Stacks (See Below).
You could be a Backend, Frontend or Mobile focused engineer. You have strong coding skills and strong system design/architecture capabilities. with multiple examples of successful projects that you have worked on and a couple of failed projects that taught you not to build a “perfect” ivory tower that no-one wants to use.
You will collaborate with management on vision setting, technology direction, architecture, and best practices. The Principal/Senior Staff Engineer will contribute to the codebase following set standards and successfully completing stories and have the ability to provide support for any part of the codebase; also able to understand the codebase with minimal direction from others. You will have ownership of code standards, unit and integration testing practices, and technical roadmap. You are a technical educator not a technical dictator.
Work with the Product Management team to ensure requirements are defined correctly. Ability to successfully architect complex systems and collaborate with more junior engineers to ensure proper implementation of design. You will be an educator who can take the complex and explain it in terms that all audiences understand. Your greatest work will be through others, as you help people level up their technical systems.
What will you do:
- Identify, design, develop, test, and release high quality functionality as efficiently as possible.
- You will be an educator, a mentor and coach. People will come to you for advice because you are approachable and you are able to convey your points in a language that they understand.
- Build and maintain tools and services related to product/engineering squad’s goals.
- Work collaboratively with the rest of the Engineering team to deliver quality products with a focus on speed, security, and analytics.
- Independently identify areas for improvement and innovation within the squad ecosystem, and lead the charge on making those changes.
- Be a key hands-on contributor to the design and implementation of new products and features through the entire stack.
- Ownership of a codebase, maintaining it and ensuring it runs consistently.
- Collaborate with all senior and staff level engineers to explore options and help define architecture and design across the engineering organization.
- Ability to move between squads to devise architecture and assist projects in moving forward.
- Educate Software Engineers to work with Distributed architecture and System Design across Systems
- Function as a leader within the engineering department, providing mentoring and training to all levels of engineering team members.
- Function as internal expert for technology speciality and educate the team on new and changing technologies.
- Secure and safeguard data to preserve its integrity, reliability, and availability and ensure appropriate access levels are maintained.
Must Have Skills:
The following experience is relevant to us:
- We value humility, a strong work ethic, flexibility, collaboration, technical curiosity, and constant learning.
- 10+ years experience as an engineer across multiple environments.
- You are comfortable in considering the right Architecture for the right job, as opposed to forcing one approach on all problems.
- Knowledgeable of object-oriented and/or functional programming patterns and paradigms.
Relevant Tech Stacks:
Production Experience and strong skills with Python/Django OR
Production Experience and strong skills with Kotlin Backend Services OR
Production Experience and strong skills with GoLang Backend Services OR
Production Experience and strong skills with iOS Swift OR
Production Experience and strong skills with Kotlin in Android
- Ability to work in all areas of the tech stack, including infrastructure through the application layer to client libraries.
- Ability to provide support for any pieces of codebase owned and also understand the codebase with minimal direction from peers or more senior engineers.
- Proven ability to work on implementation independently.
- Strong experience working with relational databases like Postgres and mySQL.
- Knowledge of various API paradigms such as REST and RPC and can implement them within the services you are developing on.
- Demonstrated leadership and mentorship skills.