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
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
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
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.
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/
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
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,
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
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
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
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
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,
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
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
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
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
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
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
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
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
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,
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
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
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
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