roadmap.sh Interview | Craft of Open Source Podcast

Interview with Kamran Ahmed: Founder, roadmap.sh
By
Ben Rometsch
on
June 27, 2023
Ben Rometsch - Flagsmith
Ben Rometch
Host Interview
Host Interview

The project currently has 240,000 stars, 34,000 forks, and 607 contributors. It's an absolute Goliath.

Kamran Ahmed
Founder
Kamran Ahmed
Founder
00:00
/
00:00
https://d2iwv8pn9yf3nf.cloudfront.net/_9x-f7llO.mp3
00:00
/
00:00
https://d2iwv8pn9yf3nf.cloudfront.net/_9x-f7llO.mp3

What goes into building a project to 243K stars and 34k forks on Github?

This episode was a fascinating one. We spoke to Kamran Ahmed, who created roadmap.sh to help developers find their path and help them learn and grow in their careers. Kamran joined us to share his remarkable journey as the founder of this huge project. Initially met with mixed responses, his brainchild has blossomed into a thriving community-driven initiative.

Kamran shares insights into maintaining a community approach, partnering with organizations, and hosting the project on GitHub. With an impressive user base of 700,000 monthly visitors and a newsletter with 250,000 subscribers, Kamran discusses the challenges and strategies behind managing such remarkable growth. We also gain valuable insights into their creative process as well as their plans for income generation. Tune in to discover the inspiring story of roadmap.sh and its incredible success.

Welcome back, everybody. It’s another episode. It’s an exciting time for Kamran’s project. He has the sixth most star repository in GitHub which puts it easily at the top of the pile in terms of our show recordings. Welcome, Kamran.

Ben, thank you for having me.

Do you want to tell us a little bit about your project, your background, and how it started?

First of all, I have around a decade of experience. I have worked mostly with startups in the past. Most of my experience had been with startups. Some of them grew to be thousands of employees. Two of my past companies reached from 20 employees to 1,000 employees. I like to have side projects all the time because you learn on the side projects. I try to keep an open source. I got to where I am because of the open source. You learn a lot from the community and you give back as well.

I started Roadmap.sh at the beginning of 2017. The reason why I started it was because when I was starting out in my career, I had this confusion about what I should learn. When I was in university, I was doing a lot of different things. I was doing frontend development, backend development, game development, graphic designing, and a lot of different things because once I graduated from the university, I did not know what am I going to do.

I was in a small university and it was not famous for software engineering and computer science, and there was a community around it. Once I was in the field, I thought I should give back to the people and help the people who do not know much about the future of their careers so they could get guidance from this roadmap. That’s how it came to be.

Do you want to talk a little bit about what it is for those people that don’t know the projects in the repository?

In Roadmap, we have a community-driven set of roadmaps. We have a lot of different guides. For example, if you want to become a frontend developer or a backend developer, or a dev ops engineer. Whatever role you have in the technical field, you can pick a role, and we might have a roadmap for that. He Roadmap is a step-by-step guide. We start from the very basics. Learn this, that, and so on, all the way to becoming a master in the development field.

Initially, it was just a bunch of images on the website. Anyone could download the image, get the idea, print it on paper, and use that for their own guidance. Later on, we made the images interactive. Now, you can click the nodes in the Roadmap, and then you can read more about the topic there. We have a bunch of free resources as well that you can go to and learn from there, like courses and so on.

For those of you that haven’t seen it, I’ve seen this link on Hacker News a few times and didn’t realize the project. They’re pretty interactive like a cross between a flow diagram and a mind map. They take you through it. You aren’t writing the content for these courses. Is that right?

The roadmaps are built by me and the community, but the content itself within the roadmaps is contributed with the help of people. For example, people who are learning some of the roadmaps contribute to the links and the content on top of the nodes. The ones to click and open something are contributed by the community members.

For those of you who are tuning in and aren’t sitting in front of a computer or don’t have your phone out, the numbers are nuts. The project currently has 240,000 stars, 34,000 forks, and 607 contributors. It’s an absolute Goliath. The other interesting thing when I was researching this talk was a lot of the top ten projects on GitHub are related to learning and developing your own personal knowledge. It must be a very competitive space writing or putting an open source repository out there to help people in their personal development. As Roadmap.sh looks now, is that what you had in your head when you started it five years ago or not?

Not at all. When I started in 2017, it was just a high project. I made it mainly because a lot of people from the university were reaching out to me because I had recently graduated. They were asking for guidance. I made these images only because I wanted to share it with them. Instead of writing out the message, I wanted to prepare these images so I could share it with them. I kept working because the website was not long until 2018.

At the end of 2018, I launched the website. I took the images and I put it there because a lot of people were asking for more roadmaps. A lot of people were asking to contribute to the website as well. That’s when I made the website. I didn’t even think about it going to grow as big. I remember when I posted it on GitHub, in the first week, we were at almost 10,000 stars. There were a lot of people looking for the roadmap.

Do you have any idea how that happened? Did it get posted on a big site or did GitHub feature it in their top ten repositories?

I think it got to the top ten recently. It was not long ago.

There’s a list of the most active in the last 24 hours or something like that.

The initial jump came from Hacker News. Someone posted it on Hacker News, and then a lot of people are posting it on Reddit. Subreddits are called learn programming or coding. There are a few subreddits where a lot of big names are. The initial jump came from there. After that, it was mostly organic. If you go to Twitter and you search for Roadmap.sh, we have 10 to 15 tweets about the Roadmap.sh. The initial was from these places. After that, it was word of mouth. A lot of people were talking to their friends about the Roadmap.sh and so on.

When you started building those images out initially, were they written programmatically and then compiled, or were you just drawing them by hand? Was the project ready to have hundreds of people wanting to contribute to it?

Not at all. Initially, I made them in the Balsamiq. I dropped something on the paper with the steps. For example, if you want to be a frontend developer, I had ten steps to learn. It was a basic idea based on my understanding at that time many years ago. I made them in Balsamiq and I put them on GitHub. I planned initially that I will launch frontend, backend, and dev ops. I did not know much about dev ops at that time, so I launched frontend and backend. I just posted it there and I said, “Upcoming roadmap dev ops.” Before I launched the dev ops roadmap, a lot of people were looking at the website and talking about it.

After that, the contribution was not easy. A lot of people were suggesting adding roadmaps and contributing to the website, but I could not get the contribution because making one roadmap takes a week or so. We’re drawing them, preparing all the topics, and then getting feedback from other people like subject matter experts. The contribution was not so easy. After 3 to 4 years, then I had a plan. This is how we want it to be in the future. The contribution was then easier. We have around 35 roadmaps at the moment.

COS 46 | roadmap.sh

The tooling that you’re using to generate these clickable pages, is that something that you guys have built yourselves or are you using a third-party component to do that?

It is a bit challenging at the moment. The way it works is the initial image is built with Balsamiq. Balsamiq only lets you export the images. It does not let you get the interactive features or something. They let you export a JSON as well. I took the JSON and I reversed engineered how it works. From the JSON, I build this tool in JavaScript that renders the SVG onto the webpage. In a bit of a hacky way, there’s no definite way to make the Roadmap from the Balsamiq. We are working on a tool that is going to make it easy for us to draw all these roadmaps programmatically outside the Balsamiq.

When you got these initial 10,000 stars, you were working full-time on another project. This was just a side project you were working on. Is that right?

Yes. I was working at a startup at that time. As you know, a startup is a lot of pressure. You don’t have much time. I was on vacation, so it was done mainly on the weekends. One day on Saturday, I drew these roadmaps and I put it down to GitHub, and then people were coming in. I then decided to put more effort into it. At that time, I was mainly working on two other products on the side. One was called Design Pattern for Humans. It is also a repository on GitHub. It also has 40,000 stars at the moment. There was another one called Git StandUp. I was mainly focusing on these two. This was because I was getting a lot of requests. I spent a week drawing these images and I put it on GitHub because I wanted to. It was not meant to be open source in the way it is now.

Were you immediately inundated with people wanting to contribute and submit pull requests and things like that?

Initially, there was a lot of backlash. A lot of people were saying, “Why are you recommending this or that?” Later on, people started coming in, then I had to come up with the format, like what kind of format it’s going to be for the new roadmaps and so on. The first roadmap that we received was after a year or so. Initially, people were just asking for the roadmap, but no one was contributing with new roadmaps. I was reaching out to people also, and then people were more keen to submit the roadmaps as well because now there is a good audience. Getting contributions from people is much easier than it was in the beginning.

Getting contributions from people is much easier than it was in the beginning.

How have you managed the repository and the team around that? Have you got help or are you still mainly at the controls in terms of accepting pull requests and putting out new builds of the application and things like that?

I went full-time a year ago on the Roadmap.sh. I’m working full-time on that. That’s my full-time job as well. I have one other guy who I recently hired. Before that, I had one more guy. We were three guys at one point in time. It’s two of us working on it.

At what point did you start getting help? I can’t imagine how you would go about dealing with a project that’s growing so quickly when you’re doing it by yourself in your spare time.

The audience is mostly the bigger developers. The kind of requests that I’m getting is not contributions or a lot of issues. What I had, in the beginning, were the six months’ revisions. I was planning the revision for every roadmap every six months. What I would do was after six months go by, I go through all the issues. For example, these are the issues open for the frontend roadmap, this is for the backend, and this is for dev ops. I would prepare and I would revise them twice a year after every six months.

This was basically the update. I don’t think it was as difficult as it is now because the community is much bigger now, and we are adding a lot more features as well. We have login, registration, and profiles coming in as well. It is more complicated now than it was before, but it was not as difficult as it may sound than it was. It was big, but it was not difficult to manage.

Have you had people who’ve wanted to pull it in a certain direction or another? If I look on your homepage now, you’ve got 13 role-based roadmaps and 25 or so skill-based ones along specific languages or things like that. Have people been wanting to pull it in a certain direction?

It happened a lot. Initially, I was recommending PHP at that time because PHP was very famous, and a couple of different languages. There was a guy who opened an issue like, “Why is it in PHP?” He wrote an inactive issue on GitHub. A lot of people are suggesting this kind of change, but I try to keep it as community-driven as possible.

There’s not one guy who comes and recommends this and then goes to the roadmap and updates that. I don’t do it this way. What I do is if we have issues, people vote, and then I send it out also in the newsletter asking for feedback and so on. This is mainly with the help of a lot of different people. I have also partnered with the news tech. They have a lot of good people. We’re working with them. I work with them and get their help as well. We try to make it as community-driven as possible.

Tell me about that partnership. Can you describe for those that don’t know what the new stack is?

The new stack is mainly the new website. They mainly focus on the dev ops and this kind of stuff, mainly for dev ops and the news around this kind of topic. We were working mainly with the other kinds of roadmaps. We are working on a variety of different topics, so I collaborated with them. I partnered with them through the parent company, like the inside partners. We are working with them. We are sending them some traffic and they’re sending us some traffic back. They get help through the length that we are posting on the roadmap within the content website and the content of the nodes. They help with the community that they have, the subject matter experts, and so on.

In terms of hosting, how are you deploying the platform and hosting it now?

Initially, it was mainly on the GitHub pages. It was a static website. We have the SGS and SSG. We were generating the HTML and were just posting on GitHub. A few months ago, we joined the account. Some of it is on AWS and some of it is on the GitHub pages. The accounts and stuff are mainly on the AWS APIs. The frontend is still on the GitHub pages.

You must be getting a ton of traffic to that homepage. Is that fair to say?

Yes. We have a monthly active user of around 600,000 to 700,000. The number of page views is 3.5 million per month.

It’s interesting. It’s great that you can do all that or you can do most of it, or you could do all of it up until recently using GitHub in a purely free manner. That’s incredible.

Initially, it was a side project. I wanted to spend less money on it because it was not making any money and it was a lot of traffic. I had to make sure that it doesn’t make me go bankrupt. I tried to go with the GitHub pages. The way I built it was whatever I could do in a free manner, for example, instead of using some headless CMS, I went with the GitHub markdown format and the GitHub Repository itself. GitHub is not too much. The bill is around $150 per month at the moment with the API and with the kind of traffic that we are getting. It was built in a way that the money is less, but most of the money is from the newsletter, not the website itself.

COS 46 | roadmap.sh

Tell us about the newsletter. When did that launch?

I have been collecting the email since the beginning. It was not much focus, so we just had a small box like, “Subscribe by entering your email.” Later on, I started working on the email building. A year and a half ago, I started making it more active. Once you download the roadmap, you need to give the email to download and so on. We are sitting at around 250,000 subscribers in the newsletter. It’s growing quite well. We are getting around 13,000 to 40,000 newsletter accounts per month.

Is the newsletter something that’s partnered and the content is driven by the new stack or is that something that you are writing?

It is written by me. There’s no promotional content in there at all. It is mainly for updates. I send two newsletters per month. One on the 15th and the other one on the 30th. It’s mainly the announcement of the new roadmaps that we have launched, any changes that we have made, new content that we have made, and so on. I’m planning maybe in a couple of months later or so, we’ll have the links also. I’m thinking about doing it more occasionally. Maybe a weekly newsletter where we add the links or the open source project and so on.

In terms of community management, how have you gone about that? You mentioned people moaning about you talking about PHP. Developers are fairly a fickle bunch and hard to please. How have you dealt with that problem? That’s one of the things that I like about the content that’s on there. It’s very unopinionated in terms of it talking about, “These are some server-side languages if you want to learn how to be a backend developer,” but it doesn’t talk about which one you think is best.

I mainly remove those recommendations because of the backlash that I was getting. I would recommend something because of something else. For example, maybe my recommendation would be based on the job market. For example, if you’re a big developer who comes to the backend roadmap, you’re probably looking for a job. That’s why you want to learn this roadmap. My recommendation would be to go with Node.js. When someone would come and he would post this on Hacker News and Reddit, they would say, “Why is Node.js recommended? Why not Java or whatever?” I try to keep it under Reddit. The backend roadmap, if you look at that, there are less technological aspects, but more conceptual stuff.

If you look at the databases, I would have learned about the OLM. It doesn’t matter if you go with Mongos or if you’re using Java, you should learn this or PHP, you learn this. Each language has different kinds of ecosystems. The backend roadmap is nonspecific to some platforms, but more general roadmap. Whatever language you can pick, you can learn this roadmap for that language.

My recommendations are mainly inside the topic. If you’re looking for a job, look at the job market and stuff. My recommendation would be to go with Node.js and so on. A lot of people are coming to the roadmap. They just come to the roadmap, and then they go away. The big news is the ones who are mainly following the roadmaps. They would go and they would find out what my recommendation is from within the roadmap itself.

I guess competitors isn’t quite the right word, but what other projects are similar to this? It’s interesting. There’s a lot of investment put into learning platforms, especially video learning platforms where it’s very expensive to get that content videoed initially. I guess one of the things that I’ve always found must be super difficult for those people in that space.

You film a video and it costs you a ton of money to build that video, and then Apple goes and updates Xcode. All of a sudden, all of the screenshots that you have and all of your videos don’t make sense because the Xcode that has been recorded with it is old. The menus don’t fit the tutorials anymore. You sidestep that quite a lot because you are linking out to other resources. You’re still curating those resources, but you are not responsible for generating that content itself.

Competitor-wise, we don’t have anyone. There’s no one who’s mainly focusing on these kinds of roadmaps. A lot of people are trying to do the similar. A lot of different websites are trying to do something similar, but they are mainly focusing on selling their courses from these roadmaps. They are a bit more aligned with the courses that they have on the website.

What sets us apart is we have mainly roadmaps. We don’t have any paid courses. We don’t have any paid content. Everything is free and we are mainly linking to other people, and then they could learn from anywhere that they want. What sets us apart is this. We don’t have any monetization plans at the moment, which makes us easy to play with whatever we want to do.

When we joined in the beginning, the roadmap is mainly for the product roadmap. It is not a term used mainly for learning plans and stuff like that. When I launched it in 2017, if you search for some PHP roadmap or JavaScript roadmap, or Node.js roadmap, nothing would come up. If you search for this kind of item now, the roadmap has popularized this. A lot of people are making the roadmap.

First, it’s like Roadmap.sh has Node.js, and then there would be ten different topics from other websites or blog posts that are written around the roadmap topics, but there’s no website that’s mainly giving the roadmaps. For us, the roadmap does not get deprecated as easily because our format is a bit different than the actual format. Even if it gets deprecated, there will be only one item. For example, at the end of each year, once we divide the frontend roadmap or backend roadmap, let’s say that the web pack would be replaced with ESBL or something. There will be these kinds of recommendation changes or prioritization of the items, but there will be no massive changes in the diagram.

I see you do have some guides that may have been written by yourself where you are talking about single sign-on. It’s an interesting wide spectrum of things that you’re talking about, everything from DHCP to TLS to the history of JavaScripts. How did you come up with the ideas for those subjects?

If you look at them, they were not long time ago. They’re maybe 2 to 3 years ago. When I come up with ideas, I don’t think about how people are going to like it or not, how many people are searching for it, or what the keyword ranking looks like on Google. Whatever I find interesting or I wanted to explore, for example, I don’t know about DHCP and I wanted to learn what DHCP is.

Normally, every weekend, I was coming up with this. I was doing some research on the topic and I was preparing the nodes for myself. I would then polish them and I would make the image with Figma, and then I put it on GitHub. Most of the content in the video guides that you see was done in this manner. I wanted to learn something, and then I wanted to make the nodes out of it. I would put the image, and then put it on Twitter, and on the Roadmap.sh.

You have got some videos in there as well. Is that the same story? You just wanted to get some new content in there in a video format?

I wanted to do some play with animation and stuff, therefore I started the YouTube channel. I saw a couple of YouTube channels. One famous channel is called Fireship, and a couple of other channels that are making good animations. I wanted to play with this and see how to make content for developers with the help of animation. That’s why whatever I would make as a form of a visual guide, I would make this into a video as well on the YouTube channel.

That’s cool. I see you’ve got 190,000 subscribers on YouTube, which is a decent number. How long did it take you to get to that point?

The first video was three years ago. We were getting around 7,000 subscribers per month. It is not much because I haven’t been active on YouTube as much as before, but it was mostly organic. I didn’t put much effort into promoting it as much. I was just posting the link on Twitter whatever I was making or I report it on the Roadmap.sh. That’s it.

Another thing I like about the homepage is the general design, typography, and layout. It looks clean and slick. Is that something that has been there since day one?

We had multiple iterations. The first one was three boxes and you could have images. That’s it. After that, I kept revising it, and then this is where I got to be. I’m not a designer. Designing is mostly what I do on the side because I like to do everything by myself. That’s how I came up with the design. I wanted to keep it as simple as possible. That’s why I came up with this. This was the redesign that I made two years ago or something like that. After that, it is the same design.

There are sorts of people that are contributing to the GitHub repository in the project. Do they have a common type, or is it all sorts of people? What would cause someone to contribute to the repository?

The contributions have been mostly to the content. Rarely do I get the contribution in terms of a new roadmap or changes in the code base of stuff. The contribution is mostly with the roadmap. If you click the node, the popup opens up. People are writing the content there. The audience is mainly the beginner. Let’s say I’m learning docker and I find some resource which is helpful for me. I would come and I will contribute that link inside the docker node in the backend roadmap.

These are most of the contributions. I have to constantly reach out to people for the contribution to the roadmaps. For the functionality, it is mostly me and this other guy that I have hired recently. He is working with me on the features. The 600 contributors you see, it is mostly the content contributions or the resources that they put on the roadmaps.

How easy is it for someone to add those contributions in? If I click on an element, there’s a link in the footer that allows me to go directly in there and edit that. I guess you can do all this stuff without leaving GitHub.

Inside the repository, we have the data folder where we have the content. All the content is within each roadmap with the markdown files. Anyone can click simply the added button on GitHub, put the link, and submit it on the UI of GitHub. You don’t need to even clone it, run it, or whatever. Just put the markdown file, and that’s it. The markdown is also a generic markdown. There’s no special format or whatever. That’s why it’s easy for beginners to contribute.

What percentage of those pull requests do you accept as opposed to reject?

I think 90% of them are accepted. I like to mostly accept pull requests because a lot of people are beginners. I like to give them the confidence boost that they have contributed to the project. Even if I need modifications, I will merge their pull requests and I would make the changes on my own.

I quite like that idea. That’s nice. I guess the other 10%, some percentage of that will be people trying to sneak links into their own commercial projects or things like that. Is that right?

Exactly. A lot of people have been reaching out to me since the beginning. They wanted to promote their links from the Roadmap.sh. I have been most reluctant with that because the audiences are beginners. I don’t want to sell them some stuff that I don’t like myself. It happened with a couple of people who reached out to me with that in mind, and then I didn’t do it, so they started making their own roadmaps around these roadmaps. They take the content and they make the roadmaps on them. I’ve been fine with that. I like to keep them free which adds value to the people as well. The links are mostly curated. I go through them myself, and then I add them or reject them.

Don’t sell others stuff that you don’t like yourself.

In terms of the tooling around managing such an active repository, is there anything that you are using tool-wise outside of the GitHub website to manage the project?

I’m using Trello for tracking the backlog and stuff. Whatever we achieve every month, I have a list for that. This month we have this plan. This is the achievement for this month. It’s mainly Trello. Other than that, I have a couple of CLI tools built by myself also within the GitHub repositories and organization. I recently built a tool called AWS Cost CLI. You can find it on GitHub on my profile, which looks at the daily costs on AWS. It sends a reminder on my Slack like, “This was the cost for yesterday and then this month so far.” It says how it compares with the previous month.

I have these CLI tools also for my productivity. Other than that, for content, I have some automation as well. I would make the roadmap in Balsamiq, and then I would run a CLI command that would create all the folders and the empty files for me. People can contribute to those files. I have mostly these tools, but for product files, we are only Trello and Slack.

I’m having a look at this Cost CLI. That’s a tool that you’ve written yourself as well to keep ahead if anything starts going crazy in your account. Is that right?

Yes, correct.

In terms of you being paid for your time and things of that nature, there are some tasteful partner content links on the page. Is that currently the main way you generate income for the project?

Yes. I make sure that the links are reporting and they are relevant to the roadmaps that we have. They’re mostly free content. There’s no premium content. If you look at the backend roadmap, you might be promoting a conference. If you look at the graph scale roadmap, you will have a link to the free graph scale tutorials. I’m selective of the content that we promote on these roadmaps as well. This is what’s generating some revenue for the website.

You mentioned a couple of other GitHub repositories that are fairly large as well. What else do you work on day-to-day?

My focus is fully on the Roadmap.sh at the moment because there’s a lot of work. There’s a lot to do. The website is growing well. I want to keep it with that momentum. On the side, I have a couple of other projects as well on GitHub. Some of them have more than 10,000 stars on GitHub. One other would be Driver.js. If you know about Chameleon, it is similar to that. There’s no good library to add introductions to the website. If you want to add introductions to FlexPath, this is where you should go first, then go there, and so on.

There was no good library for that, so I came up with Driver.js, introducing the good one, which is paid. The Driver.js is the MIT version of that but with more flexibility. These are mainly the two projects at the moment, but I have quite famous projects. I don’t go with the projects mainly for the sake of it. I look at my own problems and I try to code them and help with projects, so the AWS Cost CLI.

I have another one called Automata on my GitHub which was mainly done because of that need. I automated a tool that lets you write HTML files, which gives you the configuration to run in the terminal here. It lets you divide the screen division for the terminal, and it lets you spin up all the commands at once. These are the kind of tools. Whenever I find some problem that I have that helps me be more productive, I come up with a tool for that, and I put it on my GitHub.

COS 46 | roadmap.sh

Your personal GitHub page is nuts. You’ve got six projects with more than 2,000 stars. I can’t imagine these many people on the planet that have that achievement.

There are a lot of people. Someone has 1,000 repositories or so. A lot of people are there, but I’m also there.

What do you think is going to come next for Roadmap? Are there things or different areas you want to branch out into? Do you want to stay in software engineering? For those of you who are tuning in and haven’t ever seen the website, it’s immediately obvious how much value there is in this one page if you want to learn dev ops. I’ve never seen this before in a learning resource. Has anyone ever contacted you about, “This would be great for weight training, knitting, brewing beer, or something?”

A lot of people have reached out to me. Someone wanted to do this for medicine, exercises, and so on. A lot of people have reached out to me, but my focus at the moment with Roadmap.sh is to merely focus on the developer content because there’s a lot to do here as well. Our next immediate plan for the end of next month is to add the questionnaires. If you are a frontend developer and you’re looking at the frontend and you have learned the roadmap, now you want to test yourself.

We are working on something around that. You could do everything from within the website like answer a bunch of questions in a card format. This is planned as well. Other than that, we are also working on the projects. We’ll have checkpoints within the roadmaps, so you can get an idea about the projects that you should do at this point. Once you have learned these two nodes, do this project, then these two, do this project. We have a lot of ideas that we want to focus on at the moment for the developer content. Maybe in the future, there are plans that if the website gets so big and we turn it into a company, then maybe we’ll hire some people. We’ll work on other bunches as well, maybe medicine or Roadmap.sh or physical whatever.

How do you decide on the next subject to work on? I guess everyone creates an additional load on you. You have to keep that roadmap up-to-date and clean old links off it and things like that.

I have a plan that I create at the start of the year. Every six months, I divide that plan and then I come up with that. I have a monthly plan. For January, I’ll do this, for Feb, March, April, and May. I have a plan for each month. During that period, I keep reviving that plan also. Normally, if I have a plan, I work on that plan. How I come up with that plan, it’s mostly based on the people who are willing to contribute based on my expertise.

Has there been anything in the lifetime of the project that surprised you or you hadn’t expected it to happen?

The growth that I saw was something that I wasn’t expecting at all. When I started this roadmap, it was not a website. It was a repository called Developer Roadmap in the beginning. I thought no one will visit this, and I went back to focusing on Git StandUp and the other design patterns for repositories. It got so big that I couldn’t even imagine it. It helped me meet a lot of nice people. It helped me make a connection with the people. I learned a lot as well. Every day, not a day goes by that I learned something new. It’s not just me making the roadmap, but also learning. I might not know about prompt engineering before. Now I know because I made the roadmap on prompt engineering. There’s new learning for me every day.

Not a day goes by that you don’t learn something new.

I’ve never got my head around developing React pages. Maybe that’s a good learning method. Maybe writing the roadmaps is a learning method for doing that.

Mostly, when I make the roadmap, I try to implement them also. When I started Roadmap.sh, I did not have much experience with the dev ops. Working on this product taught me in that regard also because I’m the one guy. I have to do the marketing myself. I have to do the product or whatever myself. I have to do the design myself. The frontend, backend, and everything have to be done by myself. Apart from this, there’s community management. There is a lot of learning, so it has been a quite fruitful journey for me.

Do you get a lot of requests from companies wanting to put their sponsored link in or people saying, “Why don’t you do a roadmap about feature flags?” Trying to skew it into a little bit more of a commercial. You must get requests like that quite often.

We do. I don’t want to make it look as commercial. Most of the revenue has been mostly from the link ads, but we get from time to time, a blog post trying to sponsor Roadmap or something like that. At the moment, there’s no plan to monetize. I just want to keep it growing and help the people and help the community, and then the money will come later on.

COS 46 | roadmap.sh

That’s a great perspective. That’s probably one of the reasons why it’s growing so well. It’s fairly obvious once you’ve started using it that it’s completely neutral. It’s neutral in terms of commercialization, but it’s also neutral in terms of technology. It’s not saying that React is better than Vue or anything like that.

I try to stay away from that. I want to cater to all the audiences. Even if you’re a React developer or a Vue developer, you have something to come and get from here.

Is that something that you had in mind from a very early point in the project?

The roadmap itself went through a couple of directions. Initially, what I had was just a graph with a bunch of nodes. For example, learn Java Script, HTML, and CSS, but it was mostly technology-driven. There was no concept at all. I then got a lot of feedback, so I turned it into a more conceptual one. It was mostly a textual roadmap, so there was no node at all. I was just listing the textural nodes to learn this and so on. A lot of people were still giving feedback. It is not as good as the first version, so I revised it again. It went through a couple of iterations. Every month and every year, it went through some revisions in terms of the format that it has.

At the moment, the format that we have is much cleaner and much easier for people to follow. I think we are going to stick with this. If you look at the first tag roadmap, which was recently launched, it is much more comprehensive because we show the checkpoints. We show that as a beginner, you should not learn everything for a job. Learn these topics and now you’re job-ready or stuff like that. These vision stacks kept coming in. If you look at the frontend, backend, and dev ops roadmap, they might look intimidating.

We are working on something for that as well. If you look at the frontend roadmap, we have a button on the top right corner that says “Visit the beginner version.” If you’re a beginner, you should not be intimidated by everything in there. Go through this roadmap instead. This revision kept coming in from the beginning.

I’m looking at the full stack one and it sort of pauses for breath a little bit more in terms of where you’re at.

There’s the same plan for the front end and other roadmaps as well. We make it less intimidating and more practical so that it’s not just me giving you, “Do this.” I’m also helping them to do this, and this is how you should do this.

Before we wrap up, are there any community members or people that you want to say thanks to? You must have some funny stories about crazy pull requests or something like that.

I don’t think there are many stories about crazy pull requests, but I would like to thank all the people who are helping me build this from the beginning, like all these 600 contributors. I would like to thank them, especially the guy who’s working with me at the moment on the new features. There’s a girl helping with moderating the Discord community of 2,500 people, Kayla. Thanks to her also, and everyone who has been visiting, giving feedback, and learning from it. I wish everyone the best of luck.

Kamran, that’s a super interesting story. It’s amazing to see what you’ve achieved pretty much with one or two pairs of hands. Good luck in the future and thank you so much for your time.

Thank you for having me.

Important Links

About
Kamran Ahmed

I’m an experienced developer with a demonstrated history of working on large-scale enterprise solutions. Additionally, I have a strong penchant for building and managing high-functioning development teams using my strong problem-solving and people skills.

Over my 8+ years of experience, I have heavily focused my attention on full-stack development, fostering agile practices, patterns of enterprise application architecture, managing complexity in the systems, delivering solutions that are future-proof, maintainable, and easily scalable, building and growing teams and mentoring the developers. I’m a quick learner with a strong interest in emerging technologies and exceptional analytical/problem-solving skills.

Moreover, I try to make a positive impact and lift the tech community globally with my open-source work and educational material. I am quite active on GitHub, where I have accumulated around 250k stars on my projects, and one of my projects is among the top ten most starred projects on GitHub. I am a Google Developer Expert in Web Technologies, and also GitHub recently recognized my OpenSource and community contributions and selected me as a “GitHub Star”. Also, I love teaching and educating others; I recently started my YouTube channel, which has around 100k+ subscribers.

Available for talk, coaching and workshops on:

Subscribe

Learn more about CI/CD, AB Testing and all that great stuff

Success!
We'll keep you up to date with the latest Flagsmith news.
Must be a valid email
Illustration Letter