-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
a0b21f3
commit ba8c4db
Showing
2 changed files
with
242 additions
and
0 deletions.
There are no files selected for viewing
242 changes: 242 additions & 0 deletions
242
src/content/blog/20250129-from-junior-to-staff-slides.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,242 @@ | ||
--- | ||
title: From Junior to Staff - What's my actual job? | ||
description: > | ||
Slides and speaker notes from a recent talk I gave at a local meetup. This contains the abstract, slides, and speaker notes. | ||
date: 2025-01-29 | ||
heroImage: ./blog-assets/20250129-from-junior-to-staff-slides.png | ||
alt: From Junior to Staff - What's my role? | ||
tags: | ||
- Engineering Leadership | ||
--- | ||
|
||
## Abstract | ||
|
||
Have you ever wondered what it takes to succeed in each role of engineering and how to achieve your career goals as an individual contributor? Let's explore the journey from growing from a novice to an expert and talk about how your expectations will evolve. I'll share some knowledge on how I coach individuals at each level to that you can adapt and adopt for your personal growth and needs. Whether you're just starting out or looking to step up to a leadership role, this talk will provide valuable strategies for career development in the tech industry. | ||
|
||
## Slides | ||
|
||
<div style="position: relative; width: 100%; height: 0; padding-top: 56.2500%; | ||
padding-bottom: 0; box-shadow: 0 2px 8px 0 rgba(63,69,81,0.16); margin-top: 1.6em; margin-bottom: 0.9em; overflow: hidden; | ||
border-radius: 8px; will-change: transform;"> | ||
<iframe loading="lazy" style="position: absolute; width: 100%; height: 100%; top: 0; left: 0; border: none; padding: 0;margin: 0;" | ||
src="https://www.canva.com/design/DAGdPzZAsD8/4xkSZFTR6eGtL_eGB_u_7A/view?embed" allowfullscreen="allowfullscreen" allow="fullscreen"> | ||
</iframe> | ||
</div> | ||
<a href="https://www.canva.com/design/DAGdPzZAsD8/4xkSZFTR6eGtL_eGB_u_7A/view?utm_content=DAGdPzZAsD8&utm_campaign=designshare&utm_medium=embeds&utm_source=link" target="_blank" rel="noopener">From Junior to Staff</a> by Dustin Goodman | ||
|
||
## Speaker Notes / Transcript | ||
|
||
### Opening Slide | ||
|
||
As a software engineer, what is your job? Do you just write code? Do you design the product? Determine what features you should build? Define the roadmap? Set a technical direction? | ||
|
||
Depending on your company and role, the answer could be yes to all of these or no to most of these. And what can be more challenging is the more senior of a role you're in, the less clear the answer to these can become. | ||
|
||
### Agenda | ||
|
||
So today, we're going to talk through this for the core individual contributor (IC) roles in a company and what the expectations are and how you can grow in that row. | ||
|
||
I'll also start to talk on some of the key areas you'll need to focus to reach that next level and some of the things I experienced at these levels. | ||
|
||
### About Me | ||
|
||
For those that don't know me, my name is Dustin Goodman. | ||
|
||
I'm currently an Engineering Manager at ClickUp leading their Chat team. I've been held tech lead or manager roles for the last 9 years and have helped my reports reach their goals in various environments. | ||
|
||
Recently, I felt like I was sharing a lot of these notes almost daily to different folks and when Tracy asked me to talk, I thought it'd be a good opportunity to share this with a larger group. | ||
|
||
Quick Disclaimer: There's a lot of variation in some of the notes I'm going to give and they may not hold true for your exact circumstance. I've tried to generalize enough so the advice is applicable but definitely feel free to pick and chose what's best for you. | ||
|
||
### Career Ladder | ||
|
||
If your company has been around for a while, they likely have a career ladder | ||
|
||
Are you at a startup? If so, this probably doesn't exist for you. | ||
|
||
The QR code on screen will take you to "Rent the Runway's" career ladder that they posted publicly. | ||
|
||
Why should you find this? It's your #1 guide to understanding what's expected of you and how to get to the next level. | ||
|
||
These are usually aligned to your company's values and needs for each level but are generally aligned with some common industry trends. | ||
|
||
A quick note on promotions too - most company's I've worked with really want you to demonstrate being able to work at the next level consistently before you get it. I'll make some notes on this as we go. | ||
|
||
### Junior Level: Need | ||
|
||
Let's start with our junior level... | ||
|
||
Juniors, I hate to tell you but I think you have the hardest role here. You're relatively new to the industry and you need to have a wide understanding of a bunch of different programming concepts. | ||
|
||
FE eng - need to know HTML/CSS/JS concepts and probably using a framework like React/Angular/Vue | ||
|
||
BE eng - need to know the BE server language, different DBs and their querying techniques, probably a framework | ||
|
||
The good news is if you show enough basic understanding and a willingness and capability of learning and being coached, you're going to be fine. The reason is... | ||
|
||
### Junior Level: Success | ||
|
||
Your success is going to be measured in your ability to adapt. | ||
|
||
Your leads are going to give you tasks that are extremely well-defined, e.g. "add button to page" or "change text" or "add error handling to this path". | ||
|
||
The point of these is to help you learn - your job is to take these tasks and try to do them on your own. However, sometimes you're going to run into something unexpected that a quick search or AI can't help you answer or understand. | ||
|
||
You need to know how to ask questions. But you're not asking someone else to do the work for you but to help you understand what you don't know! | ||
|
||
Ideally, you're never making the same mistake twice and start to see themes and patterns on your own. | ||
|
||
My suggestion: have a notebook where you write things you learned! | ||
|
||
### Junior Level: Growth | ||
|
||
Once you get into the groove of doing your tasks, your next goal is to find ways to be more productive both as an individual and as a team member. | ||
|
||
Instead of getting extremely well-defined tasks, maybe you let your leads give you slightly less defined tasks and you start to go ask the questions you need to answer the open questions for them. | ||
|
||
This is also a great time to find an area of your product that you can own. Have you built a new feature or fixed several issues in a system? These are great candidates that whenever a question arises, you want to be the one answering questions about it. You can also start to pitch improvement ideas for this area - work with your leads on this one as they'll help you devise a plan but you'll need to take lead on the effort. | ||
|
||
### Junior Level: Caution | ||
|
||
Some words of caution... | ||
|
||
first - be cautious of "glue" roles. You may see gaps on your team and may see a way you can fill that role. If that role is less technical or doesn't help move your team towards their KPIs or OKRs, flag it to your manager first but don't jump head first into it. These functions can hinder your growth. | ||
|
||
my other caution is your reliance of AI. It's more than okay to use it and I encourage you to do so but you need to be able to defend everything the AI outputs. Don't understand why Claude used a certain function - go read up on it so you can defend it. Your seniors aren't going to read your PRs and go through the same thought process as you and over analyze every line you wrote so this is a great time to own the change you're making. If you take down prod b/c you checked in AI code without checking it, you're putting yourself at risk. | ||
|
||
### Junior Level: Next Level | ||
|
||
For the next level, keep listening to what I say is expected of mids, but generally you're going to want to be: | ||
|
||
- delivering changes on a regular cadence | ||
- designing and implementing small features | ||
- your manager needs less frequent check-ins with you | ||
- you've been contributing to the code review process and have helped catch issues before they ship | ||
|
||
### Mid Level: Need | ||
|
||
As a mid, you're going to be expected to be able to consistently contribute. This means you open PRs in an appropriate amount of time for the task, your PRs are still getting feedback but probably not the same feedback twice. As an example, maybe your team uses localization on the FE - you might miss this once but you shouldn't have this on another PR in the future or if you do, it's infrequent. | ||
|
||
Additionally, you're able to ask questions about your tasks and clarify most assumptions on your own. | ||
|
||
### Mid Level: Success | ||
|
||
Your success is going to be measured in your output. | ||
|
||
You're going to start contributing more medium features on your own. You'll probably handle the tech design and break your work down into reasonably sized chunks. | ||
|
||
You can manage your work and prioritize the right things while avoiding getting bogged down in the trivial details. You may run into conflicts but this is when you can chat with your manager to find the right path forward. | ||
|
||
This is also the point in your career to find a larger area of the product to feel confident in your ability to contribute to and own. Ex) one of my mids built a feature we call "launchpad" which allows you to quick switch to other rooms or start chats on the fly. they now own how we manage user data in our part of the app. | ||
|
||
### Mid Level: Growth | ||
|
||
Growth as a mid is about mastering your craft. Mids typically are a large producer of features in an org, behind seniors, because most of their time is development. | ||
|
||
This means your goal is to find better ways to do the work. This could be tuning your personal AI to handle tasks or finding better code abstractions. A gotcha is don't just make these changes without discussing - at this point, you need to learn to socialize big changes before merging them. Do a POC branch but get feedback and buy-in from seniors before merging. | ||
|
||
This is also a great time to collaborate with senior members to tell them where you and your peers are getting bogged down. Work with them to find solutions to come day-to-day problems. | ||
|
||
Additionally, you'll want to understand how your work is fitting into the larger picture of what your team is trying to do. | ||
|
||
### Mid Level: Caution | ||
|
||
My caution to my mids - you're not a senior yet and the things that helped you be successful as a junior still apply. | ||
|
||
Too many times have I worked with mids who forgot to do the learning that comes with the job and just stagnated. | ||
|
||
This applies to all roles but our industry is constantly changing and it's moving FAST! If you don't do a little bit of professional development and learning every month, you won't only stagnate but you'll regress. | ||
|
||
An industry challenge we're facing is what was good enough to be a mid 5 years ago isn't good enough to get a job anymore. You need to stay current and push yourself. | ||
|
||
### Mid Level: Next Level | ||
|
||
Again - you'll want to listen to what seniors do but generally speaking you want to... | ||
|
||
- start trying to work at the team level to make improvements, make peers and juniors more productive | ||
- help team leaders understand challenges and influence them to make plans that account for solving those challenges - you probably wont' change their mind but anything here can be a win | ||
|
||
### Senior Level: Need | ||
|
||
Seniors have mastered all the skills that make a good mid level engineer and need to have deep understanding of design choices and tradeoffs. You can effectively communicate choices and decisions across the team. | ||
|
||
Early seniors are typically the top contributors to a codebase since their time is still predominately coding. Later seniors are still strong contributors but sometimes are more involved in planning and SPIKE efforts that enable the rest of the team. | ||
|
||
Seniors are usually experts in an area or at least know industry trends to be able to lead discussion and solutions. | ||
|
||
### Senior Level: Success | ||
|
||
Your terms for success are much higher now as you've earned more responsibility. | ||
|
||
You're going to lead larger feature efforts and be expected to deliver those kinds of results. | ||
|
||
You're the eyes on the ground and are expected to spot problems before they escalate. This means proactively identifying problematic architectural issues in your code and developing plans to fix them. This also means flagging conflicts with new feature work to prevent production issues such as scalability, performance, or edge cases in UX. You're going to be measured on your ability to reduce issues that derail the roadmap. | ||
|
||
This means that you'll work with your business partners in product, design, and QA to flag and fix issues before they are passed to other engineers. | ||
|
||
Ultimately, your success is how effectively can your team operate. Are people constantly reinventing the wheel? That's your failure because there's not a consistent solution you've set. | ||
|
||
### Senior Level: Growth | ||
|
||
Growth for seniors is an interesting topic - you're in what a lot of companies would consider a career role. You don't need to seek further promotion and several folks like stopping here. However, this does mean you still need to keep up with industry change. | ||
|
||
If you want to grow though, start looking for ways to influence your team's 6 month plan now rather than waiting until 6 months from now to make the change. You want to be solving your future problems today in ways that don't impact deliverables. Think about establishing an architecture pattern that will let your team move faster in the future. | ||
|
||
Another way to grow is understanding the future of your company's tech needs and finding means to influence that. Example) your team is using React 19 but you're a SPA without a framework. do you need to move to a framework to leverage RSC? Is that something your company even needs? Help your leaders understand the pros and cons and set a direction. | ||
|
||
### Senior Level: Caution | ||
|
||
My biggest words of caution to my seniors is beware of shiny tech syndrome. This is something I see a lot of newly minted seniors struggle with and haven't shaken off from their mid days. | ||
|
||
Just because something is new and great, doesn't mean it's something you should use. You want to align tech direction with industry standards but also what will be best for your team. | ||
|
||
Ex) Your team is an Angular shop but you're finding it hard to recruit new devs. Do you: | ||
|
||
- A) Migrate to something easier to hire for? | ||
- B) Hire React devs and expect them to transition easily? | ||
- C) Develop a training program for onboarding to help those developers adjust? | ||
- D) Change nothing? | ||
|
||
The truth is - all these options are viable and strategies I've seen different companies take. You just need to understand your company's specific market and needs to make the right call to be able to influence correctly. | ||
|
||
### Senior Level: Next Level | ||
|
||
If you are senior looking to reach staff levels, you're going to start shifting out of our project team and towards the larger dev organization. You want to influence the direction of technical decision. You want to work across teams to improve their effectiveness. This might mean taking ownership of core systems or understanding how to making sweeping stability and performance improvements across core business systems | ||
|
||
### Career Paths at Senior+ | ||
|
||
Before we talk about staff+ levels, I want to take a quick detour. Once you reach the upper echelons of senior status, more opportunities for career growth open up. You can stay on the IC track or move the management track. | ||
|
||
This is a separate talk so I'm not going to go deep into the management side but for the IC side, as a senior, your main choices are to stay where you are, elevate to staff, or seek to become a tech lead. | ||
|
||
### Role Responsibilities | ||
|
||
For this pivot, you should at a high level understand how your role changes. As a engineer up to this point, your main job has been to focus on building software. | ||
|
||
If you go tech lead or staff engineer, your role picks up another major responsibility area. As a tech lead, you earn some people leadership and need those skills. As a staff engineer, you'll need to flex into technical strategy and alignment across the org. | ||
|
||
This means the 80% of your time that was likely coding before now becomes more like 20-30% of your time as your other responsibilities will take a significant chunk of your time. | ||
|
||
### Staff+ Level | ||
|
||
For staff and higher, it's less about growth at this point and more about what you need to do to be successful. | ||
|
||
At this point, you've proven yourself as a senior engineer. Now, you need to showcase how you're more than just another senior. | ||
|
||
You're looking ahead of the needs of your team to effect the greatest changes possible. Ex) my team prior to my start chose a pattern that didn't encourage reuse across the system and our system was flagged to be a central product - needed to shift to align but couldn't rewrite. Found a way to change how we manage our data to expose it to other systems with minimal rewrite. This has reduced complex rewrites that were deemed essential by months. | ||
|
||
This is what I call a 10x engineer - you're not individually contributing 10x the average developer but you're improving the average output of your entire team that it feels like you have 10 more developers on your team than you actually. You help seniors with opposing views reach consensus faster and help your team be that much more effective. | ||
|
||
### Book Recommendation | ||
|
||
If you want to explore some of these topics further, I recommend the Pragmatic Engineer newsletter where I grabbed most of my graphics from. Additionally, I recommend this book. The title is a tad misleading. Camille does a fabulous job about talking about your role as an IC as well as the career journey for manager's climbing the ladder. The career ladder example I shared earlier is from her team and she references it in her book. | ||
|
||
While you might only find personal value in the first half of the book, the 2nd half will be informative so you understand what your boss' boss job is, etc. | ||
|
||
### Thank you | ||
|
||
Thank you all for coming! Let me answer your questions now. | ||
|
||
Also, if you want to connect with me, this QR code will bring you to my website which has all my socials. | ||
|
||
I'm primarily on BlueSky these days. If you send me a LinkedIn request, please know, I like to know you first so come talk to me later. |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.