David Gomes

  • Home
  • About Me
  • Speaking

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

Hiring for Engineering Managers — Accountability Mindset

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

Hiring for Engineering Managers — Getting Creative

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

Looking back on a year and a half of remote work

Around a year and a half ago, I transitioned from a full time onsite position to a full time remote position (same employer). Many friends and coworkers tried to pick my mind on

August 06, 2018

Exploring Bucklescript's Interop with JavaScript (in Reason)

Disclaimer: this is a blog post version of the talk I gave at the ReasonML Munich Meetup [https://www.meetup.com/Munich-ReasonML-Meetup/events/245697054/]. If you want to watch the talk, it's on

February 03, 2018

Writing ReasonML bindings for JavaScript APIs

If you haven't heard about Reason, you should probably look into what it is [https://reasonml.github.io/] first. However, if you have a JavaScript background and have just recently heard about Reason,

December 23, 2017

The Old York Times — Shift APPens 2016 Hackathon Project (Post Mortem)

This past weekend two friends (Pedro Paredes and “Michel” Duarte) and I took part in a hackathon held in our hometown — Coimbra, Portugal. It’s called “Shift APPens” and participants are allowed to

February 27, 2016

The Ludum Dare 34 Meetup in Coimbra

This past weekend I organized a local Ludum Dare meetup in my hometown, Coimbra. For those of you who haven’t heard of it, Ludum Dare is a game making competition that is

December 14, 2015

Big Startup Events Feel More Like "Startup Zoos"

You might have heard about events such as Web Summit [https://websummit.net/] or TechCrunch Disrupt [http://techcrunch.com/event-type/disrupt/]. In these events, dozens to hundreds of startups sit along in tiny

November 08, 2015

My 2015 Summer Internship At Unbabel (YC W14)

This summer I was lucky enough to grab an internship at Unbabel [http://unbabel.com], a Y Combinator startup that provides a language translation solution - "AI Powered Human Quality Translation". Because they

September 19, 2015

Having fun with Competitive Programming

Competitive Programming refers to a sport where participants (contestants) have to write solutions for a set of given problems in a certain amount of time. The solutions themselves have to be correct and

August 23, 2015

Codebits VII, 2014: My Post Mortem

Codebits [http://codebits.eu] is the largest and most important hackathon in Portugal. I participated for the first time from this last Thursday to Saturday. It. Was. Amazing. As a hackathon, it includes

August 03, 2015

The Shift APPens Experience

Last weekend, I took part in a hackathon organized right where I live - Coimbra, Portugal. The name of the event is Shift APPens [http://www.shiftappens.com] and around 50 people took

February 26, 2014

elementary OS Luna Released

elementary OS [http://elementaryos.org], a free software project I’m heavily involved in, has seen its latest release come to life just two days ago - elementary OS Luna. In fact, all

August 02, 2013

I am going to IOI 2013 in Australia!

For those of you who have never heard of it, The International Olympiad in Informatics (IOI) is “an annual competitive programming competition for secondary school students”, according to Wikipedia. Each country is allowed

April 05, 2013

Party Build for Firefox OS

Ever since the first news about Firefox OS came out I’ve been fascinated by the project. About two weeks ago, I decided that I really wanted a Firefox OS phone, but I

March 13, 2013

Not Space Invaders (Ludum Dare 25)

Last weekend, I took part in Ludum Dare [http://ludumdare.com]. I finished my entry on time and submitted it with Linux, Windows and Mac OS X versions. Also, the game is also

December 22, 2012