Jon Calhoun
calhoun.io · Personal blog · on HN since 2015
Jon Calhoun writes Go tutorials and essays on web application structure, testing, cookies and code generation, and also on remote work pay.
What HN saysHN links it for Go web development guidance, including testing conventions and MVC views, and the author joins threads to explain his posts.
26HN people shared it
7linked it in comments
45stories submitted
238story points
1 year agolast shared
2015people per year2026
Most-shared posts
- 1JSON APIs Are Just Web Applications4 people · 9 points · first shared 2018 · discussion on HN
- 2Why Cant We Settle on a Single Application Structure in Go3 people · 6 points · first shared 2019 · discussion on HN
- 3Homepage3 people · first shared 2017
- 4Securing cookies in Go2 people · 91 points · first shared 2017 · 21 comments on HN
- 5Using Signals with Go2 people · 8 points · first shared 2025 · discussion on HN
- 6How to test with Go2 people · 3 points · first shared 2016 · discussion on HN
- 75 Useful Ways to Use a Closure2 people · 3 points · first shared 2016 · discussion on HN
- 8Golang interfaces2 people · 3 points · first shared 2018 · discussion on HN
- 9Cost of living adjusted salaries are terrible for remote employees2 people · 3 points · first shared 2016 · 3 comments on HN
- 10Using code generation to survive without generics in Go2 people · 3 points · first shared 2017 · 1 comments on HN
- 11Controllers and Views in Go1 people · 42 points · first shared 2015 · 14 comments on HN
- 12Let's Learn Algorithms: An Intro to Bubble Sort1 people · 18 points · first shared 2016 · 1 comments on HN
- 13An Intro to Templates in Go1 people · 8 points · first shared 2016 · 1 comments on HN
- 14Avoiding Common Sync.WaitGroup Mistakes in Go1 people · 4 points · first shared 2025 · 1 comments on HN
- 15Route prefix specific middleware in Golang1 people · 3 points · first shared 2016 · discussion on HN
What HN people wrote when they linked it
K0SM0S · 2019-11-08
Ahh, errors. A programmer's best friend or enemy or both? I may be a rookie, but I'll say this:
- A few years ago I chose to learn Python "The Hard Way"[1] because I already had experience with scripting and a little bit of C++/Java/PHP/Js. While I fell in love with the flexibility of the language — how idiosyncratic it could be made, how quickly fluency came — error handling remained a mysterious dark space to me, a "TODO" for later. [which I didn't because I didn't program much after this first real training]
- I later tried to become "Eloquent" in Javascript[2], and while I can never praise that book enough, the language's paradigm wasn't what made error handling 'click' for me. Now I see, but it took a trip far, far away. [Js isn't my problem space, and when it is I'd rather use TypeScript probably]
- And finally Go. While I haven't finished once "The Go Programming Language"[3] yet — just followed a few great online books/courses so far (notably by Jon Calhoun[4], Xoogler), and only built a few basic things — I can say this: now I get it. I mean errors. I really do.
I think these few points mattered:
- Go has error checking 'in your face' indeed and makes it useful, because passing a value makes sense, and error type is no longer abstracted as in more OOP paradigms, it doesn't feel "otherworldly" to the present code, it's right there in the imperative flow.
- Testing is well-integrated (`_test.go` files; I know, at a basic level, but that's what I expect from a…
usegolang · 2017-05-22
Over the last 9 months or so I have slowly moved from never blogging, releasing videos, or doing anything like that to fairly consistently releasing educational articles related to Go at https://www.calhoun.io , writing a book (+ videos for a complete course) teaching web development with Go, and releasing a few screencasts teaching algorithms with Go.
I say all that to tell you that I didn't just magically start writing every day. I started slowly. Some days I was too worn out to write, but I would try to push myself to spend 10m doing SOMETHING nearly every day.
Maybe that was writing up some quick code to see if it would make an interesting article, or maybe I would take an article idea and turn it into a rough outline, or maybe I would turn a small section of the outline into sentences and paragraphs. It didn't matter as long as I tried to build that habit of doing something.
At first it was hard but it got way easier. And 10m a day really isn't a big commitment.
As you figure out your own process you will find there are many small pieces you can work on each day that slowly help you turn whatever you want to do into a habit.
So my advice is to start with small goals that you can achieve and build on them. Maybe instead of one video a week you should try one every two weeks. If you get an extra video out, great, but if you don't you won't feel like you failed.
And regardless of what you do, don't feel like you have to do something. There are several great blogs out…
mtlynch · 2025-01-10
What I describe in the post isn't a particular tool, just a coding convention to follow in writing tests using Go's built-in testing tools.
It's hard to say how to test your app without more information, but here's a good primer on testing in Go:
https://www.calhoun.io/how-to-test-with-go/
kramer1416 · 2017-11-23
What is the slice of ints at the following URI about?
https://www.calhoun.io/hire-me/
joncalhoun · 2017-02-10
Is https://www.calhoun.io/creating-the-v-in-mvc/ close to what you had in mind?
I need to do a follow-up to that with the type I use to wrap that logic, but I am curious if this is inline with what you are looking for in the examples.
JadoJodo · 2024-08-30
Here are the ones I currently read (most) every issue:
https://thehustle.co, https://zsa.io/the-ergo, https://newsletter.pragmaticengineer.com, https://www.bloomberg.com/account/newsletters/money-stuff, https://www.calhoun.io, https://www.bitsaboutmoney.com, https://inside.com (tech, streaming), https://www.thefp.com, https://ground.news
sesm · 2016-08-22
The correct link is http://www.calhoun.io/cost-of-living-adjusted-salaries-are-terrible-fo…