Coaching for Software Engineers
I remember the first time someone told me what it took to get promoted to principal engineer. “At a certain point,” he said, “you stop being judged on your technical skills and start being judged on how you work with people.” This surprised me. When I began my career as a software engineer, no one ever told me I’d need to do anything other than write code, let alone that I’d have to become good at working with people! After all, no one becomes a software engineer because they dream of talking to people all day every day. And yet there I was, needing to make a decision about whether or not I wanted to continue pushing for promotions if it meant I needed to learn this entirely different skill set.
Not everyone is as lucky as me, to have had a mentor who could articulate what it takes to succeed in the upper levels of the independent contributor track. As your coach, I look to fulfill that role for you. My job is to help you work through the leadership, organization, and communication challenges of your work; to help you discover what you’re passionate about; to achieve that next-level promotion; or to strategize about implementing your vision.
Nicholas guided me through an incredible period of growth in my career, as I took Astro from a small open source repo into a widely-used project with 500+ contributors and over 25,000 GitHub stars. I could not have made this transition so successfully — from individual contributor to technical lead and eventually manager & CEO — without his help. Nicholas’ insight and experience was invaluable, and helped me become a more effective technical leader to my team.
— Fred K. Schott, Astro Co-Creator, CEO of The Astro Technology Company
About me
Hi, I’m Nicholas Zakas. I’ve been a software engineer for over 16 years, and I’ve worked at all kinds of companies from a tiny, bootstrapped startup to a multinational corporation. I’ve worked at companies in Massachusetts and California. I’ve worked on small teams and led distributed teams in multiple countries. I’ve worked as a consultant with multiple companies both on-site and remotely. I’ve been at a company that shut down completely and survived multiple rounds of layoffs at two other companies. I’ve been through two IPOs (one in Massachusetts, one in Silicon Valley). I’ve been an architect at two companies in Silicon Valley. I’ve published several well-reviewed programming books and spoken at software conferences around the world. I’ve started an open source project that has millions of daily downloads. I write regularly for online pubications like LeadDev. I bring this wide range of experience with me into our conversations to not just explain how I approach things but to help find the approach that works best for you.
I hired Nicholas to coach two of our most senior engineers. His insight, feedback, and guidance helped both of them produce higher-quality work, raise their impact across the org, and attain promotions.
–- Benjamin Van Every, Director of Engineering
I was looking to improve my leadership skills and from the moment I met Nicholas I felt confident that he could help me to achieve this. Throughout all 6 sessions I felt at ease and in the lead as to what to discuss. As a result, I was able to better deal with difficult conversations at work, while still staying true to myself. Seldom I’ve met people that leave such a big impact on my life, thank you Nicholas!
— Riccardo Corradin, Tech Lead
How I work
I work with current and aspiring tech leads, staff+ engineers, architects, and CTOs to become more effective and productive technical leaders. We will meet remotely for 50 minutes either every week or every other week for at least 12 weeks and discover the best way to work with each other. In between these calls, you’ll have access to a private Slack channel for any questions that come up.
The coaching program is guided by you. I’ll ask you to come into each call prepared with what you’d like to discuss. If you have specific goals, we’ll work on identifying and navigating next steps; if you don’t have specific goals, we’ll work on defining them. We will discuss tactics and strategies, both in service of achieving your goals and sometimes to help deal with situations in real time. It’s not unusual for clients to need ongoing support for an in-progress project before revisiting their goals.
I prefer to work directly with your employer, which makes it easier to talk about information that may be covered by NDAs. I encourage you to discuss with your manager if you have a professional development budget to apply towards coaching. If working with your employer is not an option, then I also work directly with individuals and make sure to keep our discussions at such a level that they do not conflict with NDAs.
Nicholas’ coaching program completely changed my perspective on how I develop software and advance in my career. I came to his program with over 10 years of software development experience yet stagnant in my career. Nicholas pointed me in the right direction and gave me tips on how to have better focus, excel at tasks, and advance at my company. I look forward to working with him more and encourage others to do the same.
-– David B., Staff Software Engineer
Coaching tracks
Depending on your goals, you may want to choose one of my coaching tracks. These tracks cover common problems that face more experienced software engineers.
- Productivity and time management. If you feel like you never have enough time to do everything that is expected of you, then this is the track for you. We’ll look at how you spend your time and come up with strategies for optimizing your approach. Our goal is get you accomplishing everything you need to do within 40 hours each week, allowing you time to pursue hobbies and spend time with your loved ones.
- Leadership and influence. Leadership is a big part of higher-level individual contributor roles, but how do you lead without any actual authority? On this track, you’ll learn how to exert influence over your peers and manager to get things done in a respectful, conscious way. We’ll discuss different approaches to leadership and how to get buy in from your colleagues.
- Getting promoted. Choose this track if your primary goal is promotion to the next level of your company’s individual contributor track. We will work with your company’s career ladder to turn the listed expectations into actionable advice. You’ll learn how to demonstrate that you’re ready to take that next step and ensure that you get the credit for that work. While I can’t promise a promotion (all companies are different), I can promise to put you in the best possible position to get promoted.
- Career development. Should stay an IC or switch to management? As a staff engineer, do you want to focus narrowly or broadly? Would speaking or writing improve your career trajectory? If you’re not quite sure what the next step in your career should be, this track will help.
- Open source kickstart. Launching an open source project can do wonders for your personal or company brand, but doing it badly can also hurt. If you need help planning an open source launch and have questions about licenses, managing contributors, and growing a community, then this is the track for you. We’ll review your project and talk through what it takes for an open source project to sustain itself.
- Choose your own adventure. If you none of the previous tracks align with the help you need, we can design a track just for you. During our free intake conversation, we’ll discuss your goals and challenges, and come up with a plan to address them.
Nicholas has significantly accelerated my growth and happiness as a software engineer by helping me set and achieve goals that take me in the direction I want to go. His experience has also been invaluable when facing new and challenging situations in the upper echelons of the IC engineer track such as leadership skills, giving feedback, working with executives, finding high leverage work, and making the best use of limited time. Coaching with Nicholas isn’t just about following a playbook and hoping for the best. He provides specifically tailored practical guidance combined with feedback and accountability. Nicholas is the real deal!
— Louis Zuckerman, Senior Staff Software Engineer
What happens during a call
I’ll ask you to come into each call with one to three topics to discuss. These topics need not be very specific, so there’s no need to stress about perfect wording or the depth of the topic. Whatever is foremost on your mind is a great jumping-off point for discussion. You may find that a seemingly small, mundane topic can expand into a worthwhile conversation once we discuss it.
As your coach, I don’t have any agenda other than to help you achieve your goals. I will listen closely to what you tell me and keep everything in strict confidence. You can depend on me to:
- Create a safe, honest, understanding atmosphere where we can explore your ideas together.
- Ask open-ended questions to clarify the situation and help you better define the problem or goal you are dealing with.
- Help you discover the path or solution that works best for you, not necessarily what I would do or have done in the past.
- Give you perspective on what I and others have experienced in similar situations.
- Celebrate your successes and help you recover from disappointments.
- Suggest exercises, books, and thought experiments to help you grow and gain additional perspectives on your own.
As a staff engineer at a startup, I juggle numerous responsibilities and am often pulled in many different directions. Nicholas played a crucial role in helping me navigate these challenges, drawing on his extensive experience and coaching background to give me unbiased feedback and guidance. He also assisted me in identifying and pursuing the aspects of my work that I enjoy the most, while still being a valuable and effective contributor to my company. I highly recommend him to fellow senior engineers and look forward to working with him again soon!
— Samantha Paras, Staff Software Engineer