Thoughts, stories, and ideas about software development and technology.
The difference between %v and %w in fmt.Errorf, and why %w is what makes errors.Is and errors.As work correctly once an error crosses package boundaries.
sql.NullString and friends solve the scanning problem but leak Valid/String objects into your JSON API. Pointer types fix scanning and serialization in one move.
Two tags, two completely different readers: what db and json actually do on a Go struct, and why your database schema should not dictate your API.
A practical guide to how and when you can use WHERE and HAVING clauses in your SQL queries.
A practical guide to scaling up vs scaling out: vertical and horizontal scaling, when to use each, trade-offs, and implementation considerations for backend systems.
What functional and non-functional requirements are, how they differ, and how to capture and specify performance, security, scalability, availability, and more.
A practical guide to push, polling, long polling, SSE, pub/sub, request-response, and synchronous vs asynchronous communication in backend systems.
What is the OSI Model?
What are Backend Architecture Designs?
Go, also known as Golang, is an open-source programming language created by Google.
Page 1 of 2