Apply similarity search with AI/ML

Light at the end of tunnel
Light at the end of tunnel
Photo by kimi lee on Unsplash

Similarity search is a subset of the machine learning field that deals with finding items that are closely related to the original input. It’s incredibly useful for things like product, music, or movie recommendations. You watched The Office on Netflix, so here are some other shows you may like. You frequently listen to Bayside on Spotify, so go check out these other pop-punk bands.

Similarity search can also be used to automate customer support. What if when a customer asks a question, you could easily find previously asked similar questions and answers that could help them?

In this article, we’ll…


Lessons and missteps in engineering leadership

People in a meeting
People in a meeting
Photo by Mapbox on Unsplash

Being a tech lead is difficult.

As a tech lead, you’re often expected to continue to be a high performer as an individual contributor while also taking on additional responsibilities to help the team. These additional responsibilities may include breaking down work into clearly defined tasks, grooming the backlog, prioritizing work, mentoring junior engineers, and resolving blockers for the team.

The hardest part of being a tech lead is learning to balance your individual work with the needs of the team.

How do you get your own work done while helping the team remain productive? You can’t do it all…


A look at deployment tools and strategies

Triangular staircase
Triangular staircase
Photo by Sandro Katalina on Unsplash.

DevOps is hot right now. It seems like every software engineering job posting requires DevOps experience and expertise regardless of the actual job title.

When a tech company breaks up its monolith into microservices, each of its engineering teams now owns their portion of the application from start to finish. Software engineers no longer just build the application. They also own repo maintenance, set up continuous integration, configure build pipelines, and deploy their application.

In this world of cross-functional teams and microservice architecture, DevOps skills become increasingly important — and that starts with understanding CI/CD (continuous integration, continuous delivery, and…


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…

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