David Gomes
  • Home
  • About Me
  • Speaking
Sign in Subscribe
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, and grow software engineering teams. There’s a recurring theme in this series that keeps
05 Sep 2023 2 min read

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 companies, and how different providers are competing on different facets of their products. As the talk was
19 Aug 2023 2 min read

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! I recently tried to define Database Developer Experience, which is where I’ve been spending most of
19 Aug 2023 3 min read
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, and grow software engineering teams. The old sales adage of “ABC” (Always Be Closing) applies
30 Jul 2023 3 min read

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 website. It is just too enticing to build it “from scratch”, which usually means using a static
09 Jul 2023 3 min read

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 * Snowflake Summit 2023 Announcements (a combined set of announcements from Snowflake that extend its functionality to much
03 Jul 2023 3 min read

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 through a SaaS subscription model). Furthermore, my experience is mostly in the developer tooling space,
26 Jun 2023 7 min read

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 years but have recently found a mechanism that allows us to
12 May 2023 3 min read

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 definitely put me on a different footing when it came to start my career abroad in 2016.
19 Apr 2023 6 min read

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 and marketing techniques, businesses focus on allowing the product to drive growth. In this blog post, I
10 Apr 2023 4 min read

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. The GitLens VSCode Extension (my "Git Blame" stack) 2. Optimizing code for Git Blame Git
10 Apr 2023 3 min read

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/Clients * #6 Integrations With Well-Known Data Tools * #7 Language Ergonomics * #8 Community & Documentation * Parting
27 Feb 2023 7 min read

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 this with any database. Skip to the second part if you don’t care about the technical
13 Feb 2023 6 min read
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, and grow software engineering teams. Some time ago, I started taking on the initial phone
03 Feb 2023 5 min read

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 Staff Engineer’s Path by Tanya Reilly * The Coding Career Handbook by Shawn Wang but there’s
21 Jan 2023 2 min read
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 about how to hire for, and grow software engineering teams. The core idea behind how
18 Dec 2021 5 min read
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 still think about that every now and then... Getting creative about hiring has always been important. After
30 Nov 2021 5 min read

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 and linting tools (e.g., ESLint). Interestingly, in the last year, we'
02 Dec 2020 4 min read

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, but then the next week I'd be using Python and Flask for a
27 Sep 2020 5 min read

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 [https://github.com/microsoft/TypeScript/pull/39094] coming in TypeScript 4.0, I decided to
05 Jul 2020 8 min read

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 Pick<T, K> and Omit<T, K> [https://www.typescriptlang.org/docs/handbook/
03 Jan 2020 5 min read

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 to the official guide [https://www.typescriptlang.org/docs/handbook/type-inference.html]. If
18 Dec 2019 5 min read

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 took place and how it has been working out for us. -------------------------------------------------------------------------------- Disclaimer: my goal with
13 Jan 2019 14 min read

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 went into my node_modules and fixed them. Of course, as a good open source citizen, I
02 Jan 2019 1 min read

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 have been found by simply reading the entire documentation from start to finish
15 Aug 2018 8 min read
← Newer Posts Page 2 of 3 Older Posts →
David Gomes © 2025
Powered by Ghost