Coaching for Software Engineers

I remember the first time my manager 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 manager 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 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 Evry, Director of Engineering

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 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

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.

A network of coaches

It’s possible that I may not be the right coach for you, which is why I also work with a network of experienced coaches from a variety of backgrounds. These coaches, both male and female, all have at least 10 years of professional experience in software engineering. Some have experience on the managerial track, others have extensive startup experience, and still others have a rich combination of experiences that make them ideal coaches. All of these coaches have been personally interviewed and trained by me, so I can vouch for the experience you’ll have working with them. My goal is to ensure that you are getting advice from the person with the most relevant experience.

Ready to get started?

Contact me