Senior Engineering Manager (Verticals)

Senior Engineering Manager (Verticals)

Toronto, Ontario, Canada  - Permanent

Job Description

We are seeking a Senior Engineering Manager to lead and inspire an engineering squad (team) composed of both frontend and backend engineers, expected to build products that support our Products. You will help the squad build products, not just code, own all technology solutions and ensure high-quality code is produced through ensuring adherence to software engineering best practices. You will ensure squad scales efficiently and effectively executes against the product roadmap. You provide technical and professional growth for each direct report, have the ability to be conversant in the squad’s code-bases and are able to help out in a pinch (fix bugs, help out during an outage, and be in the on-call rotation). We want you to drive innovation at process and project levels, defining new processes and consistently improving existing processes.

What will you do:

Squad Health
- Own the people, process, and technology of one or two squads.
- Builds and maintains Psychological Safety within the squad and beyond.
- Responsible for building and growing a top-performing squad, including the hiring/firing, training, and performance management of the humans on the squad.
- Mentor and grow the capabilities of the squad(s)
- Drive results by establishing motivational goals and providing constructive feedback to squad members.
- Assist squad in navigating relationships with Stakeholders e.g. Product, Design, Supply, etc.
- Develop training plans for continuous development of the squad’s engineering skills and product knowledge.
- Ensuring squad members grow in technical areas that are of interest to them and/or are less experienced in.
- Actively think about how to evolve the squad capabilities beyond the individuals.

Squad Quality
- Put in place development best practices to ensure the squad produces high-quality, well-written, and tested code.
- Measure metrics like velocity and determine ways to shorten the SDLC by uncovering the squads’ blockers and helping to remove them.
- Lead reviews of architecture design.
- Know and document the strengths and weaknesses of Products and technical stack
- Create a healthy balance between features and reduction of technical debt.
- Understand, own, and maintain all technology solutions for this squad. This includes managing the rotating on-call incident escalation and response processes for the squad.
- Secure and safeguard data to preserve its integrity, reliability, and availability and ensure appropriate access levels are maintained.
- Provides observability into the Squad’s work. Both terms of technology, SDLC, and humans.
- Understand and manage the financial costs of the products and solutions the squad builds.
- Understand the performance of the tech stacks you are responsible for.
- Have a strong Quality Plan (how do we test, how do we write better code, what are our critical paths, runbooks, etc...) for the squad.

Squad Delivery
- Collaborate on roadmaps with Product Managers, other Engineering Managers, and Technical Leads (this is a responsibility not a role) to ensure the Squad has clear direction and priorities and is meeting product requirements.
- Be conversant in the squad(s)’s code-bases with the ability to help out in a pinch (fix bugs, help out during an outage, and be in the on-call rotation).
- Ensures the administrative tasks are done (e.g. Cap Dev).

Engineering Leadership
- Continue your own growth in usage of technology and working with Humans.
- Support the improvement of SDLC, Career Packages, Domain Driven Design, Onboarding, Quality Plans and other projects across Engineering.
- Be an industry thought leader, participating in public speaking events and meetups to showcase The Company as a leader in technology.

Must Have Skills:

The following experience is relevant to us:

- Bachelor’s degree in computer science with 7+ years experience as an engineer using Python, Java, JavaScript, TypeScript, or React on multiple projects on complex distributed polyglot systems.
- Proven ability to understand and vocalize opinions about architecture.
- Familiar with Object Oriented Design, Domain Driven Design, Event Driven services.

- 4+ years of full-time engineering experience building and shipping software.
- 5+ years of management experience leading a squad of four or more engineers working on a distributed system in Java or Python.
- Demonstrable experience mentoring and coaching reports to their desired career goals.
- Demonstrable experience with small squads that move fast - all members are expected to be able to achieve maximum results with minimal direction.

Nice to have
- Postgres experience
- AWS experience

Technology we use:

Our Android Stack is: Kotlin and XML (standard for Android apps) using MVI architecture (still working on refactoring old views), our database layer is built in Realm. We also make heavy use of Dagger, RxJava, Espresso (testing). Network stack uses Retrofit.

Our iOS Stack is: Swift using MVC architecture, CoreData for Data, XCUI for UI Testing, XCTest for Unit testing, SPM for Package Management, Fastlane for app automation and build scripts, Bitrise for CI, and Sentry and Firebase Crashlytics for crash reporting.

Our Back End Stack is: Monolith using Django/Python. We are starting to extract specific domains to Services currently using Java, Kotlin and Go. We also use Docker, deploy our apps via Kubernetes. We use Kafka for asynchronous-, and gRPC for synchronous service-to-service communication. Our Integrations are on a .Net, moving to Kotlin.

Our Front End Stack is: Our Front End stack is React/Redux, Sass, Jest/React Testing Library/Cypress, and Webpack. We maintain a private npm repository with shareable UI components, utility functions, Babel/ESLint/Prettier configurations, and custom tasks.

Our Data Stack is: Our Monolith Database is Postgres and Redis for caching. We also use Redshift as our data warehouse and S3 as our data lake. The data lake is queried using Presto. We use Airflow and Spark for ETL, as well as do some stream processing (Kafka Streams and Spark at the moment). Our Model pipeline uses scikit-learn, pandas. Our analysts utilize Looker as our Business Intelligence tool. And we use Quicksight for Dashboard on our external Data Products.

Our Dev Tools Stack is: AWS+Kubernetes for hosting. Terraform + Helm Charts for IaaS/Deployment. ConcourseCI for CI/CD. Prometheus/Alertmanager/VictorOps for team alerting. We’re starting to work on multi-region available services.


Starting: ASAP

Similar jobs in Toronto:

Similar jobs in other locations: