Photo by Guillaume Bolduc on Unsplash

In the past, integration/E2E tests have been hard to orchestrate and getting different applications coordinating with each-other in CI has been non-obvious. However, with the meteoric rise of microservices and containerization, it’s no longer an option to skip this layer of testing if we want to have the most confidence in our applications. You can read more about the differences between unit, integration and E2E testing here. Fortunately, as Cypress points out:

“The web has evolved. Finally testing has too.”

Cypress + Docker + CI = ❤️. Cypress and Docker allow you to completely decouple the testing framework from the…


Photo by tian kuan on Unsplash

Why do we write tests at all?

I write tests because I want to be confident about two things:

  1. That I didn’t break any existing code. (Existing tests to the rescue).
  2. That my new code works as intended. (New tests, written along with a new feature, are my assurance here).

Which type of test gives us the most confidence / bang for our buck?

Types of Tests

There are many different types of tests but the major players are End To End, Integration and Unit tests.

End To End — Testing full blown user flows in the browser.

  • These tests consist of minimal mocks (i.e — you really are spinning…


Photo by Clément H on Unsplash

**Last Updated — Jan 2021**

I thought it would be fun to share some of the steps I follow whenever I setup a new MacBook for development (when not using Apple’s Migration Assistant).

Obviously, you will have to install additional dependencies depending on the specific tasks you are trying to tackle and a lot of this comes down to personal preference but I think the following is a great baseline.

I would love to hear about what others do when they get a new machine too. …


It’s a question that most scrum development teams ask every sprint. What works for one team may not work for another team.

However, establishing some guidelines and daily practices can provide enormous benefits, especially for medium-sized development teams (4–9 people) that consist of engineers with a wide range of skill levels and skillsets.

By having the team agree to follow an established procedure, less time and decision-making is needed each sprint for the boring stuff like ticketing and tasking.

I have seen the following standards promote an agile, feature-oriented mindset that allows developers to more easily hop on tickets throughout…


Mmmystery started when three other developers and I were discussing how people choose where to eat. Yelp is obviously the top dog when it comes to online reviews of local businesses and eateries. Some people I talked to said that they don’t even consider a restaurant that has less than three stars on Yelp. Others said that they go straight to the food pics when deciding where to eat. A friend of mine explained that whenever she logs into Yelp, she quickly sees her favorite, highly-rated restaurants and just picks from the places that she’s already familiar with. …


Parking sucks. Especially in Los Angeles and especially in Santa Monica. A group of four developers, including myself, wanted to build an application to help alleviate some parking pain. There are already a lot of parking apps out there but none were quite what we were looking for.

Take a look at one of the existing apps we found:

Information Overload

Way too many options and things to look at. Plus, it was extremely slow as there were so many elements constantly updating and rendering. The most intuitive applications do not have an endless amount of unnecessary features or overly complicate the…


“Real-time” is a buzzword that will only get more popular in the future. The term itself is a little indistinct and I can’t help wanting to roll my eyes every time I hear it. If “real-time” is a thing, is there such thing as “fake-time”?

When an app or business states that the service they provide is “real-time”, it depends on the context. It may mean that the service delivers information as it happens. It may refer more specifically to live audio and video streaming. It may even refer to a talk show on HBO with Bill Maher.

With the…


Ian Johnson, @enjalot, is creating Building Blocks — “a simple web application for editing code samples that are compatible with http://bl.ocks.org which is the de facto medium for sharing d3.js code examples.” His kickstarter campaign for the project is already funded twice over with 22 days left to go. It’s currently easy to go to bl.ocks.org and quickly be inspired by various projects. However, it’s more difficult to directly play around with the code. Ian Johnson is going to change this.

Building Blocks will allow many users that were previously unfamiliar with D3 to easily get their hands dirty with…


I started learning web development about three years ago. Many programmers and web developers that I have met started learning at a young age — high school or earlier. I, on the other hand, decided to start learning the web from scratch in 2012 after I had graduated from college. I always had an interest in computers and tech, but throughout my institutionalized academic career my passion was for physics and mathematics. So I had never even written an HTML tag until I started self-teaching.

I was quite lost when I started my self-education journey. I thought about going back…


What is a fast-forward merge?

Let’s say we create a new, empty Git repository. We do an initial commit on the master branch, then checkout a new branch, new_branch, and make a couple commits on it.

We might have a Git history that looks something like this:

git history

new_branch is a couple of commits in front of master. If we checkout master and merge with new_branch, we get this:

Quinton Aiken

JS is ♥

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