With an Infographic and Cheatsheet

Image for post
Image for post

Docker can be confusing when you’re getting started. Even after you watch a few tutorials, its terminology can still be unclear. This article is intended for people who have installed Docker and played around a bit, but could use some clarification. We’re going to make all three core pieces of Docker and give some helpful other commands. It’s going to cover a lot, be sure to click the links.

A nice alternative to Redux

Image for post
Image for post

Context is probably my favorite React feature, especially when using hooks. It’s not bleeding edge tech anymore, so you should take a second to learn how it works. We’re just going to create a Context component, and then read/set values from it in our main app. It’s going to be a very simple project, but one that shows the basics and how you can build on it in the future. Here is the code on GitHub.

What is Context?

Context lets you have global properties and functions that can be accessed from anywhere in your project. This is pretty much what Redux does, and the best way to distinguish Redux from Context is size: Context is smaller and simpler. The model for a Redux Store is usually a intricate, immutable object, whereas with Context it would be more helpful if you think about it like a floating component that can talk to any other component. …

How to talk to yourself like the sane person you are

Image for post
Image for post

When I first heard about “rubber duck debugging” where programmers talk to rubber ducks, I was sure it was hazing. I knew that when a senior dev said I should talk to the bath toy sitting on their desk, they would burst out laughing at me. But no, somehow it’s a real thing. A real, weird thing.

What is it?

What you are supposed to do is get a duck, or any inanimate thing with a face, and you explain your problem to it. Seriously. You, a full grown adult, take out a toy in your place of business and start talking to it. …

Learn how to promisify JavaScript timers

Image for post
Image for post

If you’ve ever wanted to then or await JavaScript’s setTimeout or setInterval, functions, you’re not alone. I’ve had to use these methods a lot at work to deal with some…interesting…third party behavior, so I’ve finally become familiar with promisifying functions. setTimeout may be simple, and setInterval is a tad trickier, so make sure you understand promises.

TL:DR; the code

const sleep = async (ms) => {
return new Promise(resolve => setTimeout(resolve, ms));
const asyncInterval = async (callback, ms, triesLeft = 5) => {
return new Promise((resolve, reject) => {
const interval = setInterval(async () => {
if (await callback()) {
} else if (triesLeft <= 1) {
}, ms);

Format and filter JSON in your terminal

Image for post
Image for post

The jq command line tool is definitely one of my favorite finds. If you’ve ever “prettified” JSON by copying it into VScode, I’m about to save you like 6 seconds by showing how to format (and even filter!) right in the terminal.

Download page, but on mac it’s easiest to brew install jq

Pretty print json

First, look at the difference of this command line output:

Changing the world one student at a time

Image for post
Image for post

The following is the mission statement laid out by the marcy lab founders.

The mission of The Marcy Lab School is to create an alternative pathway into high-growth tech careers for underrepresented and underserved youth.

Our solution rests upon three pillars:

  1. Prepare students to be engineers through a project-based curriculum that is grounded in first principles but driven by real-world application.
  2. Prepare students to be professionals through mentorship, apprenticeships, and leadership development.
  3. Prepare students to confront the inequity that exists in the professional world by promoting critical awareness and by cultivating a supportive learning community that persists through the end of the program and beyond.

If we can execute on these three pillars while catering to the socio-emotional needs of our students, and do so with a price and payment structure that prioritizes accessibility over all else, then we will create the largest pipeline of diverse engineering talent in the country. …

Fibonacci isn’t the only option anymore

Image for post
Image for post

Scrum Pointing Sessions are kind of odd when you stop and think about it. Why do we put so much info into a single number? Why is that number on a Fibonacci scale? Why does the internet want developers to debate this number so hard? We’re playing poker?? Well, turns out there’s another way, one that removes all the guesswork.

First of all, what is pointing?

Pointing sessions are where you assign the level of difficulty to tickets. A Fibonacci scale (1,2,3,5,8…) is usually used so that larger tickets have more of a gap between them. Now, you may be wondering how levels are chosen, and that’s a good question with no real answer. Some people pick a “baseline” ticket as a 1, and then scale all other tasks agains it. Others average factors like risk, time, and complexity together. …

The interview isn’t only about algorithms

Image for post
Image for post

Coding interviews are hard, and algorithms are probably the hardest part. However, it’s not just about knowing the answer, a lot of interviewers are looking at how you tackle the problem. After talking with a lot of seasoned devs, here are some of the things that they look for when interviewing candidates.

Ask questions at the start

The real test of an algorithm question is how you approach it. If you start coding right away, you’re not off to a good start. Take this suspiciously simple task:

Given a set of characters, reverse the order of the characters

Seems straightforward, right? You might be tempted to immediately start coding, but that’s like trying to run before you’ve finished putting on your shoes. Did you ever notice that a lot of in person interview questions are kind of vague? That’s on purpose, the interviewers want to see you fill in the blanks yourself. Even in this simple example, there are some…

Let’s make a chat playground

Image for post
Image for post

WebSockets are the edgy younger sibling of http. They let you maintain an open connection for real time updates. Let’s make a simple chatroom that just displays messages from users. To keep this short, I won’t go into much besides the implementation, so if you need background info check out this explanation.


Were going to make a playground that lets 2+ tabs talk to each other in a little chat room.

The backbone of the internet explained

Image for post
Image for post

When I first started learning JavaScript the term “API” really scared me. Looking back, I think I just assumed it was complicated, so I avoided it, which increased my fear of the unknown. I wish I had taken the time to peak behind the curtain, because there’s really nothing to be afraid of. APIs are just another way to work with programs.

Explaining a GUI vs CLI vs API

Before we get into APIs, it might be helpful to describe the three main ways to interact with a program:

  1. GUI - Graphical User Interface
  2. CLI - Command Line Interface
  3. API - Application Programming Interface

By far, GUIs are the most common, you’re using one right now! Medium is a GUI, it’s just a way for a user to use graphical objects to respond to data. But things were not always so easy. When computers were still new, you would interact with programs using only text. The interface was called “command line.” You still do this if you’ve ever used a bash shell. Basically, if you can click, it’s a GUI; if you just use text, it a CLI. But if you aren’t doing anything at all…it’s an API. …


Mike Cronin

I’m Mostly Focused on JS and web development, but anything coding related is fair game

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