- Purpose of this doc
- Career Paths
- Dimensions of Growth
- Member of Technical Staff
- Senior Member of Technical Staff
- Principal Member of Technical Staff
- Engineering Manager
- Senior Engineering Manager
- Director of Engineering
- FAQs
Purpose of this doc
This document is intended to bring clarity on career paths available within the Engineering team at Fyle. Understanding options will help team members make informed choices and help their managers guide them the right way and provide the right challenges and opportunities.
Career Paths
Broadly speaking, we have an Individual Contributor path and a Managerial path. Here’s a high-level chart that outlines the career progression paths.
A few high-level points:
- There are equivalent pay scales in both tracks - you can grow along either
- A very precise demarcation of roles is extremely difficult. This is meant to be a rough guide for individuals to understand expectations.
- Fyle is a growing company and we expect people to perform a role before they get the title.
- Role definitions get murkier as we go further along - this is expected as the needs are quite dynamic in a growing company.
- Role expectations are not restrictive and everyone is encouraged to go above the call of duty. This is the best way to grow.
- Role expectation of SMTS includes those of MTS. For the sake of brevity, only additional expectations have been added. Similarly, Sr EM and EM etc.
Dimensions of Growth
As an engineer, it is useful to think of the following dimensions (and sub-dimensions) of growth:
- Technical Skills
- Quality and testing
- Debugging and observability
- Software design and architecture
- Delivery
- Work breakdown, prioritization, estimation
- Reliability
- Cost/benefit analysis of different approaches
- Dealing with ambiguity
- Communication
- Feedback
- Communication
- Collaboration
- Leadership and strategy
- Decision making
- Driving alignment
- Mentoring
- Product thinking
Over your career, you are expected to gain and demonstrate growth in each of these dimensions.
Member of Technical Staff
This would be an entry-level position in the engineering team. An MTS should be able to:
- Technical Skills
- Understand design docs
- Write engineering design portion of the design doc
- Implement high-quality, well-tested code
- Raise good PRs
- Review others PRs
- Increase test coverage
- Should be able to collect and analyze data required for initiatives
- Should be able to debug and fix production issues
- Delivery
- Deliver features and fixes per the agreed-upon schedule
- Should contribute to bug triaging and fixing
- Should contribute to service requests
- Should contribute to deployments
- Communication
- Regular and clear communication about progress on initiatives and bugs
- Write blogs
- Leadership and strategy
- Should contribute to increasing NPS or fixing usability issues
- Should be able to develop and demonstrate expertise and ownership of some areas of the product
There will be MTS-1 and MTS-2 and MTS-3 bands to represent progress. The individual’s manager will determine when someone has progressed through to the next band.
Senior Member of Technical Staff
An SMTS should be able to:
- Technical Skills
- Write good engineering design docs
- Review others’ design docs holistically
- Become a final PR reviewer in one more areas of the product
- Do a significant rewrite of a tricky area of the product to improve maintainability / efficiency e.g. Angular migration, move to new APIs
- Identify and execute performance optimizations that will benefit customers or the system
- Delivery
- Own implementation of fairly complex features with minimal oversight
- Should be able to break down an initiative into milestones and tasks and assign good estimates
- Communication
- Should be able to effectively mentor MTSes and give them feedback on areas to improve
- Leadership and strategy
- Participate in the recruitment process
- Identify areas of technical debt and propose roadmap items to pay them off
- Do internal lunch and learns
- Bring in good engineering practices like monitoring, automated tests, linting, ci/cd etc
- Manage interns
- Identify their workstreams
- Do their perf review
There will be SMTS-1, SMTS-2, SMTS-3 bands to represent progress.
Principal Member of Technical Staff
A PMTS should be able to:
- Technical skills
- Understand performance deeply. They should be able to tell when performance is bad, acceptable or great
- Should be able to develop novel solutions to complex technical problems
- Proactively learn new technologies and bring its application to Fyle
- Delivery
- Deliver on business-critical projects on a tight schedule
- Communication
- Should be able to offer constructive feedback to MTS and SMTS on their technical skills
- Leadership and strategy
- Showcase expertise in multiple areas of the product / codebase
- Teach, mentor, grow, and provide advice to other domain experts, individual contributors, across several teams
- Play a central role in technical, business, and organizational contributions
- Should be able to identify areas of technical debt, and push for a plan on how to remove them during roadmap planning
- Plan improvements and features with a 6 month view.
- Publish Open Source Software
- Write technical blogs
There will be PMTS-1 and PMTS-2 bands
Engineering Manager
An EM should be able to demonstrate:
- Technical skills
- Write design docs
- Review design docs holistically
- Become a final PR reviewer in one more areas of the product
- Able to help out the team with debugging tricky issues
- Delivery
- Running bug triaging
- Running service requests
- They participate in roadmap planning
- They own the engineering releases of specific initiatives - generally 3-5 a quarter. They will ensure these are high-quality and on schedule
- Breakdown initiative into milestones and tasks, assign estimates and track against them
- Communication
- They will coach their direct reports on technical as well as delivery aspects
- They will conduct regular 1x1s with their direct reports
- They will conduct effective quarterly performance reviews
- They will conduct appraisals for their direct reports and plan their promotions
- In case of non-performance by their direct report, they will run the PIP / Exit process
- Report regular progress of initiatives to all stakeholders
- Leadership and strategy
- Manage a team of 5-8 ICs of MTS and Interns and optionally SMTS
- They take ownership of multiple modules of the product including new initiatives, bugs, NPS
- Bring in good engineering practices like monitoring, tests, code coverage, linting, ci/cd
- They identify staffing needs and work with the People Success team to hire - MTS and interns
- They will work with Product Management, Product Design, CS, Marketing and Sales
- Will maintain good scores in Cultureamp surveys
- Improve productivity of the team
There will be EM-1, EM-2 bands to indicate progress
Senior Engineering Manager
(WIP)
A Sr EM:
- Delivery
- Deliver on a complex initiative spanning more than one quarter
- Leadership and strategy
- Able to attract and hire SMTS
- Able to coach an IC to SMTS / EM
There will be Sr EM-1, Sr EM-2 bands to indicate progress
Director of Engineering
A Dir of Engg:
- Leadership
- Has up to 30 engineers in their purview, directly or indirectly.
- They will manage EMs, Sr EMs, SMTS, Principal MTSs
- Will own hiring of SMTS, Principal MTS and EMs
- They will participate and contribute to high-level business strategy discussions
- They will work with the CTO on budgeting and hiring needs for the year
- They will mentor EMs and senior engineers
- They will responsible for building an amazing engineering culture
In some situations, there may be an Associate Director band.
FAQs
Q: What’s the difference between mentor and manager?
A: Mentor is someone who can help teach skills related to a craft. E.g. you could learn debugging in production from a mentor or learn how to write Object Oriented Code from a mentor. You could even have a mentor who teaches you how to post photos on Instagram! A manager has a more formal relationship and is responsible for hiring, onboarding and setting up their direct reports for success, do performance reviews etc. A manager will also be a mentor for several areas. You can have several mentors, but you’ll only have one manager.
Q: Will I stop coding if I become a manager?
A: No. It will very likely reduce, but it will not go away. At Fyle, we don’t have any engineering managers who don’t write code. As a manager, you will still need to help the team with guidance, identify areas of technical debt etc. You can’t do that if you’re very far away from code.
Q: How can I know I’ll enjoy being a manager?
A: The best way to figure this out as early as possible is to start taking on interns. This gives you a sense of some of the managers’ responsibilities and challenges
Q: Is the manager path right for me?
A: There is no easy answer here. Have this discussion with your manager / Siva.
Q: Can I switch from a manager to an IC path? Is that a demotion of sorts?
A: Switching from a manager to an IC path is perfectly acceptable. Even at companies like Microsoft, routinely people switch from being an SVP to an IC. Sometimes, it may be that you’re not in the right frame of mind to manage a team because of other circumstances. However, this transitioning will require careful planning to make sure your reports are not affected