Grow as a developer, a career guide for 2024
A map for career in tech and list of opportunities to explore for career growth, for experienced developers
Table of contents
- About the author and the research
- The mid-life crisis and the "need for change"
- 5 levers for career growth
- The list of opportunities
- High impact, Low effort opportunities
- High impact, High effort opportunities
- Low impact, Low effort opportunities
- Picking the opportunities
- Getting started
- References and credits
About the author and the research
Author Background: I am a developer and founder of Invide, an invite-only community of top developers. Since 2016, Invide grew from 0 to 15000 developers. I interviewed 1000s of developers 1 on 1 and learned from their diverse experiences. I have experience working in different domains such as startups, academic research, community building and as an independent developer/researcher.
Research Methodology: For this research, I compiled my knowledge base and also specifically crowdsourced diverse ideas & opportunities from technology leaders in different stages of their careers to build this map for developer careers. I continuously invest time to make it the most accurate and most updated career map on the internet for developers. This is relevant for you if programming is your primary skill and you want to utilize this skill to grow further in your career. Some of the paths suggested here are unconventional and you may already know about many others but might not have had an opportunity to explore. Some of the readers have shared that they grew in their existing career path using this guide. Some developers shared that they figured out a new career path and created passive income by using this guide as a map. Having said that, I understand, this guide needs frequent updates, which is why I always seek to learn and listen to new experiences and perspectives.
And this is my research on career growth for developers
This is a long(5000+ words) read so if you don't have time right now, bookmark this and subscribe to this newsletter where I share one opportunity every week. You may also order my book for more detailed content on the topic.
The mid-life crisis and the "need for change"
How time flew so fast, Nitin wonders sometimes. Once, he was happy and full of hopes when he came to this hi-tech city from his hometown to join his current organization as a Software Engineer.
Not anymore! He hates office politics, he is tired of the traffic, he is tired of his boss and his colleagues, his plans most of the times fail, he misses not being there for the family when they need him, he can't stand the polluted air around him anymore, he doesn't feel good to ask for money from his flatmates at the end of month and the project that he is working on makes him feel worse: useless. His personal life has its challenges. And all of this uncertainty, worries about future, dissatisfaction, burning out and growing older brings him to the question
What am I doing with my life?
He starts questioning his life decisions and his capabilities. It is very clear that something needs to be changed. But what? Should he switch to another job or start improving himself; should he start a side project, a startup probably or start contributing to an open-source project; or should he wait and let the serendipity take its course...
Nitin is not alone in this situation, knowing something needs to be changed but what and how? It has happened to me and to every adult that I know, and it keeps happening almost every year. It is so common during certain age and stage of a career that it has been named: mid-life crisis. If you also feel this strong need to change, you are at the right place and this is probably a good sign as it will manifest in a growth mindset and will lead towards a better life.
“Your inner potential cannot develop without your willingness and conscious participation.” --Philip Arnold
With this post, I aim to bring an array of possibilities that can unlock your potential, some of them you might have ignored completely because of your busy days in fixing bugs and shipping new releases. These are highly personalized for developers and are practical to do.
Read through, understand and pick the opportunities best suited to you(not more than 3) at the moment and move forward confidently.
"Writing programs, learning about new technologies and tackling the day to day challenges, I was so busy in my routine life that I never really thought about the opportunities that were staring at me right there" --Anonymous
If you have talked to your friends, peers, you might already have a few suggestions such as to start a business or to go for higher education, etc. Here we are going to expand the map of possibilities thoroughly and then get started with the journey towards big changes.
At the other end of mid-life crisis is a better you, a better life
5 levers of career growth
“Untapped potential is the difference between where a person is now and where he or she can be.” Bo Bennett
There are 5 aspects to pay attention to for a great career. Consider the career as a strategic game where you acquire more of these 5 powers to win
- Wealth - money, time, equity
- Personal Branding - reputation, subject authority, visibility
- Network - support, relationships, references, bonding
- Skills - knowledge, technical skills, soft skills, lateral skills
- Wisdom - insights, self-awareness
While you may give one area more priority than the other but you must not ignore any of them. We need to grow in all these areas to fully realize our potential. If you put career growth as a mathematical formula, it will be the product of all these powers, being exceptionally good in one area is great, being average in most of the areas is also good but being a 0 in any of the areas may paralyze your career growth.
Sometimes it is an overlooked opportunity in one of these areas only that breaks the barriers in our growth(e.g. a person in your network referring you a game-changing opportunity, a speaking opportunity that made you the subject matter expert that people look up to, etc.)
Here's the list of different opportunities that will impact at least one of these focus areas and will boost your career. Pick only 1-3 of these opportunities to work on at any point of time
"Start where you are, use what you have, do what you can" --Arthur Ashe
The list of opportunities to unleash the growth
High Impact: Can bring huge change in one or more career growth areas(wealth, personal brand, network, skills, wisdom)
High Effort: Requires significant amount of time and resources for long term
We will explore opportunities in the top 3 categories, leaving the low impact, high effort opportunities out of the scope.
Bucket#1: High Impact, Low Effort
1. Write/Record a tutorial
Benefits:
Personal Branding, Skills, Network, Wisdom
Overview:
Explaining a concept to others is a great way to solidify your learning and it also improves your writing/speaking skills. If you share your learnings with others via social media or your blog or youtube, this can significantly help you build your brand and authority in the subject. Apart from all these visible benefits, this process of creating a tutorial leads to increased self-awareness and insights about the topic.
To an employer/client, this will make you stand out. This approach also has chances of becoming a good side income over time if you can garner decent traffic on your tutorials.
Inspiration:
- Amit Agarwal shared tonnes of tutorials on his blog Digital Inspiration and became India's most popular tech blogger
- Hitesh Choudhary has made a great personal brand as well as generated income by sharing tutorials on his youtube channel(500k+ subscribers)
Get started:
- Choose a topic that you learned recently
- Create a tutorial on the subject
- Share it on your social media channels
Moving to next level:
- Do it more often e.g. move from publishing one article/video once in a while to every month and then every week...
- Improve your choice of topic e.g. figure out the topics that audience respond to most or a topic that has not been covered well before
- Improve your style and delivery
- Engage with people who comment on your posts
FAQ & Resources:
- What tools & platform can I use to write down my posts?
Notion, Wordpress, Medium, Google docs, Evernote, Google Keep, Simplenote, your blog, Github README - Where do I share my tutorial?
Your twitter, LinkedIn, Reddit communities, youtube, Hackernews, blog, email newsletter, popular publication as a guest writer(little tough to execute but not impossible), etc. - Where do I get a good affordable microphone for recording?
Amazon
Current opportunities:
- Paid work opportunities for technical writing can be found on major job boards. For part-time gigs in technical writing, check out upwork, freelancer, etc.
- Earn reputation and personal branding by writing a tutorial for these reputed tech publications
2. Speak at a conference
Benefits:
Personal Branding, Network, Skills, Wisdom
Overview:
Speaking at conferences is a great way to showcase your knowledge on a subject. It helps you create a deeper understanding of the subject. It improves your public speaking and presentation skills as well. Being a speaker, many people will get to know you and you will get connected to lots of people in a meaningful way.
Inspiration:
- Remember Pranav Mistry? He rose to fame thanks to his talk on gesture recognition
Get started:
- Write down the topics that you can share your knowledge on
- Listen to some tech speakers from past conferences for inspiration
- Write and record a brief intro of what you'd like to talk about
- Record yourself speaking on the topic(15-30mins)
- Explore tech conferences that match your interests
- Submit talk proposals to tech conferences
- Speak
- Gather feedback from the audience
- Improve
- Repeat
Moving to next level:
- Learn more about public speaking
- Get a mentor
- Practice
FAQ & resources:
Current opportunities:
- Speak at Git Commit Show
3. Contribute to open-source
Benefits:
Personal Brand, Skills, Wisdom, Network
Overview:
As a developer, what else can add to your brand better than a contribution to open source! The public code and a genuine effort to give back to the community is a reflection of your verifiable skills and your attitude. When your code is public, you'll push harder to make it the best of your work and this will improve your technical skills. As you will be collaborating with other open source contributors remotely, this is going to sharpen your collaboration and communication skills too.
Inspiration:
- Linus Torvalds built the most Linux kernel. Does his success story needs any introduction!
Get started:
- Pick an open-source project that you care about
- Find some good issues that you can contribute to
- Understand the issue and provide the solution
- Make the changes in code and create a pull request
- Keep engaging with the community
Moving to next level:
- Help other open-source contributors
- Start your open source project
FAQs & resources:
- Top open source projects: Mozilla, GNOME, Wikipedia, KDE, Apache, Python, Node.js, etc.
- How to contribute to open source
Current opportunities:
- Git Commit Show open-source projects for developers
- Google Summer Of Code: A 3-month programming project for students with OSS organizations
- What can you do for Mozilla
- Open issues good for first-timers
- Mozilla Open Source Support provides $5,000 and $150,000 grant for selected open source projects
4. Launch a side project
Benefits:
Skills, Personal Branding, Wisdom, Wealth
Overview:
Launching a website/app/tool as a side project is the best way to learn new technology, test your knowledge, test your idea for a business and a side income. Don't just leave it on your computer though, publish it, share it with your target users, learn from their feedback and improve it. If your side project gets popular, it might add a significant personal branding and a scope of earning from your project. Irrespective of the popularity of your side project, you will come out as a better understanding of your skills, insights about user behavior, understanding of what it takes to build a product from scratch and launch it in production and this makes your resume impressive to prospective employers.
Inspiration:
- Jack Dorsey started a side project that eventually became twitter
Get started:
- If you already have a side project sitting inside your computer's project folders, which you are still excited about then start again or start over. Otherwise, think of a problem that you want to solve for yourself or for your friend and the technology that you want to learn. Use this technology to solve the problem.
- Each day or week, dedicate some time to move the project forward
- Push the first shitty version to production
- Share it with your friends and gather feedback
- Improve
- Repeat
Many times all it will take is a day or a week to launch your first version.
Moving to next level:
- Create a demo video or landing page for the project
- Document the project plan
- Set deadlines for the next couple of milestones
- Release new updates faster
- Start sharing progress publicly(don't be afraid to share bad news as well)
- Figure out a way to communicate with your users
- Figure out a way to reach out to new users
- Create a channel to gather quality feedback faster
- Involve more people(possibly friends) to contribute to the project
FAQ & resources:
Current opportunities:
- Showcase your side project at Git Commit Show
Bucket#2: High Impact, High Effort
5. Get a full-time remote job
Benefits:
Wealth, Skills, Wisdom, Network
Overview:
Working on a full-time job allows you to work on a business/tech problem for a longer period which helps you build a better understanding of the specific problem or the industry. As you work with your colleagues closely for a long period, this builds the strongest relationships that are going to be useful in your career. You improve your soft skills such as teamwork, leadership, collaboration, and communication.
When the job is remote, this gives you more peace and balance with your personal life as well. For many people who come from the developing nations, have a chance of making wealth a lot more than the local market by working for organizations in the developed countries.
Get started:
- Prepare a CV and a professional online profile(e.g. LinkedIn/PersonalWebsite) demonstrating your skills and work history
- Explore companies that hire remotely (If you're from India, thoroughly check if the company is open to working with people in IST timezone)
- Pick a list of companies that you'd want to work with
- Set up email alerts for new opportunities from these companies
- Sign up for Invide(recommended for Indian developers) and Stackoverflow(Recommended for people closer to US timezone) alerts for new remote job opportunities
- Apply
Moving to next level:
- If you have never worked remotely before, learn about what it takes to work remotely(or you may join Invide accelerator program to learn & experience this)
- Dedicate time to nurture relationships with your remote team members
FAQs & resources:
Current opportunities:
6. Found a startup
Benefits:
Wealth, Skills, Network, Wisdom, Personal Brand
More details about this hack are available in the book
Inspiration:
- Larry Page and Sergey Brin founded a startup in 1998 when they were Ph.D. students. I don't remember its name though, I might need to Google it.
7. Get a Ph.D.
Benefits:
Skills, Personal Brand, Network, Wisdom, Wealth
More details about this hack are available in the book
Inspiration:
- James Gosling earned his Ph.D. from Carnegie Mellon University and later on joined Sun Microsystems and created the popular programming language Java
8. Start an independent research
Benefits:
Skills, Personal Brand, Wisdom, Wealth
Overview:
Being an independent researcher(also termed as gentleman scientist or self-funded scientist) is an unconventional path that one can take. Work on your choice of science area, discover or invent something useful.
Being an independent researcher is intellectually stimulating and brings a sense of freedom as you can decide the direction of the research(as opposed to academic research where the direction is decided by the funding organizations).
Being a self-funded scientist is not an easy path though when you don't have an academic background(e.g. Ph.D.) or when your financial situation is not so good.
Doing research requires resources e.g. training of complex AI algorithms often requires hours/weeks of training on multiple GPU/TPUs.
There are no dedicated grants for independent researchers these days, only a few small fellowship programs. So to succeed, you will have to be excellent at not only research but at independent fund-raising as well. Independent research had been quite popular in the 19th century(most of the scientists you may have heard of e.g. Charles Darwin, Albert Einstein, etc. had been independent researchers).
Patents and crowd-funding are good tools to succeed in this path. Licensing and royalties are the most common way to make money for self-funded researchers. So having an understanding of how you can protect your IP rights is quite useful.
Inspiration:
- Thomas Edison is one notable example of the successful independent researcher(without academia background) owning 1000s of patents
- In today's context, Stephen Wolfram is one successful independent researcher. He's popular for his product Mathematica.
Get started:
- Find the research gaps
- Define your research area and prepare a research plan
- Achieve milestones for your research objectives
- Build your reputation via patents or presenting your research & knowledge via conference talks
Moving to next level:
- Prepare a plan to gather resources and funds to scale
- Network with people who can help you accelerate your research or fund your research
- Fund-raise and grow
FAQs & resources:
- Crowd-funding for scientific projects
- Introduction to intellectual property - Crash Course
- Blue skies - research without clear goals
Current opportunities:
- Royal Society is famous to fund independent researchers(e.g. Charles Babbage). Check out their website for funding options. They provided 1m pound funding as Theo Murphy Blue Skies award to independent researchers in the past.
- You may find some scholarships/grants for independent research on the DAAD website, check out their scholarship database. Filter out for your qualification level (for undergraduates there are few, keep checking)
- Present your breakthrough research at Git Commit Show
9. Publish a paper
Benefits:
Personal Brand, Skills
Overview:
Research papers are reviewed by credible peers which is why authors of published research papers are considered to be credible. Your paper is a verifiable demonstration of your research capabilities and subject-matter expertise.
Having research articles in your CV will add to your branding like nothing else. No need to say, this makes you not only more desirable by organizations but also opens doors for opportunities in academia/research.
It is going to take as long as few months to years to put together a paper as it involves a lot of hard work in compiling literature review, obtaining and presenting desirable results, develop mathematical theory and generating novel insights, getting it peer-reviewed, addressing reviewers' comments and ultimate publication of the manuscript.
Inspiration:
Get started:
- If you haven't done any research yet, explore research papers in your interest area and find a research gap. Complete your research work.
- Compile your research in the form of a paper
- Get it reviewed from someone who has already published a research paper
- Explore the scientific journals(e.g. IEEE) that publish research on your research area
- Submit the research paper for review
- Be available to answer the questions and make the needed edits
Moving to next level:
- Present your research at different conferences
- Speak about it at science or tech conference
- Explore further research on the subject
FAQs & resources:
- List of computer science journals
- How to write a great research paper
- Some research paper templates for popular journals
- All computer science research papers
10. Publish a report as a data journalist
Benefits:
Skills, Personal Brand, Wisdom
Overview:
Data Journalism is the journalism done with data. As a Data Journalist, you collect large amounts of data, analyse it and visualise it to tell a story. To do this job, you utilise multiple skills such as - analytical skills, data science, storytelling, communication skills, etc. This makes up an interesting choice for developers and data scientists who have interest in journalism or storytelling. Your programming skills give you an edge compared to other journalists who don't have programming skills.
Generally speaking, this path will likely provide you a salary less than the traditional programming career path. Then why did I choose to mention this as a career hack?
The one reason is that you can choose this hack for the sole purpose of growing your personal brand and skills. There’s one more reason I chose this hack for the book.
👉 I strongly believe that in order to be ridiculously successful, you need to be among top 5% of whatever you do. That gives you a leverage to charge the price that you want*
Data Journalism is a fairly new domain and has far less competition than core Software Engineering domain. And the demand for Data Journalism is increasing. If your interests/skills align, you have more leverage to be among the top 5% of this domain compared to core Software Engineering domain. Irrespective of your commitment to be among top 5%, Data Journalism can be a good choice to make a decent side income while working as a Software Engineer.
Inspiration:
- Rukmini S is the first Data Journalist in an Indian newsroom. Checkout her data story - “Why India’s migrants walked back home” and her book - “Whole Numbers and Half Truths: What Data Can and Cannot Tell Us About Modern India”
Get started:
- Read some data stories consistently to get inspired and understand the craft
- Find an interesting idea or trend for your story
- Find the relevant data and analyze
- Visualize data
- Simplify the story for your target audience
- Publish it on your blog or any publication that you can get access to
Moving to next level:
- Write more stories to learn and create a good portfolio
- Finish a Data Journalism course
- Finish a course on Journalism in general. If you don’t want to learn “the Journalism”, you’d need effective collaboration with the Journalists to succeed in this domain
- Get a fellowship or internship in Data Journalism
- Get a job as a Data Journalist
FAQs & resources:
- datajournalism.com - A comprehensive guide on Data Journalism by European Journalism Centre
- How does a data story looks like? Checkout this UN's SDG progress report by Gapminder.org, this story on "The deadliest jobs in America", this World health statistics 2021 by WHO
Current opportunities:
- Jobs at Intergovernmental organizations such as UN, WHO, World Bank, etc.
- Fellowship programs for data journalists run by European Journalism Centre, Google News Initiative, India Data Portal, Newslaundry, ICFJ Knights, Hindustan Times, IndiaSpend, USCAnnenberg, and many more.
- Grants for Data Journalists
Bucket#3: Low Impact, Low Effort
11. Finish a MOOC
12. Accept more responsibilities at current job
13. Finish a Bootcamp
14. Participate in a contest/hackathon
15. Learn about industry
16. Read a book
17. Learn a lateral skill(a skill other than programming)
18. Volunteer for non-profit
19. Actively help other developer grow via dev communities(e.g. StackOverflow, Invide, Reddit, r/python, etc.)
20. Mentor someone
21. Improve soft skills
Picking the opportunities
Now you know the possibilities, how to pick the right set of opportunities to pursue?
Here are some tips
- Don't try to do everything at once(Duh?). Ideally, pick 1 opportunity from each category.
- Listen to your gut which opportunities excite you the most
- Start-Grow-Maintain principle: Because just starting won't add much value, you will need to grow and then invest time & resources in the maintenance as well to bring significant change. To understand what it takes to start working towards a goal, what it takes to grow and finally what maintenance is required for that particular goal. e.g. maintaining a startup will require significant efforts and will demand a full-time commitment. How much time or resources do you need to be in that position to dedicate your full time to startup?
- Understand what do you gain out of the selected opportunity(e.g. wealth, network, knowledge,...). If you pick "speaking at the conference" which will help you grow your branding, network, knowledge & wisdom, then you may want to reconsider picking "writing a tutorial" as another focus area, because this will also help you gain the same things and focusing on both goals at once might be tough.
- There are multiple right answers so don't feel bad if it feels like you're missing on things that you let go. Set a time-frame to experiment with your options and reevaluate after that time-frame. Repeat.
Getting started
Most of these goals are not a one-time thing, they require continuous efforts and iterations to achieve significant impact. Here's how you navigate the changes effectively and without going crazy
- Decide your strategy for a particular goal
A. Be a rebellion: Make a bold decision to change drastically. Quit your current engagements and start focusing on your new goal for full-time.
B. Live a second life: While working on your current job, decide to dedicate some time(daily or weekly basis) to your new goal on the side.
For low effort goals, the recommended strategy is B(Living a second life). For high effort goals, I recommend to start with B only and later on when you get more confidence, move to A(being a rebellion). - Now it is time to block calendar schedule to work on the selected goals(e.g. Goal#1 every Sun afternoon for 3 hrs)
- Ask yourself, can I break this big goal into smaller SMART(Specific, Measurable,Achievable, Relevant, Time-bound) goals? Read more about SMART goals here.
For a particular goal, if you can do this, wonderful. What to do when it is impractical to do so?
A. Gather more knowledge around the subject and talk to people who have achieved similar things
B. Replace goal-based approach with process-focused approach: Some tasks can be put simply as "get this done by XX Date"(e.g. make your resume by 31 Dec.) and some tasks are better put as "do this every XX Day/Time-interval"(e.g. post my learning about the subject on social media every day). If you find it tough to predict the time required to do something or fail to achieve goals on time(generally due to limited knowledge/expertise), in those cases second approach(process-focused) is more suitable. Follow the process of taking some actions consistently that can lead to the achievement of the goal. - Take the first smallest action as soon as possible: When there's not a clear path, it is very easy to get stuck in a cycle of over-analysis. The trick to avoiding this unproductive thinking is to take the smallest action as soon as possible. e.g. Want to achieve "speak at the conference", update your social profiles with the tag "looking for speaking opportunities" or maybe record a video right now. That is the smallest action to build momentum.
- Keep up the momentum with the help of community or accountability partner: Now that you have started, you need to keep the momentum. Communities, where people are working towards the same goal, can help. The alternative could be to have an accountability partner who can help you track and move forward towards your goal.
“The will to win, the desire to succeed. The urge to reach your full potential – these are the keys that will unlock the door to personal excellence.” Confucius
References and credits
This is a map for developer career and map is not the territory. With your help, we can make this map better. Following resources helped me writing this guide. Do share your tip and your success story with me in the comments, so I can make it even better.
- How to pick career by WaitButWhy
- SMART goals by Mindtools
- Mindshift - a MOOC on breaking through obstacles to learning and discovering hidden potential
- Invide community members interview
Member discussion