I am a passionate technology leader, engineer and drummer with 20+ years of working experience. Formerly, I lead the technology for Starwood Hotels’ storied loyalty program, Starwood Preferred Guest (SPG) until the merger with Marriott hotels. More recently, I have been consulting for a variety of retail and small to medium businesses to further their cloud, CRM and Loyalty endeavors. My current technology focus is in Go, particularly backend APIs.
A few weeks ago, I gave a presentation to the Boston Go Meetup on Low-Dependency Database Migrations and Integration, in which I discuss how I handle database migrations and database integration in the go-api-basic project that I’ve been working on. In the presentation I mention several tools that I use, so I wanted to add links to them here. Mage PostgreSQL JetBrains DataGrip sqlc The video for the talk is below:
Thoughts on Logging I’ve gone through a few logging phases in my career. I logged everything. It was great, until the logs became meaningless because there were too many. I logged only errors, but in some cases that was not enough. Now I’m somewhere in the middle. I do believe in logging all errors and detailed how I do that in my last post. There are also times when it’s helpful to have some debugging logs in place.
Handling errors is really important in Go. Errors are first class citizens and there are many different approaches for handling them. Initially I started off basing my error handling almost entirely on a blog post from Rob Pike and created a carve-out from his code to meet my needs. It served me well for a long time, but found over time I wanted a way to easily get a stacktrace of the error, which led me to Dave Cheney’s https://github.