Photo by Moritz Mentges on Unsplash

Remember the 90s? Pokémon, Beanie Babies, Crazy Bones, Super Nintendo, Pogs, and neon windbreakers… Those were the good old days. The web was a simpler place too, with barebones websites composed of mostly text and hyperlinks. I remember it like it was yesterday. Or, wait — 30 years ago?

I recently found Wicked Coolkit — a nifty retro-themed toolkit — and I thought it would be fun to play around with it to briefly relive those years. The toolkit includes a hit counter, webrings, and developer trading cards.

If you’re feeling nostalgic too, let’s explore some web development trends from…


A look at the newest testing framework

Lab equipment
Lab equipment
Photo by Testalize.me on Unsplash.

With a long list of end-to-end (e2e) test frameworks available to choose from, it’s hard to know which one you should be using. Cypress and Selenium are leading the market as the most widely used options, but there’s also Appium for mobile app testing, Puppeteer for automating tasks in Chrome, and Protractor for Angular and AngularJS applications, just to name a few.

Recently, a newcomer has joined the pack: TestProject, a free, open source test automation platform for e2e testing that helps simplify web, mobile, and API testing. …


How to use Slack effectively and respectfully at work

Photo by Scott Webb on Unsplash

Slack is a communication lifesaver. It makes it simple to organize messages, retain searchable message history, communicate asynchronously, and keep everyone in the loop.

Slack can also be a productivity nightmare of never-ending interruptions.

The key to using Slack effectively is for everyone to commit to having good Slack etiquette. Let’s look at a few guidelines to see what this means:

Default to public channels, then private channels, then direct messages

Information sharing is one of the beauties of Slack. When you use public channels to communicate announcements, discuss ideas, ask questions, and troubleshoot problems, everyone in the channel can participate.

On the flip side, if you rely solely on…


Photo by John Barkiple on Unsplash

All code repos should use merge request templates.

My goal in this article is to convince you that the above statement is true. Let’s dig in!

The professional world is complex

Let’s start with a little background for context. The professional world is complex. Take a look at just about any industry, and in it you’ll find complexity. Let’s examine, for instance, the fields of medicine, aviation, and construction. These fields may seem vastly different, but they also share many similarities.

First, each field contains too much information for any one person to know. Doctors specialize and super-specialize to occupy a specific niche. A doctor…


Photo by Icons8 Team on Unsplash

Software engineers make a lot of money. And yet, blogging, for most tech writers, pays very little. How do we reconcile these two truths?

To make the numbers more concrete, let’s imagine a software engineer makes $100,000 per year. If they work 40 hours per week, 52 weeks per year, that comes out to roughly $48.08 per hour.

A salary of $150,000 would be $72.12 per hour, and a $200,000 salary would be $96.15 per hour.

That’s a lot of money. And yet, most paid tech writing opportunities advertise payments of anywhere from $100 to $350 per article. …


Is it possible? Yes! Should you do it? Maybe!

Building a user interface
Building a user interface
Original artwork created for this article by TestProject’s UI designers

Test-driven development, or TDD, is a programming paradigm in which you write your tests first and your source code second. TDD is perfect when you’re writing code that has clear inputs and outputs, like pure functions or API endpoints.

But what about when building user interfaces? Can TDD be done for UI development?

You’re about to find out!

In this article we’ll explore a few questions:

  • Can we use TDD to build UIs?
  • If so, how do we do it?
  • And finally, should we use TDD to build UIs?

Background Motivation

When discussing test-driven development with frontend developers, the conversation usually goes…


5 scenarios to clear up event loop concepts

Man standing in front of lights
Man standing in front of lights
Photo by Jacqueline Day on Unsplash.

JavaScript is single-threaded, so how does it handle asynchronous code without blocking the main thread while it waits for an action to complete? The key to understanding the asynchronous nature of JavaScript is understanding the event loop.

In the browser, the event loop coordinates the execution of code between the call stack, web APIs, and the callback queue. Node.js, however, implements its own “Node.js event loop” that is different from the regular “JavaScript event loop.” How confusing!

The Node.js event loop follows many of the same patterns as the JavaScript event loop but works slightly differently, as it doesn’t interact…


Photo by Philip Estrada on Unsplash

For any active code repository you maintain, it’s essential to keep your dependencies up to date. By staying up to date, you have access to all the latest features and bug fixes in each third-party package you use. It’s also much easier to update to one major version ahead, like from v2 to v3, than it is to update to several versions ahead, like from v2 to v7. Staying on top of your dependency updates helps you avoid the mess of dealing with several breaking changes at once.

I tend to update the dependencies in projects I own about every…


Use the VS Code Live Share extension to make remote working with peers easier

Two coders doing pair programming
Two coders doing pair programming
Photo by Alvaro Reyes on Unsplash

Remote work has killed pair programming. Or has it? If anything, it certainly presents an interesting challenge for pair programming when the two developers involved are no longer sitting side by side in the same room. But can you still successfully pair program in this world of remote work?

In this article, we’ll look at some of the benefits of pair programming and how you can use technology like the Visual Studio Code Live Share extension to continue to pair program remotely with your colleagues.

What is Pair Programming?

Let’s start with a quick definition. We’ll define pair programming as a development technique in…


Tips and tricks for keeping your test suites clean

A clean tabletop with a plant
A clean tabletop with a plant
Photo by Sarah Dorweiler on Unsplash.

Unit tests are important. They prevent regressions as you refactor code, serve as documentation, and save you hours of time not spent doing tedious manual testing. In short, tests enable change.

But how much attention to cleanliness do we give our tests? We refactor our app’s production code, give descriptive names to variables, extract methods for repeatable functionality, and make our code easy to reason about. But do we do the same for our tests?

Consider this quote from Robert C. Martin:

“Test code is just as important as production code. It is not a second-class citizen. It requires thought…

Tyler Hawkins

Senior software engineer. Continuous learner. Educator. http://tylerhawkins.info

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