Six secrets to driving software engineers crazy

Image for post
Image for post
Photo by Hunters Race on Unsplash

Hey, you! Yeah, you. Are you a software engineer? Do you have ownership over a particular repository at your company? Do you want to ensure that working with your repo is a constant source of frustration for your fellow developers? Great! Then read on for these tips on how to be a terrible project maintainer.

Don’t write good documentation

Especially on how to do local development or how to contribute to the repo. You want to keep people guessing. Running your project locally should be a puzzle that only the greatest minds can solve. …

Five ideas to get more out of your workday

Image for post
Image for post
Photo by Tim van der Kuip on Unsplash

Everyone seems to be strapped for time these days and desperate to get more done in less time. I’m in the same boat.

Enter “life hacks”: simple tricks to make your life easier. Or, questionable bits of productivity advice from strangers on the internet with hit-or-miss results.

As gimmicky as productivity life hacks can be, they really can help when the advice is grounded in science. Understanding the psychology of your mind at work allows you to tap into your hidden potential. The trick is not to work more — instead, it’s to work more meaningfully.

Below are five ideas to get more out of your work day. So grab your shovels, because it’s time to dig in. …

Software engineers early in their careers often ask me, “How can I level up quickly?”

Giving advice
Giving advice
Photo by NeONBRAND on Unsplash.

Software engineers early in their careers often ask me, “How can I level up quickly?”

In other words, how can I become an effective contributor in the shortest amount of time possible? How can I familiarize myself with our massive code base? How do I learn all the things I should know?

Starting a new job can be stressful — even as a senior engineer — and it can be especially overwhelming when it’s your first programming job. So, let’s look at four strategies for leveling up as a junior developer so that you can hit the ground running.

1. Ask Lots of Questions

Test like a user

Mouse trap
Mouse trap
Photo credit: Skitterphoto on Pixabay

One of my 2021 goals is to contribute more to open source. I got a head start in December of 2020 by re-writing the test suite for the focus-trap-react npm package using the React Testing Library. Here’s my merged pull request.

If you haven’t heard of this package, focus-trap-react is one of the best solutions out there for temporarily trapping keyboard focus in a specific area of your application; for instance, while a modal or panel is open. We wouldn’t want users tabbing outside the modal into content in the background, now would we?

In this article, we’ll go over my motivations for re-writing the test suite as well as some of the benefits that writing tests with the React Testing Library brings. …

Get to know Slash GraphQL

Happy corgi dog
Happy corgi dog
A corgi living his best life (Source: Pixabay)

Every dog owner wants to find the perfect friends for their new puppy. Now we have an app for that! You can browse through various puppy profiles and swipe right or left to find your new puppy friend. Setting up puppy playdates has never been easier.

OK, not really. But we do have a wacky demo app built with React, Material-UI, Apollo Client, and Slash GraphQL (a hosted GraphQL back end from Dgraph).

In this article, we’ll explore how I built the app and also look at some of the basics of the technologies I used.

Ready to unleash the fun? …

An in-depth look at the testing pyramid

Photo by Jeremy Bishop on Unsplash.

When writing software, there are many different levels at which you can test your code: unit tests, integration tests, and end-to-end (e2e) tests.

So the question is, for any given piece of functionality, where and how should you test your code?

In this article, we’ll look at the different types of tests, the testing pyramid, and a real-world example that ties it all together.

Types of Tests

Unit tests ensure that a single thing works properly on its own. You would generally write unit tests to validate something like a function, a back-end API endpoint, or a UI component. …

Image for post
Image for post
Photo by Andreas Klassen on Unsplash

Everyone wants to be more productive without burning out. So, how do you get more done without working more hours? And how do you help the rest of your team improve without taking on the role of taskmaster? The answer: use effective tools.

In this article, we’ll look at five effective tools software engineers and tech companies can use to speed up their development lifecycle without sacrificing quality. Design systems, code linters, code formatters, continuous integration, and IaaS/PaaS providers are all tools that allow software engineers to streamline mundane work and, in turn, prioritize building their products.

Design Systems

How To Write Asynchronous JavaScript

Image for post
Image for post
Photo by Álvaro Bernal on Unsplash

JavaScript is single-threaded, which means that only one thing can happen at a time. Synchronous code is executed from top to bottom in the order that the code is written. Synchronous code is also “blocking” — each line of code waits for the previous line of code to be executed before it runs.

In contrast, asynchronous code is “non-blocking” code that allows long-running requests to not block the main JavaScript thread. When the request is finished, additional code can then be executed. This is generally done in one of three ways:

  1. Callbacks
  2. Promises
  3. Async/await

Let’s look at a few examples to see how we can write asynchronous code using these three approaches. …

Image for post
Image for post
Photo by Michael Dziedzic on Unsplash

I still run an EC2 instance on AWS that I configured years ago to host some of my side projects. It’s using a Linux AMI (Amazon machine image) that is woefully out of date and also wonderfully under-performant when traffic on my site is heavy.

Recently my EBS (elastic block store) volume that I have attached to my EC2 instance became full. …

Image for post
Image for post
Image courtesy of DocRaptor

Web apps that contain tables, charts, and graphs often include an option to export the data as a PDF. Have you ever wondered, as a user, what’s going on under the hood when you click that button?

And as a developer, how do you get the PDF output to look professional? Most free PDF exporters online essentially just convert the HTML content into a PDF without doing any extra formatting, which can make the data hard to read. What if you could also add things like page headers and footers, page numbers, or repeating table column headers? …


Tyler Hawkins

Senior software engineer. Continuous learner. Educator.

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