Creating Light in Dark Moments

The years 2020 and 2021 (so far) are a scary place. They are filled past the brim with global and national problems with no clear path to resolution.

How many people will die from the COVID pandemic? How can I make any real impact on the health of the world?

How can the United States break down, and repair from, decades of systemic racism? What can I, as an individual, do to be a part of the solution?

Insert any number of national political issues championed by the left or right with the need for…

A while back, I wrote a post concerning Working with Files in Ruby reviewing some fundamental methods to use when reading and writing text files in Ruby. Here I want to turn our attention to building out similar functionality for working with CSVs.

We will be using the films.csv found here. Go ahead and clone that down so you can play along. In your editor make sure to require "csv" so that you can access Ruby’s CSV class.

You too can be a Guardian of the CSVs img credit

Reading from CSV in Ruby

The Ruby Docs tend to be an excellent resource which are quite user friendly for new developers. However, I find the docs…

Much of the work of a backend developer is to build the structures that organize, analyze and pass around data. Unfortunately, your data will likely not all come in the same form, some may be from user input, some from an API, and some from CSVs. Reading and writing to files often trips up newer developers. I believe this may be due in part to the fact that a lot of the work is abstracted by Ruby. It feels like you need to do so much, but there aren’t that many methods you need to get the job done.


After completing my first linked-list someone somewhat condescendingly told me I really should have built it recursively, as if completing a linked-list wasn’t something to be proud of on its own. This marks both the first time I had heard of recursion and the beginning of my intimidation of it. By the time I built out a merge sort I was using recursion, but certainly not understanding it. I believe someone told me “you just have to believe that it will work.”

I created some visual models to help me understand what was going on, but until I knew more…

Breaking Down OmniAuth, an OAuth library for Ruby

As a new Developer, I had little trouble understanding the concept of OAuth, and how to hand-roll a version or two. When it came to OmniAuth though, it was hard to grasp what was going on, where, and how. And, to track the patterns I was seeing across OmniAuth gems.



OAuth, or Open Authorization is a protocol for users to authorize websites to access their information without handing over a password.

If you are hand-rolling OAuth, the basic flow looks something like this:

  1. Application is registered with intended provider(i.e. Google, Facebook, GitHub, etc) and a client_id and client_secret are obtained
  2. Application sends out a request to the provider (i.e. Google, Facebook, GitHub…

Extracting a Linked List Insert method in Ruby

The Spork

Most people have had at one point or another in their lives, the unfortunate experience of eating with a spork. Aside from my friend Lee , everyone I know hates sporks. They are useful as neither a spoon nor a fork. One tool that does two things in a subpar manner.

This is at the heart of the Single Responsibility Principle(SRP). This idea, coined by Robert C. Martin as “A class should have only one reason to change.” …

Six years ago, I was a Full Time Volunteer with Amate House where I served as an AmeriCorps Member teaching first grade in Chicago’s Englewood neighborhood. For the next five years, I worked in a number of communities with negative reputations whose community members were most often delightful, hard working people.

Suddenly, or not so suddenly, last year I made the somewhat drastic choice to step away from being an Educator to become a Software Developer (Thanks in large part to LightBot, CodeAcademy, and then Turing School.). …

Ali Schlereth

Software Engineer at TaxJar

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