by Leon Rosenshein

David: A mobile developer

David was hired right out of school as an L1 to the catalog app team as a software dev in front-end mobile development. Coming from school it took him a few months to get used to working on and with a team, but by the end of his first year was working well within the team and was beginning to contribute ideas and help with overall design. As a recent college graduate he also spent time with interview candidates helping to sell them on the company and went to a career fair for his alma-mater. By the end of his second year he was owning parts of subsystem designs, proposing adoption of new internal tools/technologies and was regularly hitting estimates. At that point he was promoted to L2.

As David began his 3rd year he began to expand his work beyond his direct code. He helped out on an RFC, which included reaching out to customers and helping to gather/clarify the requirements for the new functionality. He noticed that there were some older, crusty parts of the deployment process so he took it upon himself to modernize and automate it and began doing on-site interviews for the team. David also switched from the catalog app team to the reccomendation app team about ¾ of the way through the year. Learning about the new team and technologies made his productivity drop, but he was able to offset that somewhat by using some of the lessons learned on the catalog team to help the reccomendation team automate existing processes and consolidate a bunch of existing code into a single shared library.

During his 4th year David continued to expand his role inside his new team. He mentored a new hire and became a core member of his team’s interview loop and was responsible for not only writing a new PRD, but, as a tech lead, also for leading it’s implementation and directing the development process for himself and the 2 other people working on the product. The feature was developed with high code/branch coverage and end-to-end tests. It was mostly delivered on time. The one major delay was communicated early and widely, with an explanation and a plan to move forward. At the end of the year he was promoted to L3

Over the next year and a half David worked across his entire team to make things more more efficient and scalable and find other use cases for the functionality his team developed and to help other teams integrate that work. He also led high quality Post-Incident Reviews and made sure the identified action items were completed. Towards the end of that period the back-end team ran into a scheduling issue and David volunteered to help them out and added critical functionality to the back-end service his team needed. David enjoyed the work on the back-end so much that he found an opportunity and switched to the back-end team.

As a consequence of switching teams and needing to learn a lot of new systems at once his initial productivity was low, but his connections to his old and other teams helped to bring the teams closer together and he took the opportunity to dig into small tasks the team hadn’t gotten around to and automated them as a means of understanding the system better. He was able to generalize his experiences and use them to help the back-end team do a better job of understanding customer (front-end) requirements better and produce systems that worked better for both sides. Within a year on the new team David was fully engaged and was able to reach out to customers, understand their issues, propose a solution and write the ERD for a full end-to-end feature that involved integration across catalog/reccomendation front and back ends. After 1.5 years on the back-end team, bringing in and developing best practices and helping others improve their code, designs, and estimates, David was promoted to L4.

Visualize David’s career on his Eng-Stories page