Chris Hines
medium.com/@cep21 · Personal blog · on HN since 2016
Chris Hines (Jack Lindamood), a Go developer, writes about Go library design, interfaces, and infrastructure tooling choices from running a startup.
What HN saysHN commenters link his posts as guidance on Go practice, including 'accept interfaces, return structs' and why to avoid Context.Value, and find the arguments convincing.
15HN people shared it
2linked it in comments
14stories submitted
47story points
2 years agolast shared
2016people per year2026
Most-shared posts
- 1After using both, I regretted switching from Terraform to CloudFormation4 people · 22 points · first shared 2019 · 1 comments on HN
- 2Go’s alias proposal and all my concerns of Google controlling Go3 people · 8 points · first shared 2016 · 1 comments on HN
- 3What “accept interfaces, return structs” means in Go2 people · 2 points · first shared 2016 · discussion on HN
- 4Design better software abstractions using bipartite composition1 people · 5 points · first shared 2019 · discussion on HN
- 5Every infrastructure decision I endorse/regret after 4 years running a startup1 people · 3 points · first shared 2025 · discussion on HN
- 6Go client library best practices1 people · 3 points · first shared 2016 · discussion on HN
- 7Aspects of a good Go library1 people · 2 points · first shared 2018 · discussion on HN
- 8Interface Wrapping Method Erasure: An Unsolvable Go Problem1 people · 1 points · first shared 2019 · discussion on HN
- 9Using Go 1.13’s new ReportMetric API to benchmark t-digest implementations1 people · 1 points · first shared 2019 · discussion on HN
- 10How to correctly use context context in go 1 7 8f2c0fafdf391 people · first shared 2020
What HN people wrote when they linked it
ChrisFoster · 2020-08-31
I liked the following blog post where Jack Lindamood argues pretty convincingly against using Context.Value in nearly all circumstances, and gives some nice alternatives.
https://medium.com/@cep21/how-to-correctly-use-context-context-in-go-1…
kornish · 2016-12-12
A rule of thumb I've heard and agree with for libraries is "accept interfaces, return structs".
Rationale here: https://medium.com/@cep21/what-accept-interfaces-return-structs-means-…