Binary Semaphore
We build on the fundamentals: correct concurrency, honest abstractions, and systems that stay reliable as they scale.

Services
What we work on
The kinds of problems we keep coming back to, in our own tools and when someone asks for help with theirs.
Tech stack
What we build with
We are not loyal to any one tool. We reach for what fits the problem and what we can keep reliable in production. A fairly complete map of what we work with:
- RAG
- Agents
- Pipelines
- MCP
- LangChain
- LangGraph
- Protocol Buffers
- OpenTelemetry
- Vector search
- Event-driven
- System design
- Agile delivery
How we work
Small parts, coordinated well
We keep the moving parts few and the boundaries between them clear. Most of a project is understanding the real problem before writing the code that solves it.
- 01
Understand the problem
We map the real problem and its constraints before writing code, so we build what is needed and not the longest feature list.
- 02
Design the shape
We decide the few well-defined parts and the boundaries between them. Most mistakes are cheaper to fix here than after the code is written.
- 03
Build it honestly
Simple, legible code with interfaces that tell the truth. We spend the effort on the essential complexity and keep the accidental kind out.
- 04
Ship and keep it reliable
We get it into production in small steps, watch how it behaves, and design for failure so it holds up as it grows.
FAQ
Questions, answered plainly
What is this site?
Two engineers showing their work. We build tools like inode and notchify, write threads about what we learn, and put study notebooks up for people preparing for exams. When someone brings us a real problem, we help with that too. Most of it sits across applied AI, distributed systems, and developer tools.
Is everything open source?
What we build for ourselves usually is. When we help someone with their own project, the code is theirs, and whether it is opened up is their call.
Can you help with my project?
Often, yes. Write to us with the actual problem. We take on a small number of things at a time and see them through, from the first design to something reliable in production, and we say no when we are not the right people for it.
Do you do design too?
We are engineering-led. We keep interfaces simple and honest and can take a product end to end, but for heavy visual or brand design we would rather partner with someone who does that full time.
What does your stack look like?
We lean on Go for backends and systems work, with Python and TypeScript where they fit. We are not loyal to any one tool; the tech-stack section above is a fair map of what we reach for.
How do we start?
Get in touch with a short description of the problem. The first conversation is about understanding it. There is nothing to buy.

Let's build something
Using the tools, building something, or just want to compare notes on developer tooling? Get in touch.
Binary Semaphore · built in Go.