Patterns, structures, and the ideas between them
Once by the book.
Once where it matters.
Learn the shape of an idea, then see what happens when you use it. Explore patterns, data structures, and everyday programming decisions, with the connections between them kept in view.
Want to help shape heyrian? Share feedback or contribute
Find your way into the same world.
Start with the question you have. Follow the connections as you go.
-
Design patterns
Recognize the shapes behind how software creates things, composes behavior, and shares responsibility.
Creation and lifecycle · Composition and interfaces · Behavior and collaborationExplore design patterns -
Data structures & algorithms
Store it, find it, work through it. Understand what each operation costs and which structure fits the job.
Foundations and cost · Sequences and ordered work · Lookup, membership, and evictionExplore DSA -
Applied algorithms
Find a near match, plan a route, shuffle fairly, or shrink an image. Discover the algorithms behind useful little surprises.
Text, names, and changes · Routes and connections · Matching and making choicesExplore applied algorithms -
Concepts & practices
The ideas underneath the code: language models, types, errors, concurrency, testing, and stored data.
Design principles and language mechanisms · Language and runtime models · Data modeling and type designExplore concepts & practices -
Architecture
Follow a request, a change, and its data through the frontend, the backend, and the parts in between.
Client and server · Failure and evidence · Decompose a systemExplore architecture -
Working with agents
Use AI to write code you can still trust. State the rules, let the agent work, then check the structure instead of every line.
Enforcement · Architecture as intent · Testing without agreementExplore working with agents -
DevOps
Practical software delivery and operations: improve feedback, release safely, and run services reliably.
DevOps foundations · Version control and change flow · Continuous integrationExplore DevOps Projects
Put the ideas to work. Start with focused backend and frontend exercises, then build toward projects with failure modes, recovery, and evidence you can explain.
Beginner paths · Full project briefs · Chaos drillsmoving
From idea to consequence
What changes when the idea leaves the page?
A pattern is easy to recognize in isolation. The interesting part begins when it meets state, time, and failure. Start with Factory or Stack, then follow the connections into the broader ideas.
Stack
Resume nested compost-hub procedures by restoring the newest saved cursor first
TypeScriptGoRust
When the happy path ends
What happens when the system repeats?
Senior engineering begins where “we have retries” stops being an answer. Follow what a timeout means, what can safely happen twice, and which state the next attempt can trust.
Start with the boundary. Name the uncertainty before choosing the mechanism.
Timeouts, deadlines & races
Timeouts, end-to-end deadlines, and competing outcomes
TypeScriptGo
Still taking shape
A living map of software ideas.
This site is a work in progress. More lessons, comparisons, and experiments will arrive as each idea earns a clear example and a useful connection to the next one.