Software Engineer
The generalist path. Learn the data structures and algorithms every engineer is expected to know and build on both sides of the stack. Then learn to write code that survives change — clean code, SOLID, design patterns, test-driven development, modular and clean architecture, domain-driven design — and finish by preparing for the coding, system design and pair-programming interviews product companies run.
Your progress
0 / 20
required steps
+ 0/4 optional
- 01
Foundations
The computer-science core that interviews and everyday code both lean on.
- Lc
Step 01 · Roadmap · 9 lessons · optional
Learn to Code
Never written a program? Start here. Skip it if you can already write loops and functions.
0/9 - 02Data structuresArrays, hash maps, stacks, queues, trees, heaps and graphs — and what each operation costs.
- 03Algorithms & complexityBig-O, sorting, binary search, recursion, BFS/DFS and dynamic programming.
- Gt
Step 04 · Roadmap · 10 lessons
Git & Collaboration
Every change you make as an engineer goes through Git and a pull request.
0/9
- 02
Build across the stack
Ship a service and a UI, so you can own a feature end to end.
- Go
Step 05 · Roadmap · 21 lessons
Backend with Go
Design, build and ship HTTP services backed by PostgreSQL.
0/19 - Fe
Step 06 · Roadmap · 21 lessons
Frontend Developer
The other half of every feature: the browser, TypeScript and React.
0/20
- 03
Code that lasts
Write code the next person — usually you — can read, change and trust.
- 07Clean codeNaming, small functions, guard clauses instead of arrow code, and comments that earn their place.
- 08DRY, KISS, YAGNI & CQSCoupling, cohesion and the rules of thumb that keep code simple.
- 09SOLID principlesFive principles for code that bends instead of breaks, in Go and TypeScript.
- 10Design patternsStrategy, adapter, decorator, observer, factory and options — and when not to use them.
- 11RefactoringCode smells, small safe steps and characterization tests.
- 04
Testing & collaboration
Build confidence into the way you work, alone and with others.
- 05
Architecture
Structure a codebase so it can grow with the team and the business.
- 15Modular designPackage by feature, api/implementation splits and the modular monolith.
- 16Clean & hexagonal architectureThe dependency rule, ports and adapters, and a Go service laid out that way.
- 17Domain-driven designUbiquitous language, bounded contexts, aggregates and value objects.
- 18Design docs & ADRs optionalWrite a decision down before you build it, and record why you made it.
- Sd
Step 19 · Roadmap · 21 lessons
System Design
From one well-structured service to systems of them: scale, data, queues and failure.
0/16
- 06
Get hired, then grow
Prepare for the interview loop product companies run — and for the job after it.
- 20Coding interviewsThe patterns behind most problems, and how to solve out loud.
- 21System design interviewsA 45-minute structure and what interviewers actually score.
- 22Pairing & take-home interviewsBuild a small, tested, extensible program under time pressure.
- 23Behavioral interviews optionalStories that show scope, ownership and judgment.
- 24Growing to senior optionalScope, ownership, influence and the habits that get you promoted.
- You made it.