Image for post
Image for post

In a COVID-ridden world, traditional in-person conferences are few and far between. The days of waking up early, dawning your badge/lanyard, and picking up as much swag as you can from the exhibit hall have paused temporarily, but will hopefully return in the future. However, in the meantime, we cannot stop the valuable live sessions, information sharing, and excitement that conferences bring about.

Virtual conferences are becoming more frequent, and as an interesting side effect, have leveled the playing field. Traditional conferences can become extremely costly, and the more money the conference hosts have, the more market share they are…


Let’s Focus on Something Else

Image for post
Image for post
Photo by Pass the Honey on Unsplash

When hearing about blockchain, distributed ledger technology, and cryptocurrency the first thing that you are probably attracted to is the financial aspect. The prospects of getting rich quick from one of the many bubbles, initial coin offerings (ICO), or “decentralized finance” crazes are often more tantalizing than the call of the siren, but we need to break away from this. Distributed ledger technology (DLT) and blockchain is so much more than just a method of value transfer, decentralized banking, or asset exchange. It is a way to break away from the centralized web that places so much emphasis on the…


The implications of “The Impostor”

Image for post
Image for post
Cover art for the game “Among Us”

Among Us is one of the latest crazes to hit online gaming and the streaming platform Twitch. It has a simple premise: players complete tasks on a ship, but among them are impostors that attempt to sabotage and kill the other players while avoiding detection. The game is cross-platform across PC and mobile, lending to its viral success. However, this is not a game review…

The idea of an “Impostor,” or malicious actor, among a group of individuals working towards a common goal is what makes one of the biggest problems in computer science and theory so complicated. This problem…


Extracting Value from Comments

Image for post
Image for post
Photo by Fabrice Villard on Unsplash

This is the second part of the walkthrough “Cool Stuff with Go’s AST Package.” If you have not yet had the opportunity to review the first article, I recommend starting there to become acquainted with abstract syntax trees, the Go package itself, and the facilities provided by the package for traversing Go’s AST.

What we Will be Covering

In the first article we introduced NATS and how it can be used to create a microservice that publishes regular heartbeats on a message topic. …


Ability to Recreate One’s Self

Image for post
Image for post
Photo by Markus Spiske on Unsplash

The “Beyond the Source Code” series of posts will explore source code beyond its use as a set of instructions that direct a process or set of processes. We will dive in topics such as readability, metaprogramming, quines, and many other topics that look at source code in a different light. The motivation for this series comes from the idea of making source code work for developers, rather than the developers having to work against the source code.

In the previous article we dove into readability and understanding of source code, with a focus on self-documenting code, comments, and documentation…


Time for a bit of tough love

Image for post
Image for post
Photo by Sarah Kilian on Unsplash

Everybody in the business of working with ideas has heard the phrase “ideas are a dime a dozen.” Yet for some unknown reason, everybody holds onto their ideas like they are the most precious diamond on the face of the planet. Yes, you should cherish and care for your ideas, but do not become obsessive. Ideas are in essence extremely cheap, with many bordering completely worthless due to intractability, no market fit, or a lack of resources to see the idea to fruition. Learn when to move on.

Face the Fact

You will come up with bad ideas, especially if you go out…


The Package for Dissecting the Go Language

Image for post
Image for post
Photo by engin akyurt on Unsplash

Let’s explore the awesome builtin packages that ship with Go, and the cool stuff you can do with them. I will pick some of the more “obscure”, “complex”, and/or special purpose Go packages, especially ones that set the language’s builtin library apart from other languages.

The first stop is the go/ast package. This package is used to explore the syntax tree representation of a Go package, and can be used to perform static analysis, code linting, metaprogramming, and anything that requires a structured interpretation of Go source code.

This walkthrough is broken up into three parts. We will explore traversing…


A Curated List of Podcasts for Programmers and Software Engineers

Image for post
Image for post
Photo by rupixen.com on Unsplash

As a programmer, turning off my brain is something I am not good at. Programmers are always thinking about that latest bug that’s pestering them, an architectural redesign for their web application, or what to name a variable. Regardless of what’s on their mind, a programmer usually has a train of thought that is more than a mile long, constantly having train cars added on.

One of the ways I have found to keep this train moving, but let the steam engine cool down a bit, are technical podcasts. Technical podcasts allow me to keep a problem framed in my…


Image for post
Image for post
Photo by Vinicius "amnx" Amano on Unsplash

One day on a whim, I decided to write a program in a goofy language called “Brainf**k” (you can fill in the rest of the letters). Starting off as a joke, I realized that I was learning a lot more along the way. Learning Brainf**k has had a profound impact on my thinking as a software engineer, and I think everybody can benefit from learning it. The program I wrote can be seen below. If you want to know more about this amazing language, please read on.

++++++++++>>>>++++++++++[>++++<-]>+++>++++++++++<<<<<<[[->+>+<<]>[-<+>]>[>>>.<<<-]>>>>.<<<<<<-]

Table of Contents:

  1. Esoteric Languages

2. This Language is F***ed Up. But Really Cool…

3…


The “Beyond the Source Code” series of posts will explore source code beyond its use as a set of instructions that direct a process or set of processes. We will dive in topics such as readability, metaprogramming, quines, and many other topics that look at source code in a different light. The motivation for this series comes from the idea of making source code work for developers, rather than the developers having to work against the source code.

In this particular post we will be exploring the readability of source code and the implications of having high readability vs low…

Cooper Thompson

I am a software engineer with a love for automation and systems design. I believe source code is the key to a world of unlimited creativity.

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