
Ask HN: How to best position myself as senior developer leaves? - ragingblank
I am a mid level developer at a small (less than 10 developers) SAAS business. I have been with the business for close to two years.<p>Our most experienced developer is soon leaving the business. He has been with us for over 5 years, and takes a wealth of knowledge and experience with him.<p>After he leaves, that will leave the business with only a few backend developers including me.<p>I have confidence in the future of the business, and I want to make a great impact on it. I also want to best position myself to become more experienced, take on new responsibilities, have input into key decisions, and be more visible to the leadership team and the rest of the business.<p>What are the important things a keen developer should be doing in this situation to grow his or her skills, either technically or inter-personally?
======
partisan
Ask to take over their work. I was in the same situation and when I saw the
opportunity, I went to the CTO and asked to handle all of the departing
developers work. I knew nothing about it and I paid with months of struggle,
but eventually I was doing what he used to do. That single decision has shaped
my career for the past 8 years.

~~~
apohn
Absolutely this! Tell the right person you want to move into that senior dev
position and say you'll work with the senior dev to make that transition.

Approach the senior dev and tell them you'd like to move into their position
at some point and want to learn what is needed. Ask for a knowledge transfer
(artpar's recommendations are great) and include the non-technical stuff as
well, including learning who the key people/groups they need to interact with
to do their work.

Since it's a small company, I assume the senior dev knows you and hopefully
respects your work? If so, ask if they can recommend you for the job?

------
freedomben
I would write down and/or record as much brain dump from the outgoing engineer
as you can.

Really good senior devs, particularly from early in the startup, also have a
large breadth of knowledge surrounding all areas of the business. Try to learn
a little bit about what everybody does.

------
le-mark
>> I also want to best position myself to become more experienced, take on new
responsibilities, have input into key decisions, and be more visible to the
leadership team and the rest of the business.

Too late, you should've been doing this all along. For example, where you
pitching in to help solve complex bugs or performance issues? Were you
participating in deployments and monitoring the appications? Have you been
helping with adminning third party apps like the ticketing system, CI servers,
version control (git), etc? Were you building scripts to create minimal test
database from nothing? Have you been implementing the tough parts of the
system like payment processing?

Bottom line is, if you really want to be "senior" you've got to put in the
time. Sure some of these things are out of your control, but you've got to at
least ask to take on more responsibility.

~~~
ragingblank
Actually yes, I've been doing all that and more - I don't shy away from the
difficult tasks.

------
artpar
Try to get multiple Knowledge transfer sessions, focused on the following
aspects:

Current System ===

\- End to end flow of the system (what is the first point of contact to your
server for a HTTP request)

\- How is the architecture laid out (services talking to each other)

\- What are the front-facing services

\- What are the back services (crons/queue consumers)

\- How are the domains managed, how are all the domains setup

\- How is the deployment setup for across services

\- What are the background activities they were silently taking care of
(manual crons)

\- What system is responsible for which business activity

\- What are all the 3rd party services your system talks to

Future System ===

\- What are the current parts of the system they were actively working on

\- How were these new services going to fit in the current architecture

\- Were they planning of refactoring some parts/services

\- Were they planning of rewriting any part of code

