00:00:19.279
Thank you, everyone, for coming in today to the talk "Forging Your Way to Senior Developer." This talk is going to be about how to take the next step from being a mid developer to a senior developer.
00:00:26.220
It’s really geared towards both developers in the room who might be in that position looking to move forward, but also for coaches and colleagues who might want to help someone else get to that position.
00:00:37.079
A little about me: My name is Ifat Ribon, and I'm a principal architect at an agency called Launchpad Lab. We're a digital product agency based out of Chicago.
00:00:48.719
I actually started as an apprentice at Launchpad Lab and have gone through this incredible journey to reach the technical leadership position I'm in today.
00:01:00.000
In today's talk, I'm going to share both my experiences as I grew through those levels and the conversations I've had over time, including my work on developing our career ladder at Launchpad and discussions with others in the industry.
00:01:11.159
So let's talk a little about the map for our journey today.
00:01:18.119
We'll start by laying a bit of a foundation so we have a good guide for the steps we’re going to walk through. From there, we’ll follow the footsteps of a developer.
00:01:28.860
When we meet her, she’s a mid developer, but we’re going to explore how she got there to understand the foundational skills that will carry you forward.
00:01:41.040
Then we’ll take a bit of a rest and reflect on that journey before we plan for the next steps toward reaching your goals of becoming a senior developer.
00:01:54.000
We’ll wrap up with a discussion about what might be even beyond that.
00:02:05.040
To start us off with a bit of guidance, we’ll talk through a growth framework.
00:02:10.380
This growth framework is composed of two dimensions. The first is what we call the three pillars: a technical pillar, a problem-solving pillar, and a leadership pillar. These represent a set of competencies that developers will build throughout their careers.
00:02:24.360
The technical pillar is probably the one you’re all most familiar with. It includes understanding syntax, writing code, and executing features.
00:02:37.920
The problem-solving pillar is a bit more abstract, focusing on learning patterns, approaching different kinds of problem sets, and recognizing their similarities.
00:02:49.860
Ultimately, this pillar enables you to work in greater ambiguity. Finally, the leadership pillar, or what you could consider a stewardship pillar, is about sharing your experiences and supporting others through coaching and mentoring.
00:03:02.280
It involves creating and consuming content, and contributing to or maintaining tools and libraries that help developers.
00:03:14.280
In addition to the pillars, the second dimension consists of three scales that span across the pillars.
00:03:26.700
The first scale addresses familiarity versus mastery: moving from learning a language to becoming proficient, and ultimately achieving mastery.
00:03:41.099
Next, there’s a dependency scale that looks at moving from requiring significant guidance and mentoring to working with others with greater autonomy.
00:03:53.220
Finally, the third scale is about advancing from being a consumer of information to sharing and promoting information broadly.
00:04:04.680
As we continue on this journey, we’ll examine how a developer can level up in each of the pillars and think about their progress across these scales.
00:04:16.919
So, let’s meet our developer, Andy. We’re first meeting her as a mid developer. She completed a boot camp two years ago and got her first junior developer job at a company called Buttercup, a cupcake kit meal delivery service.
00:04:27.660
Andy loves diving into tasks, figuring things out with her teammates, and learning and growing from those around her. Let's reflect on how Andy started her journey as a junior developer.
00:04:41.040
As a junior developer, Andy really started at base camp, at the lower end of each of the pillars. She lived in that area of familiarity with syntax and certain problem sets, working through structured tasks.
00:04:53.880
Andy consumed a lot of content; she loved reading blog posts and listening to conference talks, soaking it all in as she began working at Buttercup.
00:05:06.720
She started building competencies in each of those pillars, beginning with the technical pillar. As a junior developer, Andy was focused on getting features to work. She would write code, test it in the console or the web browser, and submit a PR, receiving feedback on issues like syntax.
00:05:24.360
Over time, through this feedback, she improved the quality of her code. Andy was also dedicated to learning conventions and patterns in the community.
00:05:40.800
She spent a lot of time learning Ruby on Rails conventions and how to organize code by leveraging examples from others. With time, she began to apply design principles independently.
00:05:55.920
Initially, Andy executed very small feature tasks or bug fixes, but as she gained experience, she was able to handle mid to larger feature sets with less guidance.
00:06:09.960
As Andy became proficient with Ruby syntax and practiced common patterns, her technical competency grew. Moving on to the problem-solving pillar, Andy spent her early days solely focused on solving immediate problems at hand.
00:06:24.420
She tried to understand how her features fit into the larger picture, which required her to recognize the interconnections between her work and that of others.
00:06:38.520
However, early in her journey, Andy tended to overlook common edge cases. For example, when tasked with creating a pausing feature, she spent a lot of time designing a complicated calendar UI.
00:06:54.000
A senior developer offered a simpler solution: just let users pause the feature and come back when needed. This insight helped Andy recognize the importance of simplicity.
00:07:10.380
As she progressed, she began to identify common problem sets, such as running background jobs, understanding data flow, and recognizing various patterns in feature sets.
00:07:25.140
With this knowledge, she learned to leverage solutions based on past experiences and the guidance of her colleagues.
00:07:38.640
Under the leadership pillar, as a junior developer, Andy often paired with more experienced developers, where she primarily absorbed knowledge.
00:07:50.820
However, as she grew, she began pairing with peers and even became the driver in some sessions, explaining new conventions she had recently learned.
00:08:05.580
Andy was also actively consuming content at all levels, from tutorials to attending talks. As she continued to gain experience, she started to produce her own content.
00:08:19.440
At Launchpad, we hold lunch and learns and developer committee presentations, which encourage developers of all levels to share what they’ve learned.
00:08:34.680
Andy spent time learning tools and libraries, including an internal tool used at Buttercup, and opened PRs to address issues she discovered.
00:08:49.740
As she contributed back to the tools and collaborated with peers, Andy began to embark on knowledge sharing.
00:09:05.040
Next, let’s take a moment to reflect on the journey Andy has taken. She has leveled up her technical proficiency, improved problem-solving skills, and started engaging with her community.
00:09:16.140
Although we discussed each pillar linearly, in reality, they grow at different rates and sometimes regress.
00:09:30.060
As you gain experience, you will likely find moments of growth and regression in these areas.
00:09:43.620
You may be wondering what about those skills I mentioned earlier? Throughout this journey, we’ve explored how Andy progressed her Ruby proficiency.
00:09:57.120
We also saw that she moved from a place of high structure and guidance to working more independently, along with growing from a content consumer to a contributor.
00:10:09.840
Now we need to consider what’s next on this path. For some, reaching the senior developer role may seem daunting.
00:10:22.320
It's important to recognize that the foundations and skill sets you've worked on will carry you forward.
00:10:34.440
So let’s dive into the technical pillar again—when we left Andy, she was improving her code quality.
00:10:44.520
She started writing more elegant code and, as her efficiency improved, she began to understand performance considerations.
00:10:56.280
Andy was able to apply design principles effectively, and now she had the opportunity to create some of her own.
00:11:08.520
As she graduated into more complex coding tasks, she gained proficiency working with larger features, often leading initiatives.
00:11:20.520
This level of mastery requires a deep understanding of code and the ability to produce solutions that expose any unknowns.
00:11:32.640
Shifting gears to the problem-solving pillar—all of you know where we’re heading. As you grow, it becomes crucial to see the larger picture.
00:11:46.560
You might find yourself in a position to break down bigger projects and facilitate collaboration among team members.
00:11:58.440
This involves strategic decision-making, such as prioritizing features for the client based on impact or addressing risk.
00:12:11.760
As you get comfortable, you will start to recognize the patterns that develop throughout different feature sets.
00:12:24.840
You will learn to reduce known unknowns and begin asking the right questions to uncover hidden challenges.
00:12:37.860
By identifying known issues, you can develop strategies for tackling new challenges in an organized way.
00:12:50.760
Finally, on the leadership front, we previously saw Andy pairing with less-experienced developers.
00:13:02.640
As she advanced, she began acting as a coach or mentor, providing guides for junior developers while continuing to learn from her peers.
00:13:14.640
Moreover, her content creation evolved from intermittent contributions to establishing herself as a thought leader.
00:13:27.600
She started developing strategies that fostered a knowledge-sharing environment within her team and community.
00:13:39.240
Now, let’s circle back to the idea of conducting a reflective pause. Recognizing your accomplishments can motivate you to continue growing.
00:13:54.000
As we continue progressing, you will begin to recognize your expanding influence and the value you bring to your team.
00:14:06.360
Once you reach senior developer status, it’s essential to understand that your journey doesn’t stop there.
00:14:18.360
The path to further advancement is often recognized as the technical leadership route.
00:14:28.920
As developers progress, they may discover specific passions within the different pillars, like technical expertise or project stewardship.
00:14:39.840
You don’t need to master every aspect; rather, embrace the path that resonates with your interests and skills.
00:14:51.660
For instance, the technical path often involves roles like individual contributor and can lead to titles like staff engineer.
00:15:01.920
Alternatively, those who excel in problem-solving may gravitate towards roles such as principal architect.
00:15:14.640
If leadership is your calling, consider opportunities such as team lead or even engineering manager roles.
00:15:26.460
It’s important to stress that just because you choose one path, it doesn't block you from exploring the others.
00:15:39.240
All these paths can—and frequently do—intersect, allowing you to gather diverse experiences and insights.
00:15:53.760
As we conclude, thank you so much for attending today. I truly enjoyed discussing this topic, and I welcome any further questions you might have.
00:16:09.360
Happy to take questions live!
00:16:26.220
Yes, that’s a fantastic question! The concern is about time balance: as you work on one pillar, you may feel another is being neglected.
00:16:36.780
For many in the community, those less represented often fill gaps in areas outside their main interest.
00:16:44.760
You might be spending significant time in leadership advocacy, while feeling your technical skills suffer.
00:16:56.040
I recommend leveraging your transferable skills. For instance, both advocacy and technical roles require asking good questions and effective communication.
00:17:08.760
By recognizing how those skills apply across various pillars, you can use your time more efficiently and build your knowledge base.
00:17:23.520
Thank you all so much! I greatly appreciate your attention today.