career growthproductivity

GitHub Repositories Worth More Than a Star

Everyone has forty starred repositories and has opened three of them. Twenty three worth keeping, grouped by what each is actually for: system design, things to build from, things to practise against, computer science foundations and things to look up, each with a note on how to use it properly and the three habits that decide whether any of it turns into learning.

Tauseef Fayyaz

Tauseef Fayyaz

Mar 13, 20267 min read3 views

Starring is not learning

Everyone has forty starred repositories and has opened three of them. The list below is grouped by what each one is actually for, because a repository you do not know how to use is just a bookmark.

Five groups: system design, things to build from, things to practise against, computer science foundations, and things to look up.

For system design

Grokking System Design by Arslan Ahmad

The companion repository to the Design Gurus system design material, and the most sequenced thing in this section. Concepts arrive in an order where each one builds on the last, rather than as a pile of topics you have to sort yourself.

How to use it: work through it in order rather than dipping in. If a topic turns out to be worth more than the summary gives it, the full system design path covers the same ground with worked examples.

The System Design Primer by Donne Martin

The most comprehensive free system design resource there is. Diagrams, explanations, worked problems.

How to use it: not front to back. Pick one topic, read it, then design something small that uses it. It is a reference organised as a course, and treating it as a course is how people stall on page forty.

System Design by Karan Pratap Singh

The same territory as the Primer, broken into short chapters with a clearer through line. Many people find this the easier first pass.

How to use it: read this one first if the Primer felt overwhelming, then go back to the Primer for depth.

System Design Resources by Gaurav Sen

A curated index of the best external material: papers, talks, articles, sorted by topic.

How to use it: as a map when you want to go deeper on one concept and do not know where the good writing is.

Computer Science Papers for System Design by Arpit Adlakha

The original papers behind the systems everyone references. Dynamo, Bigtable, MapReduce, Kafka and the rest.

How to use it: once the vocabulary is solid. Reading the Dynamo paper after learning about eventual consistency is a genuinely different experience from reading a summary of it.

Awesome Scalability by Binh Nguyen

A large index of how real companies solved real scaling problems, organised by pattern.

How to use it: search it for the specific problem you have. It is a lookup tool, not a reading list.

Engineering Blogs by Kilim Choi

A maintained list of company engineering blogs, which are frequently better than the books.

How to use it: pick three companies whose products you actually use and subscribe to those. Nobody reads six hundred blogs.

What Happens When by Alex Gaynor

An absurdly detailed answer to what happens when you type google.com and press enter, from the key press down to the rendered page.

How to use it: read it once, slowly. It connects networking, DNS, TLS, browsers and servers into a single continuous story, and almost nothing else does that.

Hands typing code on a laptop

To build from

This is the group that changes people, and it has the fewest stars per unit of value.

Build Your Own X

Tutorials for writing your own database, git, shell, compiler, docker or operating system.

How to use it: pick the one that intimidates you slightly and give it a month. Building a toy version of a tool you use daily permanently changes how you think about it. This is the best answer to "what should I build".

Project Based Learning

Build something real tutorials, sorted by language.

How to use it: when you have finished a course and feel stuck with nothing to make. Do not start another course. Start here.

Coding Challenges Solutions by John Crickett

Solutions to a long running set of build a real tool challenges: your own wc, your own JSON parser, your own Redis.

How to use it: attempt the challenge first, then read other people's solutions. Comparing five approaches to the same problem teaches more than any single tutorial.

Public APIs

A directory of free APIs by category, with auth and CORS noted.

How to use it: pick one that genuinely interests you and build something small with real data. Real data has messy edge cases, and messy edge cases are where the learning is.

To practise against

The Algorithms

Hundreds of algorithms implemented readably, in most languages.

How to use it: as a second explanation when a textbook description has not clicked, and as a first open source contribution, because adding a missing algorithm is an approachable pull request.

DevOps Exercises

Thousands of questions across Linux, networking, Docker, Kubernetes, CI/CD, cloud and SQL, with answers.

How to use it: to find the holes in what you think you know. Work one section, and treat the questions you cannot answer as your reading list.

30 Seconds of Code

Short, well explained snippets covering common JavaScript, React and CSS problems.

How to use it: read a few each morning. Small, frequent exposure works better here than a long session.

Essential JavaScript Design Patterns by Addy Osmani

Design patterns explained in JavaScript rather than in the Java the originals assumed.

How to use it: when the Gang of Four book feels distant from the code you actually write.

For computer science foundations

Coding Interview University by John Washam

One person's complete self study plan, kept public.

How to use it: as a syllabus for the fundamentals, not a checklist to complete. The value is the ordering.

Tech Interview Handbook by Yangshun Tay

Practical, well organised material on data structures, algorithms and the surrounding process.

How to use it: the algorithm sections are a solid reference regardless of what you are preparing for.

Interviews by Kevin Naughton Jr.

Data structures, algorithms and complexity in one hub, with video explanations alongside the code.

How to use it: when you want the same concept explained twice, in text and on video.

Data Structures, Algorithms, LLD and HLD by Arpit Adlakha

Covers the low level design layer that sits between algorithms and system design, which most resources skip entirely.

How to use it: for the object design skills that come up whenever somebody asks you to model a real domain in code.

To look up

Free Programming Books

A large, maintained index of books and courses that are legally free, in many languages.

How to use it: check here before buying anything. A surprising number of standard texts are free from their authors.

Awesome by Sindre Sorhus

The index of every curated list. Whatever you are starting to learn, its awesome list exists.

How to use it: first stop in an unfamiliar area, to find out what the landscape contains.

Path to Senior Engineer Handbook by Jordan Cutler

Curated writing on the non code part of the job: scope, influence, communication, ownership.

How to use it: when you are technically solid, getting good reviews, and cannot work out what is missing for the next level. One piece a week, not the lot.

How to actually get value from a repository

Three habits, and they matter more than which repositories you pick:

Open it the day you star it. Ten minutes, right then. If it is not immediately useful, do not star it. A list of forty is a list you will never open.

Convert reading into building. After any section you found interesting, write something small that uses it. Reading produces the feeling of understanding. Building produces the substance.

Contribute to one. Fix a typo in the documentation, add a missing example, improve an explanation that confused you. The first pull request to somebody else's repository is disproportionately hard and disproportionately useful, and every one after it is easy.

Beyond repositories

Repositories are excellent for breadth and poor for order. They tell you what exists, not what to learn first.

If you would rather follow a sequence, Design Gurus organises the system design material into a guided path, and our own resource library collects the repositories above alongside the courses, books and roadmaps that give them structure.

The combination that works is a structured path for order, plus these repositories for depth whenever a topic turns out to be more interesting than the path had time for.

career growthproductivity

Tauseef Fayyaz

Written by Tauseef Fayyaz

Lead Full Stack Engineer & Career Mentor. I lead an engineering team by day and mentor engineers through job hunts, promotions and career switches the rest of the time.


Comments (0)

Comments are closed for now.

No comments yet.

Work with me

Stuck on something specific?

Writing only gets you so far. If you want an answer to your situation rather than the general case, book a session and we will work through it together. Every session is free; a few slots open each week.

Follow along

New writing, resources and project ideas land here first.