Didoo

Growing as an IC contributor

Recently I was part of a panel for the Design NoSite, a three-day virtual event by the Design Org in HashiCorp. The session was about career growth, and I was asked to share my experience as an Individual Contributor (IC) Engineer. So I started to jot down some ideas in a Google Doc, when a stream of consciousness started, and my self-reflection, not sure why, took the shape of a self-interview. Anyway, this below is a mix-up of what came out of this exercise, and the actual questions/answers from the panel. It’s not exhaustive by any means, but it’s a spontaneous thing, and as such I thought maybe it was worth sharing, in case it can be of any help to someone else.

Important disclaimer: I am uber-conscious that what you’re about to read may not be the experience of everyone, but simply a factor of my privilege (white man, working in IT, you know). But the whole point of this “exercise” is to write down what happened to me, and what I learned from it, in the hope that maybe someone (not necessarily everyone, I am not a thought leader on how to have a career in IT) can find it useful, or take away some idea, challenge, or confirmation.


Let’s start with your career journeys. Can you share a bit about how you got to your current role, any setbacks, and anything unexpected along the way?

Well as you can see from the colour of my hair, my journey has been quite long at this point (I’m seasoned!) so I will not bother you with all the details.  But just so you know I started in a small company as a webmaster (aka sysadmin). Then became a web designer and developer, with some success (I had clients nationwide). Then I decided I wanted to do something new, so I moved to London, to work as a frontend developer in a couple of startups.  Then I went on to work as a UI Engineer in a relatively large company that went IPO while I was there.  There, I set up my first proper design system, working shoulder to shoulder with designers, engineers, PMs, VPs, and founders. 

This was my big revelation, and since then I’ve always worked on design systems. That’s why I joined HashiCorp three years ago, to work on a new design system, and that’s why I’m still there: I love this job! :)

But my team and manager can testify: it was not all rainbows and unicorns, there were a lot of things that I had to learn again from scratch, and believe me I had a lot of setbacks as well, small and large! 

The only constant thing in my career journey has been the change. 

So I invite you to embrace change, expect the unexpected, and always learn new things (“unlearn everything”, as a dear friend of mine said time ago). Don’t get particularly attached to a job title, a specific job title. Evolve and adapt, and you will discover new things that you love to do, that you’re good at, every day. 

What is the difference, if there is one, between “growth” and “career”? In this context, does “growing” implicitly also mean “career progression”? And what about “professional development”? How do these three things connect one with another?

Let’s start with the easy one: “professional development”. 

For me, professional development means improving your knowledge, experience and skills, over time, so they can be used in a work context. You become a better developer in a specific field, let’s say Design Systems. You specialise in using a particular tool, let’s say StyleDictionary. You acquire new knowledge and learn new skills, let’s say working with the Figma Plugin APIs. Those are hard skills. Or you learn how to better navigate politics, or communicate your ideas, or get things done and meet deadlines. Those are soft skills. I think everyone has an idea of what “professional development” means.

“Career” instead is a bit more unclear. 

Are we talking about “career progression”? As in climbing the ladder of professional titles, progressing through job ranks in a company or in an industry, and with it (hopefully) improving your salary, benefits, bonuses, etc.

Or are we talking about “career success”? As in all the achievements and accomplishments that you had in your professional life, all the recognitions (and validations) that you have received from other people: colleagues, peers, superiors, members of the community. All the big and little things that made you feel valued, fulfilled, rewarded, and ultimately “successful” (whatever that means for you).

The tricky one (at least for me) is “growth”. 

If you are a person, like me, with a strong sense of self (and my teammates know how much I have of it), with a work ethic handed down through generations, with an almost pathological obsession for improving things (myself included), if you’re like this, then looking for continuous growth becomes your second nature. 

Without growth you die. Not only biologically (that’s Mother Nature there for you!) but also intellectually, professionally, morally, emotionally.

In my view, growing as an IC contributor means continuously learning, continuously honing your skills, continuously getting out of your comfort zone, continuously challenging yourself, reassessing what you think you know.

But, to do all of this, you need some form of intrinsic motivation (or extrinsic pressure). There’s no growth, unless one wants to grow. You don’t start learning how to restore ancient books, or how to perfectly cook eggs benedict, “just because”. There must be passion, or interest, or curiosity. Things are hard to master, they require time and effort and energy, and most of all willingness to not give up when you fail.

That’s why what I suggest is to choose to learn something that you like, something that you find intriguing, something that makes you feel the fire in your belly.

What I am about to say is going to be contentious. Don’t start to learn how to train a Large Language Model only because everyone (apparently) is jumping on that ship, and you are worried you’ll be left behind as an Engineer. Don’t force yourself to take a “JavaScript Crash Course” on O’Reilly because you think this will help you with your career as a designer. 

My experience has always been that “success” and happiness come with serendipity. Recently, at a conference, I saw an amazing talk by Elliot Jay Stock, a well-known web designer, author, and typography enthusiast.

I highly recommend it. It’s a masterpiece about how his entire life is dotted with apparently disjointed events and turns of events and professional detours, but then if you step back and look at the whole picture, you can see how all these dots suddenly connect, and lead to an incredible career and success (in many fields!).

Screenshot from the talk of Elliot Jay Stocks, showing a complex graph of arrows connecting different jobs
Screenshot from the talk — Credits: Elliot Jay Stocks

Of course, I am not Elliot Jay Stock, but my experience is somehow similar, the story he told really resonated with me. For me, personally, “having a successful career” means being able to look back at this and say “Wow, I did all those things!”.

So to answer the question, I think there are different aspects of growing professionally as an Individual Contributor, and they are all intertwined. The important thing for me is to avoid focusing only on one of them (e.g., only your job title, your compensation, your specialization, the external recognitions). 

Another important aspect of being an individual contributor is that the individuality aspect applies also to your growth: you are somehow the master of your own (professional) destiny. Don’t expect that someone else will push you forward, that your company will take care of improving your knowledge and your skills. If that happens, great! But sit and wait: it’s up to you to grow professionally.

How do you measure your success (and your failures)?

One of the principles in HashiCorp is Reflection. “We must ask ourselves what could be done differently, allowing us to learn from our successes and our mistakes.” and there’s so much truth in this! We can’t grow, if we don’t observe and learn what went well and what went wrong. We should continue to do more of what worked, and less of what didn’t. That’s how you learn to walk! (Clichè I know, but true).

There must be an incessant (in my personal case, endless) flow of self-reflection, self-evaluation, but this requires an odd mix of two ingredients. You need humility, because you need to be honest with yourself, to be objective when you observe what went well and what went wrong; to accept that you failed, and learn from that.  You want to continue to do more of what worked, and less of what didn’t. That’s how you learn to walk! But you also need confidence, self-belief. You need the awareness of knowing what you’re really good at. You know things that others don’t, you see things that others overlook. You bring something unique to the table. You need to be conscious that you are improving and becoming slightly better at what you do, every day.

In the end, you will be at the same time the best and the worst judge of yourself!

In my professional life, I have only one metric that I always “listen” to, to understand if my professional career is on track (or if I need to change course, if necessary). It’s my happiness, the sense of purpose, of accomplishment and fulfillment when I’m doing my job. Seeing that I am having an impact, making things better for my team/colleagues, the company, our users. Is knowing that my company’s products are slightly better thanks to the work that I am doing, that we collectively are doing. And this makes me happy.

I need to be able to wake up every morning, and don’t feel a sense of dread of “going to work” (I don’t go anywhere, I work from home, but you get the point!). Of course, there can be periods when your job is stressful, where things are far from being ideal, where there is some dread in the morning (and God knows if I had some of those days, in the last three years!). But for me, the difference has always been to understand if this was a transitory period, part of life’s highs and lows, or if instead it was a situation for which there was no hope, there was no way out. When that was the case, I simply started looking for a new job.

Let’s talk about money. At the end of the day, we’re talking about a job, where we get paid to do things. How does one’s compensation enter into all of this? In your experience how does your wage relate to growth, career and level advancement? Do you consider it a “metric” for your success?

Money is a proxy, useful to understand how I am doing in the eyes of the people I work with (well, my manager), and of the company I work for. But it’s never been a metric for me. Same for my job title. For me, really, it’s just a title. As long as I am doing a job that I love, and I’m paid at the end of the month what I need to live the life I am living, I am happy. 

I discovered the hard way that it’s fundamental to have a healthy working relation with your employer (the company you work for). They’re not your family, they don’t care about you (despite what they say), they will lay you off without second thoughts, if they need to. And you should have a similar relationship towards them. Again: they’re not your family. They pay you to do a job. It’s a business relation, based on a contract. Do it to the best of your abilities, but don’t burn yourself out for them, don’t sacrifice yourself, your family, your loved ones, your life.

So look at the compensation as an integral part of that contract. Think: “F*ck you, pay me!” (Goodfellas) if this makes things easier for you :) You are in a business relation with your employer, you have the right to be paid in relation to your abilities and skills and what you can bring to the table. Do you remember the confidence and self-belief I was talking about a moment ago. Well, that one is important–no, even better: necessary–when it comes to money. 


So don’t be afraid of talking about your compensation or your next promotion with your manager, with your skip-level. I know it can be uncomfortable, but guess what? It’s also part of your job! Yes, discussing your compensation, your promotion is part of your job. It may be difficult, but this should be part of your skills, your professional toolbox. Learn little by little how to get out of your comfort zone and have these critical conversations. Again, grow up (professionally).

Prepare your discussion points ahead of time (possibly in a shared document) and clearly communicate what are your career aspirations, the projects you’d like to be involved in, and yes! your expectations in terms of salary and promotion. Use your manager’s insights into the company’s direction to align your personal goals with the company’s objectives: in this way you can ensure you move in the same direction, and the more aligned you are, the more valuable you are! ;)

Most importantly, highlight your successes (learn to “sell” yourself!) and ask for the support you need to succeed.

Last (maybe a bit thorny) question: did you ever consider moving into a more managerial role? 

Let me rephrase it for you: you’ve been in this industry for 30+ years, and you’re still an IC contributor. Why?

Well, the answer is the same as before. I still love the work that I do. Passionately. I still find it so intellectually, personally, and professionally fulfilling. I still wake up every morning and I’m happy to sit down, open my laptop, and start to work.

I am so lucky, so privileged to be able to do the job that I love doing, instead of a job that I have to do (I can’t stress enough how lucky I am, compared to millions of people who hate their job but they can’t change it or quite, because they have to put food on the table, or take care of others, or don’t have other choices).

The IC position tends to come with a lot of independence and agency. You can take ownership of complex problems and solve them with a great deal of autonomy. That’s what I like the most about my job, to be honest.

Being a manager is a completely different job. It’s not a career “upgrade”, it’s not “moving up”. It’s a sideways move, it’s a completely new career. And while I really appreciate the complexities and the challenges offered by working as a manager (of people, of products/projects, of companies) and potentially the fulfillments and successes that come with doing this work well, in reality it never appealed to me as a career. I don’t know why, but that’s how my brain works. Plus, dealing with people, with all their idiosyncrasies,  instead of working with binary logic, which is quite predictable, well it’s… much harder, requires a lot of soft skills that I don’t have, and I don’t have anymore the energy or will to cultivate (sorry!).

Yes, of course, I always ask myself: do you really see yourself writing code when you’re 65? Do you ever think of the risk of becoming an old, obsolete developer? But the answer I gave myself is not that the “solution” is to become a manager. It’s never been the answer for me. I just lived day by day, month by month, year by year of profession. Every year discovering that I “still have it” and that I was still having an impact in the work I was doing. That I was still growing.

Personally, I would hope that in a few year’s time, I can completely change the field of work (I think we all can agree that the IT industry is not anymore in its “golden age”, if there was ever one; more of a “dark age” to be honest) and maybe do something completely different. I don’t know, woodworking? (I’m just sayin’). 

This doesn’t mean that I don’t think people should look at becoming managers, on the contrary! Can you imagine a workplace with no managers?! I know someone would say “oh, that would be great” but believe me, it would not!

By “remaining” an IC you are de facto limiting the extent of impact that you can have. If you instead manage a team, or even multiple teams, your impact is multiplied by a large factor. The higher your level is in a company, the bigger the impact you can have: on the product you work on, on the community where you operate, on the field or industry you’re in, you can even change the world if you’re lucky! (It’s really hard to change the world, if you’re an IC)

My advice about the whole IC vs Manager question is: “do what you like”. Don’t look at what others do, what is the “norm”. Your career is unique, so it’s your professional journey. 

So if you are curious about becoming a manager, it’s something that you want to explore, it’s something that entices you, you see yourself leading a team, multiple teams, an entire company: don’t hesitate, jump on it. Do it! With passion, energy, confidence (and a bit of humility). Worst case scenario, you fail. And you can learn from it. And grow. 

And if you discover that you don’t like it, well you can always go back to being an IC contributor. It happened to me, in some way, in HashiCorp (I joined as a Team Lead, but with time I’ve moved back to a more IC-like role) and it happened to a lot of people that I know personally. They too followed their passion, what they liked to do. And you know what? They were happy again! And they’re still growing as ICs, every day (also in terms of remuneration).

In my experience, being an IC has always been a viable choice, something I loved to do, and well remunerated too. 

As they say “Find a job you enjoy doing, and you will never have to work a day in your life”. A bit clichè probably, but definitely with some truth in it.

Go to blog index