Skip to content
Avatar

Achievements

Achievements

Organizations

@DataDog @nodecopter
Block or Report

Block or report felixge

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
felixge/README.md

Hi there 👋. You're probably interested in my open source work, so here is a quick summary. I've also added a bit of work history.

📫 Please open a GitHub issue if you want to discuss something related to an open source project of mine.

Otherwise you can reach me at [email protected].

Last Update: 2021-06-19

Open Source

Go (2012-now)

  • cl: Quickly clone git repositories into a nested folders like GOPATH.
  • pprofutils: Command line utilities for converting pprof files to text and vice versa.
  • gostackparse: A library that can parse Go stack traces at 300 MiB/s.
  • sprof: A Go profiler based on static analysis. Note the release date.
  • dd-trace-go/profiler: Working on this as part of my job for Datadog right now.
  • go-profiler-notes: In-depth research and writing on the various Go profilers.
  • sqlbench: A Go tool that measures and compares the execution time of one or more PostgreSQL queries
  • fgprof: Experimental wall-clock profiler for Go.
  • httpsnoop: Properly wraps the http.ResponseWriter interface in Go for monitoring.
  • go-xxd: High performance Go implementation of the xxd utility. I got nerd sniped into this.
  • godrone: Firmware for the Parrot AR Drone 2.0 written in Go, i.e. an experiment to physically visualize a garbage collector 😉
  • tcpkeepalive: Exposes TCP keepalive knobs & dials. There are probably better alternatives now.

PostgreSQL (2017-2020)

  • flame-explain: An online PostgreSQL EXPLAIN visualizer written in React/TypeScript. I was very excited about this and scheduled to speak about it at various conferences. Then this pandemic thing happened and I burned out on the project : (.
  • state-machines: A blog post showing how to implement state machines in PostgreSQL using user-defined aggregate functions.

Node.js (mostly 2009-2011)

Contributed 100+ patches to the core involving promises, exception handling, fs, module system, UTF-8 (including a patch for v8). Mea culpa for process.on("uncaughtException") 🙈.

Additionally I wrote a lot of NPM modules, most notably:

  • mysql: Pure JS implementation of the binary MySQL protocol.
  • formidable: A multipart/form-data parser that's pretty fast.
  • node-ar-drone: Implementation of the networking protocols used by the Parrot AR Drone 2.0. This one got a bit out of control.
  • node-style-guide: Not a module, but maybe it helped some people write better modules?

Misc

  • tus: A protocol for resumable file uploads on the web that I wrote the initial version for. It's seen wide industry adoption since.

CakePHP (2007-2009)

Contributed ~150 patches to the core and made some good friends.

Public Speaking

I was very active on the conference circuit for a while. You can find an incomplete list of talks on my website. Going forward I'm actively looking for opportunities to present on Go profiling related topics.

Blogging

I have an infrequently updated blog where I give questionable advise that ocassionally compromises servers around the world.

Work

My CV is available on request, but I'm not looking for a job right now.

  • 2021-Now: Datadog, working on Continious Go Profiling.
  • 2014-2020: Apple, working on secret manufacturing stuff using PostgreSQL and Go.
  • 2013-2014: Thomson Reuters, contracted to work on Eikon Messanger XMPP server in Go.
  • 2009-2013: Transloadit, co-founded the business and wrote lots of Node.js code until it was profitable.
  • 2006-2008: Freelancer, working for international clients while finishing high school.

Pinned

  1. 🚀 fgprof is a sampling Go profiler that allows you to analyze On-CPU as well as Off-CPU (e.g. I/O) time together.

    Go 1.8k 51

  2. Package httpsnoop provides an easy way to capture http related metrics (i.e. response time, bytes written, and http status code) from your application's http.Handlers.

    Go 677 29

  3. A pure node.js JavaScript Client implementing the MySQL protocol.

    JavaScript 16.6k 2.4k

  4. A guide for styling your node.js / JavaScript code. Fork & adjust to your taste.

    JavaScript 4.8k 929

  5. The most used, flexible, fast and streaming parser for multipart form data. Supports uploading to serverless environments, AWS S3, Azure, GCP or the filesystem. Used in production.

    JavaScript 6k 654

  6. A node.js client for controlling Parrot AR Drone 2.0 quad-copters.

    JavaScript 1.7k 446

735 contributions in the last year

Aug Sep Oct Nov Dec Jan Feb Mar Apr May Jun Jul Aug Mon Wed Fri

Contribution activity

August 2021

Reviewed 1 pull request in 1 repository
DataDog/dd-trace-go 1 pull request
2 contributions in private repositories Aug 5

Seeing something unexpected? Take a look at the GitHub profile guide.