July, 2021 blog twitter, linkedin
Tell us a little about your current role: where do you work, your title and generally the sort of work do you and your team do.
I’m currently working as a Technical Lead (or a Staff Engineer) at Indeed, the world’s number 1 job site1, whose mission is to help people get jobs. Over the past two years, I have been helping the Indeed Apply team build the next generation of the Application Submission platform, which has resulted in a better user experience for millions of job seekers worldwide. Nowadays, I’m driving a few major initiatives related to an advertising platform here in Europe.
I have a broad scope of responsibilities, including setting the technical direction for the teams I’m working with, doing high-level planning, driving design reviews, and helping engineers to grow. I also collaborate with different internal and external teams, participate in company-wide technical initiatives and lead a Guild.
What does a “normal” Staff-plus engineer do at your company? Does your role look that way or does it differ?
At Indeed, Staff-plus Engineers act as technical leaders in their domains. The more you grow, the bigger scope you get. Indeed is a pretty big and diverse company. Staff-plus Engineers can act slightly differently depending on the needs of the team and the current state of their project. Engineering and Product Managers treat Staff-plus Engineers as their counterparts. This helps us to be successful in the majority of our engineering initiatives and my role doesn’t feel any different.
How do you spend your time day-to-day?
Indeed has technical hubs all over the world and although I am based in Europe, I’m usually meeting colleagues from Tokyo, Singapore, Hyderabad, Austin, Sunnyvale and Vancouver throughout the day. My most productive time is in the middle of the day and I keep a few hours a day to concentrate on technical designs and to work on the most critical projects. To make my days even more productive, I try to cluster my meetings based on a specific theme. For example Tuesdays are my Guild days and most of my 1:1 meetings fall on Thursdays.
Where do you feel most impactful as a Staff-plus Engineer? A specific story would be grand.
During my first few quarters at Indeed, I was helping the Indeed Apply team building the next generation of the Application Submission platform. This included a lot of design, collaboration, and prototyping work in the beginning. I’ve used the implementation phase as a good opportunity to revise our technical stack, build even more automation, and bring new methodologies, which helped the team to release software faster and in a more reliable way.
One of the core values of Indeed is being data driven: we need to make sure that our job seekers are shown to the jobs and employers in the most accurate way. Therefore my team and I spent a good amount of time planning and executing the migration of our traffic from the old platform to the new one. Building reliable metrics helped us to measure our progress and identify the implementation gaps.
Communication is key. Active collaboration with other teams, Engineering and Product managers, clean backlog, and weekly reporting was also very important for our project success.
As a result, this project brought a new user experience for job seekers all over the world and enabled the Indeed Apply product to support new ways of applying for a job, like using a chat-bot.
Can you think of anything you’ve done as a Staff-plus engineer that you weren’t able to or wouldn’t have done before reaching that title?
One of the things I can think about is the level of the impact. At the beginning of my tech career, my scope was pretty limited to specific features of a product. When growing to the senior level I was able to own team components end to end. Now my influence is getting spread bigger and bigger across the organisation.
Indeed has a very supportive environment. With every successfully delivered project, your scope and potential impact is increased. After a few successful quarters with my team, I have a great overview of the biggest challenges for our organization and am able to influence a few important projects in our area.
Do you spend time advocating for technology, practice, process or architectural change? What’s something you’ve advocated for? Can you share a story of influencing your organization?
At Indeed, we have many different ways of influencing different technical communities. That includes tech-wide design reviews, working groups, guilds, and technical lead meetings.
One of the recent success stories on influencing is the GraphQL Linter tool, which we’ve built together with my peers from the GraphQL Guild. As GraphQL is a hot topic in our organization, this tool helps the engineering teams to comply with Indeed API standards by providing real-time feedback. As a result, we started spending less time during the API design review process.
The next topic I’m planning to address is code quality. By making code quality measurable and gamifying the process, we are planning to raise a code quality bar and make our engineering organization more efficient.
How do you keep in touch with how things really work as you spend less time on hands-on development?
I'm still trying to dedicate a good amount of time to prototype different systems we are building. This helps me to get more fundamental knowledge.
For example, recently one of my teams was building a new system using Kafka. Knowing that will come, I've spent some time playing with Kafka Streams library to build a very small prototype. This has helped me to better understand some core concepts of this library and influence the team's technical direction during one of the first iterations on the new service.
How have you sponsored other engineers? Is sponsoring other engineers an important aspect of your role?
I find sponsorship very important. One of my main goals is to bring engineers I'm working with closer to the rest of our organization. During our 1:1s, I'm usually trying to understand what drives people. And then, once I see a nice opportunity in the organization, I'm trying to connect talented engineers with the initiative owners.
You first got the title Staff Engineer at your current company. Were you hired as a Staff Engineer? If not, what was the process of getting promoted to Staff?
I was hired directly to the Staff level at Indeed. Before I had a very similar Lead Engineer role in another company. The promotion process at Indeed is very transparent. There is a set of skills required to be successful on the next level. Once you show these skills consistently during the past quarters, you stand a good chance of being promoted. For getting promoted into the Staff Engineer role, we are looking for technical leadership skills which help a small team of 1-3 developers drive major initiatives inside the organization.
What two or three factors were most important in you reaching Staff? How have the companies you joined, your location, or your education impacted your path?
My journey was pretty complicated. Before joining Indeed I worked for many different companies in both senior and leadership roles. That helped to build different skills in planning and executing complex projects.
My European location is now helping me a lot to be successful. I can collaborate with teams across multiple technical hubs. This gives me a lot of breadth in running the projects and makes the Staff-plus Engineering path especially attractive.
There is a popular idea that becoming a Staff Engineer requires completing a “Staff Project.” Did you have a Staff Project, and if so what was it?
Even though the idea of a "Staff Project" looks very attractive, at Indeed we value the impact, behaviors, and skills which are required to be successful in the Staff role. Depending on the team, that can be achieved by contributions to a large existing project or building a series of smaller impactful projects. Once you've been recognized as a Staff contributor, your level will change.
Can you remember any piece of advice on reaching Staff that was particularly helpful for you?
One of the best pieces of advice I've got was to build your network of Staff-plus engineers. The more you are connected in the organization, the more influence you'll get.
What about a piece of advice for someone who has just started as a Staff Engineer?
I can give the following advice: be a multiplier! I've seen many talented senior engineers who were very productive on their own but failed to help others to grow. On the Staff-plus levels, you are expected to build bigger and bigger systems. Instead of focusing on trying to solve the problems by yourself, you need to focus on helping others build crucial parts of this system.
You can be a good multiplier by mentoring others, spreading the technical knowledge, running the big initiatives, and removing the roadblocks.
Some of Mikhail's writing
Did you ever consider engineering management, and if so how did you decide to pursue the staff engineer path?
In the past, I've tried both Engineering Manager and Technical Lead tracks. Depending on the company, the line between these two tracks can be very blurred. To be efficient in any of these roles, you need to act as a multiplier, have great project management and technical skills, and be a good communicator.
My general attitude is to keep my people and technical leadership skills up to date and apply them depending on the project and the situation.
What are some resources (books, blogs, people, etc) you’ve learned from?
Assuming that people interested in growing into Staff+ roles are already great techies, I can recommend the following resources which helped me to grow recently:
- Thinking in Systems and Crucial Conversations books
- Pat Kua's Level Up weekly mailing list
- TechLead Journal podcast
Who are your role models in the field?
Michael Lopp's books are amazing and help you to become a better leader and navigate through the organizations. And Martin Fowler's blog brings a lot of deep technical insights.
- comScore Total Visits, March 2021↩