Sign in

Software engineer writing about programming, learning, & more. Highly caffeinated. In a committed relationship with the Oxford comma.

This post is a follow up to my previous article, Go: Concurrency vs Parallelism.

The previous article, linked above, introduced the concept of concurrency in Go. In this article, we will discuss channels and how we can leverage channels in a program that is structured for concurrency.

What is a channel?

Goroutines are how…


Non-technical tips to guarantee a positive experience

Recently, I spent a few weeks job hunting full-time in search of a new engineering role. Ultimately, the job hunt was a great experience for me and I learned a lot of lessons along the way. I was able to obtain 3 offers in just 3 weeks on the market…


Note: I highly recommend watching ‘Concurrency Is Not Parallelism’, a talk given by Rob Pike (@rob_pike) in 2012. Not only is Rob the expert on Go, he is also excellent with cute gopher analogies.

Is concurrency the same as parallelism?

I admit that when I first heard the term concurrency, I figured it was synonymous with…


This article will break down Manacher’s algorithm clearly, so that the reader can build a solid mental model. But first, we need to briefly break down the problem at hand — finding the longest palindromic substring.

Longest Palindromic Substring

If just reading the above sub-heading has you nodding your head, you can probably…


Object.defineProperty() is a static method defined on Object. MDN states that

Object.defineProperty() defines a new property directly on an object, or modifies an existing property on an object…

When I first came across this method, I wondered if defining a property with Object.defineProperty()


When using CloudFront to distribute content stored with Amazon S3, you may at times want to force the browser to download the content rather than display it in the browser. I ran into this scenario when building Cloudbeam.

Cloudbeam generates signed URLs in order to serve private content to authorized…


Recently I built this Rails 6 application, Cloudbeam, with my good friends Kyle Ledoux and Jimmy Zheng. The application also leverages AWS S3 and CloudFront. You can visit Cloudbeam on the web or read on to learn more about this project and how it was built!

About Cloudbeam

Cloudbeam is an application…


I started leading Ruby study groups at Launch School in the fall of 2016. Currently, I’m running several JavaScript-focused study groups. Over the years, I’ve met with many students who have come to Launch School from a wide variety of backgrounds. …


What is open-source software?

Open-source software (OSS) is simply software in which the source code is accessible to anyone. Users can view the source code, make changes to the code, and redistribute it.

OSS may be licensed under a variety of licenses. The key, according to the Open Source Initiative, is that the license…


The Fisher-Yates Shuffle is named after statisticians Ronald Fisher and Frank Yates, who developed the original algorithm in 1938. In 1964, Richard Durstenfeld developed a more modern version of the algorithm which improved upon its asymptotic complexity and was optimized for use with computers. Donald Knuth published this modernized version…

Elizabeth

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