With so many REST APIs floating around today, you’ll at some point find yourself in a situation where you need to call multiple endpoints to build a proper representation of your business object. This is not a difficult task, just create a new object, call the various APIs for data, populate the proper fields and you’re on your way. This works great if all your calls are fast, but it starts to become a pain if one or all your API calls take a lot of time.

In this post we’ll take a look at how you can make these…


I wrote another article about this same topic which utilized a pure Docker solution to test database code without mocking. It was a cool solution, and worked really well, however it was a bit heavy-handed. It required special scripts, a certain folder structure, and could be hard to follow at times. All that being said, it got me what I was looking for, which was no mocking of my database tests! You can read that article here: Unit Test SQL in Golang, Without Mocking, Using Docker (Go, Postgres, Docker)

Someone posted on that article and suggested I look into TestContainers


Engineers these days have so many cool APIs to work with. You can literally find an API for a particular need with only a Google search. We have Twilio for sending emails/faxes/text messages, The Rundown for real-time sports scores and odds, or Airbnb to manage your listings. You could also head over to RapidAPI and discover literally hundreds of APIs for any need.

Making outbound HTTP calls in Golang is very easy, but when you’re testing code that consumes a third-party API, the last thing you want to do is make a real call out for this. There are many…


Image from Testing Whiz (https://tinyurl.com/y2k27j33)

UPDATE: I’ve written a companion article using TestContainers, based on a comment that I should look into that package. It accomplishes the same goal, testing database code without mocks. You can read it here: https://atkinsonbg.medium.com/unit-test-sql-in-golang-without-mocking-using-testcontainers-go-postgres-docker-4f61574b1989

Recently while working on an API that interfaced with a database, I mistakenly updated our ORM package to the latest version. The code compiled fine and all the tests passed with flying colors. However, in reality, the latest version of the package brought in breaking changes, which were very subtle. My code which worked great before, would now connect the database fine, run its queries…


There have been many times in my career or when working on personal projects, that I have needed some open-source executables to help me complete my task. I have used things like Weasyprint, WKHTMLTOPDF, Exiftool, Ghostscript, the list goes on and on (these are just some of the more recent ones). These are all fantastic tools, and I’m sure there are hundreds more out there. They have saved me countless hours of work by providing amazing functionality that I either don’t have to write or just don’t know where I would even begin if I had to! …


Background image courtesy of Federico León: https://www.youtube.com/watch?v=o0icpLRhFKQ

Usually, when I start out to learn something for the first time, I hit up the usual suspects: Pluralsight, Udemy, Linkedin Learning, etc. I really love learning programming topics via video training. For me, I find the instructors usually drop little tidbits of knowledge throughout the course, which is often not included in blog posts. However, when really trying to deep dive into unit testing in Go, I found these resources lacking.

Unit testing in Go is a pretty straight-forward task, which is awesome. And this is also why you can find a lot of resources on the basics of…


99% of the time, I can simply unit test my project locally without any issues. However, occasionally I run into a situation where I need some 3rd party software installed for the application to work properly, which I just don’t want to install on my laptop. You may also not be able to install software on your laptop/PC due to security rules of your organization. This usually results in incomplete unit tests, as I can’t fully test the functionality of the code dependent on the 3rd party software. …


Go comes with a couple of very powerful and simple to use templating packages. These packages make it crazy easy to generate text output that is based on a template and married with data to produce a final output. A simple visualization of this is below:


I’m a huge fan of docker-compose for local development. Whether professionally or personal projects, most of my work these days is building micro-services that run in Docker containers. In addition, most of these containers at some point talk to each other or with a database, so docker-compose is always in the mix.

If you’re not using docker-compose for your local Docker development, let me start with, you’re doing it all wrong! Compose offers so much for local development and there will be a whole other post about that subject later. What makes compose so great is its ability to allow…


I recently responded on LinkedIn to a developer who posted the following question:

“As a junior developer, all I can do now is to take online courses on codecademy, freecodecamp, edx, coursera and add the certifications to my resume. do you think if it’s a good idea to do that?”

A lot of folks chimed in with various thoughts on the matter, specifically around the certification part of the question. However, right now there are a lot of questions like these floating around LinkedIn, generally around the topic of Coding Bootcamps. …

Brandon Atkinson

A software engineer who really enjoys learning new tech! Connect with me on LinkedIn: https://tinyurl.com/y5eb48gm or GitHub: https://github.com/atkinsonbg

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store