David Gomes

  • Home
  • About Me
  • Speaking
hiring-for-engineering-managers

You Have to Put in the Time

This is the fifth blog post of a series titled Hiring for Engineering Managers. I plan to write a few posts on this topic since I'm incredibly passionate about how to hire for,

September 05, 2023

The Broad Set of Computer Science Problems Faced at Cloud Database Companies

A couple of weeks ago, I was in an internal meeting where our CTO (Adam Prout) was giving a talk to our summer interns. The talk was about the current state of database

August 19, 2023

Analyzing Visual Database Query Plans from a CLI

tl;dr: we’ve created new SQL commands ( SHOW PROFILE UI, EXPLAIN UI and SHOW PLAN UI) that allow developers to more easily visualize their SingleStoreDB query plans. It’s the little things!

August 19, 2023
hiring-for-engineering-managers

Hiring Never Stops

This is the fourth blog post of a series titled Hiring for Engineering Managers. I plan to write a few posts on this topic since I'm incredibly passionate about how to hire for,

July 30, 2023

It Took Me a Decade to Find the Perfect Personal Website Stack — Ghost+Fathom

The first post on this personal blog dates back to December 2012. It’s been more than a decade! As with many others, I’ve always struggled with how to setup my personal

July 09, 2023

Databases Can't Be Just Databases Anymore

In the past few weeks, we saw a few key announcements that point to a new trend in the data infrastructure ecosystem: * Databricks Strikes $1.3 Billion Deal for Generative AI Startup MosaicML

July 03, 2023

A Very Simple Framework for Valuing Your Stock Options as a B2B Startup Employee

Disclaimer: this blog post is primarily aimed for startup or "scale-up" employees of Business-to-Business (B2B) software companies (i.e., companies that build software products and then sell those to other companies, most commonly

June 26, 2023

A Simple System for Measuring Flaky Tests in a Large CI/CD Pipeline

We've all heard that one cannot improve what they can't measure. And this is obviously true about flaky tests in our CI/CD pipelines. At work (SingleStoreDB), we've been struggling with this for

May 12, 2023

Observations on Tech Summer Internships in Portugal Versus the US

In the summer of 2015, I interned as a software engineer at a startup based in Portugal called Unbabel. The internship was only two months long, but it was an amazing opportunity which

April 19, 2023

Building a PLG Content “Machine” In Your Organization

Product-led growth (PLG) has been gaining momentum in developer tooling in recent years (it was already popular for consumer-facing products before). The idea behind PLG is simple: instead of relying on traditional sales

April 10, 2023

My "Git Blame" Stack

My job as an Engineering Manager requires me to use Git Blame every single day (this is really not an exaggeration!). In this post, I will go into a few different things: 1.

April 10, 2023

Defining Database Developer Experience

Table of Contents * What's not discussed here? * The 8 Pillars of Database DX (in no particular order) * #1 Observability * #2 Deployment * #3 Configurability of Tradeoffs * #4 Predictable Pricing * #5 Programming Language SDKs/Drivers/

February 27, 2023

Analyzing How Much Time I Spend in Meetings (using SQL and Python)

tl;dr: I will show you how I ran some simple analytics on my Google Calendar history over almost 7 years. I used SingleStoreDB for this, but it should be straightforward to do

February 13, 2023
hiring-for-engineering-managers

Taking the Initial Phone Screen with Candidates

This is the third blog post of a series titled Hiring for Engineering Managers. I plan to write a few posts on this topic since I'm incredibly passionate about how to hire for,

February 03, 2023

What Should Software Engineers Work on as They Grow?

A plethora of outstanding literature exists with the goal of helping software engineers make a greater impact and grow in their careers. Just a few examples include: * Staff Engineer by Will Larson * The

January 21, 2023
hiring-for-engineering-managers

Accountability Mindset for Hiring Engineers

This is the second blog post of a series titled Hiring for Engineering Managers [https://davidgomes.com/tag/hiring-for-engineering-managers/]. I plan to write a few posts on this topic since I'm incredibly passionate

December 18, 2021
hiring-for-engineering-managers

Getting Creative with Looking for Candidates

Back in 2004, Google had this cryptic highway billboard sign that was trying to get people to apply to engineering positions there [https://www.npr.org/templates/story/story.php?storyId=3916173]. I

November 30, 2021

Leveraging the TypeScript API to find issues in your code

Did you know TypeScript has an API that allows you to write scripts that make certain checks on your code? It's very rarely useful for application developers, but it's used by IDE plugins

December 02, 2020

Reading Documentation Upfront

Before I was actually getting paid to write code, I got extremely accustomed to picking up new frameworks and libraries very quickly. I'd bootstrap a new web application in Rails in one week,

September 27, 2020

Experimenting with TypeScript 4.0's Variadic Tuple Types (Variadic Kinds)

I wrote some code over 2 years ago that couldn't be properly typed with either Flow [https://flow.org/] or TypeScript [https://www.typescriptlang.org/], but with the introduction of Variadic Tuple Types

July 05, 2020

Distributing Pick<T, K>/Omit<T,K> over union types in TypeScript

Disclaimer: this article assumes intermediate knowledge of both TypeScript and React. Concepts you should be familiar with include Higher Order Components [https://reactjs.org/docs/higher-order-components.html] and utility TypeScript types such as

January 03, 2020

Should you annotate or let TypeScript infer the types?

Lately, I've been thinking about how one can decide whether to annotate or let TypeScript infer the types of variables/expressions whenever it can. If you don't know what Type Inference is, refer

December 18, 2019

Porting 30K lines of code from Flow to TypeScript

We recently ported MemSQL Studio [https://www.memsql.com/manage/]'s 30 thousand lines of JavaScript from using Flow to TypeScript. In this article, I describe why we ported our codebase, how it

January 13, 2019

Maintaining overridden type definitions for a dependency with TypeScript

Recently, I was struggling with integrating redux-form [https://redux-form.com/] into a TypeScript [http://www.typescriptlang.org/] project. I hit a couple of bugs in the type definitions for this project, and I

January 02, 2019

What I wish I had known before starting to use Flow

I've been using Flow [https://flow.org/] at work for more than a year and there's a few things that I really wish I had known from the start. Some of these could

August 15, 2018