Photo Credit — Gary Chen

My next blog post will go through an application of the data structures I have discussed in my previous blog posts. This is the LRU Cache which stands for “Least Recently Used”. The cache has a specified capacity and we want to be able to look up values from the cache. If the capacity is reached, we need to get rid of the least recently used value to make room for the valueadded to the cache. If the key is already defined, we update the value associated with the key. …

Photo credit — Heather Barnes

The next topic I will be discussing are stacks and queues. Stacks and queues are also list based data structures. Stacks are useful when you care about the most recently added element. Stacks are known as last in, first out (FIFO). Stacks also keep track of the order in which elements are saved into the stack. On the other hand, queues are a first in, first out (FIFO) data structure. We add elements to the back of the queue (known as enqueue) and take elements from the front of the queue (known as dequeue). A real life representation of a…

Photo Credit — JJ Ying

Today, I am starting a series of blog posts outlining my studies of data structures and algorithms. I recently was selected for final interviews at Amazon Prime Video. I spend a two week period dedicated to learning data structures and algorithms. I decided it would be worth my time to solidify what I studied in preparation for the interviews by writing about it. The first topic I will go into are arrays and linked lists. Arrays and linked lists are both lists that have different characteristics and properties. I will also go into the implementation of linked lists in JavaScript.

Prateek Katyal on

Imagine this scenario… You work for a social media company and your manager asks you hey can you tackle the like feature on the forum we are building for the new application. Simple enough right? In practice, this was a challenging endeavor, at least for me, that involves significant thought. This common problem in application design was a rewarding experience that really made me practice my React chops. In this blog, I will go over some of my thought process and then how I implemented a liking feature on a forum application.

The Structure of the Forum

The forum application…

I recently had a technical interview with a company where I was asked what the pillars of object oriented programming were. I did my best to answer it but came up short and did not get the job. I decided it was time to study what the main principles of object oriented programming were. This blog post will discuss what object oriented programming is on a basic level and what the main principles are of object oriented programming.

Object Oriented Programming

Object oriented programming combines variables and functions into units called objects. Objects are instances of a class. A class…

An application I am currently working on requires that an admin account have differing functionality then the common user. I decided to explore how to implement this on the backend. User permissions are defined with an authorization system. The authorization system allows specific users to have access to certain parts of a website. This blog post will demonstrate the steps to set up a simple authorization system in a Ruby on Rails application.


Ruby on Rails follows a request/response cycle. The request/response cycle indicates how a user’s request flows through an application. The browser sends a request for a…

A promise eventually settled

In this blog post, I will explore the evolution of handling asynchronous actions in JavaScript. An asynchronous action refers to an action that runs while allowing the computer to move on to other tasks while waiting for the asynchronous action to complete. An example of an asynchronous action is making a network request.

Javascript originally used callback functions to handle asynchronous actions. The issue with this was this structure encouraged the use of nested code that became hard to deal with. With the introduction of ES6, integrated native promises were introduced allowing for significantly more readable code. ES8 then introduced…

This week I explored Terraform as part of my exploration of development and operations topics. Terraform is a tool for automating the deployment of infrastructure across multiple providers. In this blog post, I will explain the basics of Terraform and how I deployed my first configuration file.


Terraform allows you to build, change and version infrastructure. Configuration files describe what components are needed to run an application. Terraform generates an execution plan describing what it will do to reach the desired state and executes it to build the desired infrastructure. …

Today, I will be discussing the CSS pre-processing tool, Sass. Sass stands for Syntactically Awesome Style Sheets. Sass is an extension language for CSS. Sass files are compiled into CSS to be interpreted by the browser. With Sass, many of the issues of repetition and maintenance inherent in CSS are resolved. In this blog, I will go over some of the features of sass that I found the most useful.

Compiling SCSS into CSS

Sass can be written by first creating a file with the .scss extension. Sass cannot be directly interpreted by the browser. Each sass file must be…

Today, I will be discussing what I learned about Kubernetes this week. I have been exploring Kubernetes in preparation for junior roles in the dev operations companies. Kubernetes is an orchestrator for containerized applications. Kubernetes is greek for “helmsman” and came out of Google. Kubernetes was donated to the Cloud Native Computing Foundation in 2014. Kubernetes is written in Go and is an open source project.

Monoliths vs. Microservices

Monoliths and microservices are two differing ways of structuring applications. Monolithic applications are the traditional way of building applications. Monolithic applications are one single large code base. These application are single…

Evan Greer

Flatiron School Software Engineering Immersive Graduate, Denver, Colorado

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