I came across Julia Evans's awesome blog post on Possible Career Goals for A Software Developer and even though I am no longer a software developer, I thought I'd take a look back at my almost-20-years career and see how I did.
- become an expert in a domain/technology/language
✅ I was a front-end and performance expert.
- get to a point where you can drop into new situations or technologies and quickly start making a big impact
✅ I worked as a contractor for about 4 years, and worked on pretty large projects.
- do research-y work / something that’s never been done before
👎 I don't think I have done this.
- satisfy your intellectual curiosity about something
✅ I am always exploring and picking up tech and ew way of doing things.
- get comfortable with really big codebases
✅ See above.
- work on a system that has X scale/complexity (millions of requests per second, etc)
✅ Did that a few times by working for high-traffic and profolic websites and apps.
- scale a project way past its original design goals
👌 I think so, although I am not sure.
- do work that saves the company a large amount of money
✅ I did a few things that brought in revenue.
- be an incident commander for an incident and run the postmortem
✅ If I were completely being honest, way more often than I'd have liked.
- make a contribution to an open source project ✅
- get better at some skill (testing / debugging / a programming language / machine learning)
✅ I was a web developer and then a really good backend developer and then a front-end expert.
- become a core maintainer for an important OSS project
👎 Haven't done that.
- build an important system from scratch
✅ I was lucky enough to do that a few times in my career. Right place, right time.
- be involved with a product/project from start to end (over several years)
✅ Except for one or two jobs I had where I worked for an agency.
- understand how complex systems fail (and how to make them not fail)
✅ Yes, and I learned so much every time.
- be able to build prototypes quickly for new ideas
✅ This was my jam. I loved hackathons and bringing ideas to life. Actually, I still do.
You can check out my LinkedIn for more information on my job history.
- get your first job ✅
- pass a programming interview ✅
- get your “dream job” (if you have one) ✅
- work at a prestigious company ✅
- work at a very small company ✅
- work at a company for a really long time (to see how things play out over time) ✅ So far, my record is 6 years.
- work at lots of different companies (to get lots of different perspectives) ✅
- get a raise ✅
- become a manager ✅
- get to a specific title (“architect”, “senior engineer”, “CTO”, “developer evangelist”, “principal engineer”) ✅
- work at a nonprofit / company where you believe in the mission ✅
- work on a product that your family / friends would recognize ✅
- work in many different fields
👌 I've always been in the tech industry, although in different sectors like agency, media, telco, startup, e-commerce and software.
- work in a specific field you care about (transit, security, government) ✅ See above.
- get paid to work on a specific project (eg the linux kernel) ✅ A special project for a news media.
- as an academic, have stable funding to work towards your research interests 👎
- become a baker / work on something else entirely :) 🐣 Does becoming a mom count?
- start freelancing ✅ I was freelancing on the side as I held a full-time job back in my developer days.
- start a consulting company ✅
- make your first sale of software you wrote ✅ It wasn't a software but a script.
- get VC funding / start a startup ✅ Founded a startup but no funding.
- get to X milestone with a company you started 👎 Haven't done that.
- do your work in a specific way that you care about (eg make websites that are accessible)
✅ Yes, delightful user experience (incl. accessibility & performance) was an area that I cared about so I put effort to make sure smaller things were done right, eg: adding smooth animation, optimising images, code splitting, etc.
- build tools for people who you work with directly (this can be so fun!!)
👌 I built lots of tools but they were part of the role, so I don't think it really qualified. For example, I built a simple CMS and Competition winner picker so my product team could be more self-sufficient.
- make a big difference to a system you care about (eg “internet security”)
✅ I lead a few refactoring projects to ensure tech stack was up-to-date and more maintainable.
- do work that helps solve an important problem (climate change, etc)
✅ Underrepresented hiring, career growth for women in tech, education for disadvantaged childen
- work in a team/project whose product affects more than a million people
✅ I was lucky to work for profilic companies with good missions.
- work on a product that people love
✅ See above.
- build developer tools
👎 I built some Chrome tools for myself, but not for other developers.
As an engineering leader, it's been a privilege for me to do all of the followings as part of my role.
- help new people on your team get started ✅
- help someone get a job/opportunity that they wouldn’t have had otherwise ✅
- mentor someone and see them get better over time ✅
- “be a blessing to others you wished someone else was to you” ✅
- be a union organizer / promote fairness at work ✅
- build a more inclusive team ✅
- build a community that matters to people (via a meetup group or otherwise) ✅
communication / community goals
- write a technical book
👎 I have written a few books but they are not programming books.
- give a talk (meetup, conference talk, keynote)
✅ I do speaking engagements regularly.
- give a talk at a really prestigious conference / in front of people you respect
✅ See above.
- give a workshop on something you know really well
✅ Given a few workshops on career development, especially for Women in Tech.
- start a conference
👎 Haven't done that.
- write a popular blog / an article that gets upvoted a lot ✅
- teach a class (eg at a high school / college)
👎 Haven't done that.
- change the way folks in the industry think about something (eg blameless postmortems, fairness in machine learning)
✅ Women in tech and in leadership
work environment goals
- get flexible hours ✅
- work remotely
✅ No thanks to Covid-19 4Ls Retrospective Of Working From Home and Homeschooling as an Engineering Manager and a Mom
- get your own office
✅ My home office
- work in a place where you feel accepted/included ✅
- work with people who share your values (this involves knowing what your values are! :) ) ✅
- work with people who are very experienced / skilled ✅
- have good health insurance / benefits ✅
- make X amount of money ✅
- remain as curious and in love with programming as the first time I did it
👌 I still love programming (or building stuff using code) but I don't do that often anymore.
It was a good exercise for me to do this because I often feel that I am not doing enough in my career; there is always something more that I could be doing. Recently, when I took a look back at 2020, I had so many failures, not as many successes. Bill Gates was right, "Most people overestimate what they can do in one year and underestimate what they can do in ten years."
So my takeaway is to keep going and keep taking action. Some days or months will seem like a struggle, but when you look back after 5 - 10 years, you'll be glad that you persisted through the hard times.