Why is it so hard to see code from 5 minutes ago? – A study found that Java developers backtracked every 6 minutes, meaning they reverted their code to a previous state (e.g., by clicking undo or pressing Ctrl-Z). These undo actions come in bursts and are often followed by successive redo actions. In fact, one participant in a different study used undo/redo 40 times in 5 minutes! When asked why they did this, they revealed they were trying to view some intermediate state of the code in the middle of a change.
The pros and cons of being a software engineer at a BIG tech company – Facebook, Amazon, Apple, Netflix, and Google (FAANG) are some of the largest tech companies in the world. They can be great to work at for many reasons. If you’re an employee at any of the FAANG companies, you’ll most likely earn a great salary and have access to a robust developer network to learn from. If you don’t work at a FAANG company, you might feel a little left out.
Reasons why SELECT * is bad for SQL performance – Here’s a list of reasons why SELECT * is bad for SQL performance, assuming that your application doesn’t actually need all the columns. When I write production code, I explicitly specify the columns of interest in the select-list (projection), not only for performance reasons, but also for application reliability reasons. For example, will your application’s data processing code suddenly break when a new column has been added or the column order has changed in a table?
Best practices for REST API design – In this article, we’ll look at how to design REST APIs to be easy to understand for anyone consuming them, future-proof, and secure and fast since they serve data to clients that may be confidential.
Plain Text Protocols – If you haven’t noticed already I really love plain text so I thought I would find some plain text protocols that are used in different software systems. The Redis Protocol specification states it best by describing its own protocol, but this applies to all of the plain text protocols I will cover.
Go security cheat sheet – Here are eight security best practices for Go developers.
The pros and cons of being a software engineer at a BIG tech company – For the last few years, I’ve been on a journey to replace all of the essential digital tools I use for organizing my life with tools I develop, maintain, and deploy myself.
Rclone – (rsync for cloud storage) is a command line program to sync files and directories to and from different cloud storage providers like Google Drive, S3, Dropbox, Backblaze B2, One Drive, Google Cloud Storage and more.
Runson.Cloud – A handy web service that makes it easy to check which cloud provider a website is using for it’s public services.
This service is based on a set of handy open source libraries that also have accompanying CLI tools that do the same:
Why do you love Ruby, actually – An ode.
Accessing hardware devices on the web – There are some great APIs out there for accessing your hardware. Here’s a good roundup of some that will get IoT involved in your projects.
Equity for Software Engineers at Big Tech and Startups – A growing number of startups and Big Tech companies offer equity - stocks, options, and others - as part of software engineering compensation. However, I’ve noticed few engineers understand what these mean.
An Introduction to macOS Voice Control – Finally! A way to yell at your computer and have it actually listen.