Learn to code by coding - try our free CS courses

Well, We Might Have a Video Call for That!


This article contains some of my thoughts on communications for distributed teams and is a response to No, we won’t have a video call for that! by Florian Hass. Read his article first if you haven’t yet, he makes some great points! I really enjoyed Florian’s article, and while we agree on a lot of …

Read more

The Collapsing Quality of Dev.to

collapse hosue

A few years ago I found Dev.to, and was delighted by the writing experience. It felt like a platform with all the conveniences of Medium’s writing tools but wasn’t missing the features that developers need, like code blocks and markdown. I still think Dev.to probably has the best writing experience of any third-party blogging platform …

Read more

Death, Taxes, and Database Migrations


In this world, nothing can be said to be certain, except death, taxes, and migrations. Earlier in my career, I would come to a new project and inevitably a hectic migration would be underway. It’s not always a “stop the world” change, it can be as simple as switching from NPM to Yarn, but something is …

Read more

Keep Your Data Raw at Rest


Data at rest is more dangerous than data in motion. I want to talk about a simple rule of thumb that has served me well over the years: “If you have data that depends on other data, try not to store it.” If you follow this rule, you can deliver your code faster, mainly because …

Read more

What are UUIDs, and should you use them?


A universally unique identifier (UUID) is a 128-bit format for creating IDs in code that has become popular in recent years, especially in relation to database keys. By using UUIDs, you ensure that your ID is not just unique in the context of a single database table or web application, but is truly unique in …

Read more

Beautiful Language and Beautiful Code


“Dead Poet’s Society” is a classic film, and has become a recent favorite of mine. There’s a scene in particular that I enjoy, where Robin William’s character explains that it’s bad practice to use terms like “very tired” or “very sad”, instead we should use descriptive words like “exhausted” or “morose”! I wholeheartedly agree with …

Read more

Intro to the One-Time Pad Cipher

eyeball art

In cryptography, the one-time pad, or OTP is a way of encrypting information so securely that it’s impossible to be cracked. That said, OTP has a major drawback in that it requires both parties to have access to the same key before a message is encrypted. How the one-time pad cipher works When using the one-time pad, a …

Read more

Building a Red-Black Binary Tree in Python

red black

A red-black tree is a kind of self-balancing binary search tree. Each node stores an extra bit, which we will call the color, red or black. The color ensures that the tree remains approximately balanced during insertions and deletions. When the tree is modified, the new tree is rearranged and repainted to restore the coloring …

Read more

How to Write Insertion Sort in Go


Insertion sort builds a final sorted list one item at a time. It’s much less efficient on large lists than more advanced algorithms like quicksort or merge sort. Insertion sort is a simple algorithm that works just like you would arrange playing cards in your hands. A slice is first split into sorted and unsorted …

Read more

Check for Standards Before Creating a New One


I recently had a ticket opened on my team’s backlog board requesting the ability to bypass our API’s caching system. For context, our front-end team uses my team’s API to make fairly heavy requests to ElasticSearch, and one of the features of our API gateway is to cache the results of heavy aggregations for ~30 …

Read more