Today’s Software Developers Will Stop Coding Soon

The Journey of a Junior IC
Imagine: the path of junior individual contributor (IC) begins. She is in early into her first software development role. She sits, tucked away at her desk, cranking out thousands of lines of code per month.

She delivers high quality work and begins building trust among her teammates. Over time, she receives additional meeting invitations from project stakeholders. Her manager asks her to work on problems of wider scope and greater ambiguity.

A shift begins. Instead of being handed well-defined and tightly-scoped tasks, she is asked to write design documents outlining problem areas and possible solutions. Gradually, her time spent coding decreases from 90 to 80 to 70%. She is no longer green.

Her expertise grows. She is juggling multiple of her own projects and becoming more involved in the design of teammates’ projects. As her capabilities scale, the new features and improvements she’s described pile up faster than she can address them. Seeing this, her manager offers another teammate’s help, but with a catch: all of the designing and planning must be done up front. She accepts, then writes up and hands off a dozen tasks for the teammate to implement.

What happened to coding?
Although she still loves to code, she is gradually working less in VSCode and more in Google docs. This anecdote, for better or for worse, is the trajectory of many programmers such as myself. As I gain experience, my performance is measured less in lines of code and more on my ability to manage large projects, influence the team’s technical direction, and mentor others.

Even if I stay the course of an IC and avoid management, I’m unlikely to ever code for 90% of my time again. Juggling larger responsibilities increases the need for collaboration and driving clarity among teammates, stakeholders, and cross-functional partners. No one has enough cycles to do it all themself.

What can I do about it?
When offered more responsibility at work, I see two choices: I can ride the rising wave or return to my cozy desk with VSCode. Neither is inherently the right or wrong choice, and in my opinion, you’ll know what’s best for you when you’re ready. I spent this past year making both choices.

My journey
On the first business day of 2022, I joined a new team at Meta. I clearly stated to my new manager my goal of developing skills outside of my area of expertise (UX). I wanted to dive deeper into the back-end to build my T-shaped skills. Admittedly, I also wanted to fight the imposter syndrome I developed from working so high in the tech stack.

Six months into my new team, my manager assigned me a privacy back-end project of critical importance due later that year. Chaos immediately ensued as one of our key simulations broke, and my team spent the next two months debugging end-to-end dependencies. I once learned C++ in a day just to submit a pull request in another team’s code base.

Watch M3GAN Online Free
Watch M3GAN Online Free
Watch M3GAN Online Free
Sleduj Vyšehrad: Fylm – Celý Film
Sleduj Po čem muži touží 2 – Celý Film
Sleduj Po čem muži touží 2 – Celý Film
М3ГАН: Уаканда завинаги Целият филм онлайн
М3ГАН: Уаканда завинаги Целият филм онлайн
Urmărește M3GAN Online Subtitrat in Română
Urmărește M3GAN Online Subtitrat in Română
Urmărește M3GAN Online Subtitrat in Română
Regarder M3Gan Film complet en ligne gratuit
Regarder M3Gan Film complet en ligne gratuit
Regarder M3Gan Film complet en ligne gratuit
M3gan filme completo
M3gan filme completo
M3gan filme completo
Ver Película Completa M3GAN Online en Español
Ver Película Completa M3GAN Online en Español
Ver Película Completa M3GAN Online en Español

Then, while debugging for the privacy project, a partner team filed a SEV (i.e. priority ticket) against our UI. A feature I maintained was crashing with a 500 OOM error. With both projects screeched to a halt, my comfort zone was far behind me.

After resolving the SEV, I explained to my tech lead and manager that I had been slowly optimizing UI queries over the past few weeks. I understood the work that needed to be done, but I couldn’t find the time to do it all.

My manager encouraged me to lead an effort to fix the remaining low-hanging UI performance issues. However, I pushed back. I wanted to focus on the back-end project I had been trusted with. Even though the privacy project’s plan included extra pad time, I was afraid that taking on more responsibility at that moment would risk it all. I feared that, if I failed, I would forever be underestimated as “just” a UX person.

When my manager asked me to reconsider leading the new UI effort, I again declined. I already understood the UI problem and wanted to grow myself technically. That meant NOT working on UI issues, and instead, letting a newer hire work on it as a ramp-up project and an easy win.

I chose to return to my desk that day. I had my reasons for declining the increased responsibility. Part of it was out of fear, but another part was from a lack of understanding of what my manager was asking of me in that moment.

In other words, I could describe in plain English the problem, root cause, and solution to most of our UI performance issues. There was a pattern to them which I had already demonstrated. So, I thought, letting another teammate solve the rest would be doing them a favor. “Teach a man to fish,” as they say.

I realized months later that my manager wanted me to demonstrate that I understood my area of expertise without actually implementing the fixes. I could have written up some tasks, and, in a bit of workplace LARPing, posted internally about the UI effort’s progress at some cadence.

My manager knew about my career goals outside of just widening my technical breadth. Here, he was looking for detailed, written communication about the problem. Leading the UI effort would have taken up more of my already scarce time for several weeks. However, it could have also given me the project impact I needed at a time where my privacy project was struggling to take off.

All is clearer in retrospect. If I could go back, I would have taken up the extra UI effort to bolster my promotion packet. At the same time, I was feeling stretched thin. I acknowledge that saying “no” at the right time is an important skill that takes practice, and that no one should regret standing up for their own mental health.

A couple of months after my somewhat disappointing decision, a new college grad joined my team. My manager asked me to get her up to speed such that I could free up some of my own cycles by assigning her work. I was feeling much more confident about my back-end project’s status. Thanks to some self-reflection and a growth-oriented mindset, I accepted the new challenge, and began assigning the new grad some of my privacy project tasks as well as designing a new asset migration project for her to complete.

Now, with the privacy project wrapping up on time, I’m looking forward to 2023 where I will be leading an even larger back-end project with many more unknowns. This time, two people will work under my direction. Once again, my comfort zone is far behind me. However, I’ve accepted that learning to live with the discomfort is part of the journey.

Reasons You Might Not Write Code
Coding will never account for 100% of your time. Even junior ICs will have meetings to attend and non-coding tasks to complete. As you progress the IC ranks to senior and beyond, the non-coding work will grow. Apart from attending meetings, I’ve highlighted below a few prominent responsibilities that fall under this work.

Writing or updating documentation
Begin doing this at any time, and never stop. No one is “not experienced enough” — even new hires can begin by filling in any conceptual gaps or “gotchas” they encountered while onboarding.

Writing a design document
As the problems you handle grow in scope, ambiguity, and complexity, you’ll need to start writing design proposals. In them, you’ll gather requirements, do some analysis or research, and share your findings with stakeholders and collaborators.

Juniors: don’t skimp on this step. While it’s tempting to dive straight into the code, sometimes we need to slow down to move fast. Or, in other words, “Two weeks of coding can save you two hours of planning.”

Leave a Reply

Your email address will not be published. Required fields are marked *