Open Source
Open source is the backbone of modern technology. Understanding how to contribute, license, maintain, and benefit from open source is essential for every software engineer.
Contents 5 Sections
1Contributing to Open Source
- Finding Projects
- GitHub Explore / Trending
- goodfirstissue.dev
- Labels:
good first issue,help wanted,beginner
Contribution Workflow ```bash # Fork on GitHub, then: git clone https://github.com/YOUR_USERNAME/project.git git remote add upstream https://github.com/ORIGINAL/project.git git checkout -b fix/issue-123
# Make changes, commit with conventional format git commit -m "fix: handle null pointer in user.getProfile() (#123)"
# Keep up to date git fetch upstream && git rebase upstream/main git push origin fix/issue-123 # Open Pull Request on GitHub ```
- PR Best Practices
- One PR per concern
- Reference the issue: "Fixes #123"
- Add tests for your change
- Update docs if needed
- Respond promptly to reviews
2Open Source Licenses
| License | Commercial Use | Must Share Source |
|---|---|---|
| MIT | ✓ | ✗ (permissive) |
| Apache 2.0 | ✓ | ✗ (permissive) |
| GPL v3 | ✓ | ✓ (copyleft) |
| LGPL v3 | ✓ | Only modified lib |
| BSD 2/3-Clause | ✓ | ✗ (permissive) |
| AGPL v3 | ✓ | ✓ (incl. network use) |
- Key Distinctions
- Permissive (MIT, Apache, BSD): use in closed-source commercial products
- Copyleft (GPL): derivatives must also be open source
- Weak copyleft (LGPL): libraries can be linked from non-GPL code
- Network copyleft (AGPL): covers SaaS deployments
Always add a LICENSE file GitHub's license picker simplifies selection.
3Maintaining a Project
Repository Structure
``
project/
├── .github/
│ ├── ISSUE_TEMPLATE/
│ │ ├── bug_report.md
│ │ └── feature_request.md
│ ├── PULL_REQUEST_TEMPLATE.md
│ └── workflows/ci.yml
├── CHANGELOG.md
├── CONTRIBUTING.md
├── CODE_OF_CONDUCT.md
├── LICENSE
└── README.md
``
GitHub Actions CI
``yaml
name: CI
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with: { node-version: 20 }
- run: npm ci
- run: npm test
- run: npm run lint
``
4Semantic Versioning
- SemVer MAJOR.MINOR.PATCH
- MAJOR: breaking API changes (1.0.0 → 2.0.0)
- MINOR: backward-compatible new features (1.0.0 → 1.1.0)
- PATCH: bug fixes (1.0.0 → 1.0.1)
Conventional Commits (enables automated changelogs)
``
feat: add user authentication (#45)
fix: correct null pointer in getUser()
docs: update API reference
refactor: extract payment logic to service
BREAKING CHANGE: rename createUser to registerUser
``
Automated Releases
``bash
npx semantic-release
# analyzes commits → bumps version → creates GitHub release → publishes to npm
``
npm Publishing
``bash
npm login
npm version patch # or minor / major
npm publish --access public
``
5Career in Open Source
- Why Contribute
- Fastest way to level up reading production codebases beats tutorials
- Public commits tell your story living resume
- Networking maintainers often hire contributors
- Reputation that transfers across companies
Starting Points (by difficulty)
1. Fix typos in documentation (lowest friction)
2. Improve error messages to be more actionable
3. Add missing tests to existing functionality
4. Translate documentation to other languages
5. Fix a tagged good first issue
- Going Deeper
- Become a regular contributor to 2-3 focused projects
- Propose and implement features that solve your own problems
- Start your own library that solves a real, narrow problem well
- Great Projects for Learning
- React (facebook/react) excellent PR process
- VS Code (microsoft/vscode) great issue triaging
- Python (python/cpython) rigorous review culture
- Rust (rust-lang/rust) RFC process for major changes
Explore the Full Portfolio
This is the complete portfolio of Sufi Khan Sulaiman, a technology leader specialising in B2B commerce and digital automation. Start from the Home page for the overview, then move through two decades of career experience across FLIR Systems, Lorex Technology, and 1c Platform, and the full catalogue of project case studies spanning headless commerce migrations, AI recommendation engines, and multi-channel fulfilment systems.
The skills and certifications page maps the technical and leadership capabilities behind the work, while the articles and the knowledge base break down the thinking into actionable frameworks. For hands-on learning, the tutorials and applications sections cover practical builds from front-end fundamentals to full-stack web apps.
For consulting engagement, the expertise page outlines service offerings, the ecommerce hub covers platform architecture and automation strategy, and the ecommerce guide (PDF) is a downloadable 55-page field manual. When you are ready to talk, the contact page is the direct line.