Roadmap · Career
Open source contribution
Opens with creditsFor students and engineers who can already build small programs and want to contribute to real open source projects, from a first pull request to a mentored programme. By the end you work confidently in someone else's codebase, have merged pull requests you can point to, and can run a small project of your own.
By the end, you will be able to
- Fork, branch, rebase and open a clean pull request that follows a project's contributing guide
- Get at least three pull requests merged into a project you did not start
- Triage issues, review other people's pull requests and take part in project discussions as a regular
- Write a mentored programme proposal with weekly milestones, backed by merged contributions
- Maintain a public repository with a README, licence, CI, issue templates and tagged releases
The path
6 stages, in the order to learn them. Open one to start.
1How open source worksBefore touching code, learn how projects are run: licences, maintainers, contributing guides and codes of conduct. Most rejected first pull requests break a norm, not a test.7 topics · ~2 weeks
- 1Why people and companies contributeOpen source means code published under a licence, a set of rules that lets anyone use, study, change and share it.
- 2What an open source licence doesCode with no licence is not open source.
- 3Permissive and copyleft licencesLicences come in two families.
- 4Maintainers and project governanceEvery project has people who decide what gets merged (accepted into the main code).
- 5Contributing guides and codes of conduct
CONTRIBUTING.mdis the contributing guide: the project's instructions to you. - 6CLAs and DCO sign-offsSome projects need a record that you have the right to submit your code.
- 7Issue and pull request etiquetteMaintainers judge newcomers by how they communicate.
7 in this stageOpen this stage2Git and GitHub for contributorsContributing means working in a repository you do not own. Learn the fork and branch workflow, keeping a fork in sync with upstream, rebasing, and commits a reviewer can read.7 topics · ~4 weeks
- 1Everyday commands: status, diff, stash, logEveryday Git commands should become automatic before you learn the fork workflow, because contributing adds more to keep track of.
- 2Forks, origin and upstreamYou cannot push to someone else's repository, so you fork it.
- 3Feature branchesEvery contribution goes on its own feature branch, a branch made for one change.
- 4Commit messages and Conventional CommitsA maintainer reads your commits before your code.
- 5Keeping a branch up to date with rebaseUpstream keeps moving while your pull request is open.
- 6Resolving conflicts during a rebaseA merge conflict happens when your commits and upstream changed the same lines, so Git cannot decide which version to keep.
- 7Squashing and force-pushing safelyMany projects want a pull request to land as one or a few clean commits, without noise like "fix typo" and "address review".
7 in this stageOpen this stage- Your first merged pull requestGet a small change merged into a real project. Start with documentation, tests and labelled beginner issues, where maintainers expect newcomers and reviews are quicker.8 topics · ~4 weeksOpens with credits
- Becoming a regular on one projectOne-off pull requests teach little. Commit to one project for a few months: read its codebase, triage issues, review pull requests and join discussions until the maintainers know your name.8 topics · ~2 monthsOpens with credits
- Mentored programmesProgrammes such as Google Summer of Code, Outreachy and LFX Mentorship pair you with maintainers on a fixed-length, usually paid project. Learn their timelines, pick an organisation early and write a proposal backed by real contributions.7 topics · ~2 monthsOpens with credits
- Maintaining your own projectRun a small project the way good maintainers do: a README that gets someone started in five minutes, a licence, CI on every pull request, issue templates, releases and a clear path for contributors.9 topics · ~6 weeksOpens with credits
4 more stages, 32 more topics, free with an account.
You have seen the open stages of the Open source roadmap. Every topic it covers is listed above, and an account opens the rest: what each topic means, a question to check yourself, the courses, the practice and Tauseef's advice for every stage. Early access is open: sign up and your account is active shortly after.
Everything here is free to learn from. A few things, like adding a roadmap, keeping a cheat sheet or asking Tauseef a question, use credits. You get 15 when you join, your first roadmap is free, and if you are learning seriously and run out, you can ask for more. Credits only make sure the platform goes to people who are actually learning.
Related on Sefism
Picked from the other libraries by shared topics.
Checklists
See all- Open Source Contribution ChecklistMake your first and next open source contributions the way maintainers expect: pick a healthy project, read the rules, claim an issue, fork, open a clean pull request and handle review.
- GitHub Profile Checklist for DevelopersCheck your GitHub profile part by part: name, photo and bio, profile README, pinned repositories, project READMEs, licences, contribution graph, commit email and account security.
Project structures
See all- Python package and CLI project structureA command line tool published to PyPI, laid out the way the Python Packaging User Guide and uv recommend: a src layout, one pyproject.toml for metadata and every tool, a thin Typer CLI over plain, testable modules, and releases uploaded by GitHub Actions with trusted publishing. The example is mdlinks, a tool that finds broken links in Markdown files. For students who have written Python scripts and want to ship one that strangers can
pip install. - TypeScript npm library project structureA small, typed npm package (a retry helper) built the way modern libraries ship in 2026: TypeScript source in
src, bundled by tsdown intodistwith type declarations and anexportsmap, tested with Vitest, checked with publint and Are the Types Wrong, versioned with Changesets and published from CI with npm provenance. For students who want to publish their first package, and for anyone whose package works locally but breaks for users. - VS Code extension project structureA TypeScript extension for Visual Studio Code, built from the official Yeoman generator with esbuild bundling. The example, TODO Lens, finds TODO comments and shows them in a tree view, with commands, settings and editor decorations. The tree grows from the generator's Hello World into commands, providers and editor-free core logic, then tests on three operating systems, publishing to the Marketplace and Open VSX, and a webview with a strict security policy. For students who use VS Code every day and want to build a tool other developers install.
Career questions
See all- How do I learn to read a large codebase when I can handle small projects but get lost in real ones?Nobody reads a large codebase from top to bottom. You follow one real path through it, such as a single request or button click, from entry point to database and back. Map what you find, ignore everything off that path for now, and repeat with a different path. Understanding builds in layers, and a first small change teaches more than a week of reading.
- Should I spend my free time building projects, solving DSA, contributing to open source or networking?Not one of them: a weighted mix that changes with your stage. Early on, lean on projects and fundamentals; closer to applying, shift time towards problem solving and networking. Open source is valuable but optional. Decide the split weekly and review it monthly against what is actually blocking you.
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. Sessions are free for approved Sefism members, and a few slots open each week.
- 1:1 Mentorship
- Fresh Graduate Mentorship
- Career Guidance
Brand deals, promos and partnerships: tauseeffayyaz@gmail.com