Sign in

Engineering Manager @ Square. I enjoy reading and writing about finance, design, and software architecture.

Who is this guide for?

This guide is about how to make better decisions as a Manager or an Engineer, and understanding where to focus your limited time and attention. It has been shaped by my experience as an Engineering Manager at Square & SoundHound, and through various books that I have read on the subject.

First, a little bit of context.

It has been 2 months since I joined Square as an Engineering Manager. I spent my first few weeks understanding the product, the business, and the team. This involved lots of reading, listening to others, and taking notes.

After I got my bearings…


Here is a short guide on how to add HTTPS / SSL Certificates to your WordPress website.

SSL certificates are used by web servers to encrypt the traffic between the server and client, providing extra security for users accessing your application. Let’s Encrypt provides an easy way to obtain and install trusted certificates for free. Certbot makes the process of setting up and renewing the certificates really easy.

Prerequisites

To be able to complete all the steps, you need to have access to the following:

  1. You must have sudo access to the server where WordPress is installed and running.
  2. WordPress must…


It was December 2019. The gloomy weather and frigid temperatures in Toronto made me crave for a warm getaway. As I navigated through search results, I realized I had dozens of tabs open to answer a pretty simple question: “What are some warm places to travel to in December with cheap flights?”

Being a software engineer, I realized that all I was doing was trying to apply a filter to a broad set of travel results. What if I had a lot of data on places in the world? Can I build some type of filtering to find cool places?


If you’re an engineer or you manage engineers, here are some questions which you may have thought about:

  • How can I write better code? How can I help my team write better code?
  • Why does it feel like any project that’s a few years old should be rewritten from scratch?
  • Why can’t I understand the code written by <insert-smart-engineer's-name>? After all, they're smart and they write good code.

I summarized my opinion to these questions in this tweet below, and I’ll expand on it in this post.

Code becomes unmaintainable for two reasons.

  1. It wasn’t written to be maintainable…


August 2019 marked my second full year of being an engineering manager. Transitioning from a software engineer to a manager was challenging for me.

The two jobs require very different skillsets which aren’t immediately evident. Engineering is more black and white than management. In engineering, you can often arrive at the rational solution by applying logic and analysis. I am a very logical person (my wife jokes that I’m a robot 🤖) so “thinking” like an engineer was natural to me.

Management involves working with people. There are grey areas and logic does not dictate the final outcome. Different people…


New Feature: Collaboration

A common feature request that we have received is to allow multiple users to work on a single client. This is now possible on Houndify with a new feature called Collaboration.


A common use case you may have in your web app is sharing some environment variables between your server-side and client-side code.

Hopefully, you are already following best practices and have these environment variables stored inside a .env file:

HOST=https://myapp.com
APP_ID=my-new-app
REST_API_ENDPOINT:https://myapp.com/api

On the server, you can use the dotenv npm module to read your .env file and put all the information in process.env.

const dotenv = require('dotenv');
dotenv.config();
console.log(process.env)
/*
Console log: { HOST: "https://myapp.com", APP_ID: "my-new-app", REST_API_ENDPOINT: "https://myapp.com/api" }
*/

You can’t use dotenv on the client because it has a dependency on the file-system. If you aren’t…


The following paragraphs are some passages from The Making of a Manager that were valuable to me. I’ve paraphrased them here for my own reference.

I have found that having good 1–1s is important to build a good relationship between a manager and their team. However, it is very easy to get sucked into having 1–1s where you only focus on the immediate priorities. The steps listed below are useful for putting priorities in perspective and taking a step back to look at overall goals and expectations of both people.

How can you achieve better 1-on-1s?

The answer is preparation. It’s rare that an amazing conversation…


🥰 Love this editor

I have been using Visual Studio Code for more than two years, when I jumped on it from Sublime Text.

I spend about 5–6 hours every day inside VS Code so it’s imperative that it is tailored to my needs to make me as productive as possible. Over the years, I have tried many extensions and settings but now I feel settled with what I have so it’s worth talking about them.

Extensions

Prettier Code Formatter

I use Prettier for code formatting across all of my projects and I’ve set up this extension so that it automatically formats my HTML/CSS/JS when I hit ⌘…


The JavaScript ecosystem moves fast. Whenever you feel like you know something well, something new appears and seems to replace it. Many developers move from framework to framework to keep up with the latest way of doing things.

Obviously, we can’t do this when we are trying to build a team. We need to have some consistency in our tech stack. At the same time, you don’t want to be married to old technology if there are new and better ways to solve problems.

To solve this problem, here are some of the questions I ask myself and others before…

Tilo

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