Skip to content

felixge/felixge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 

Repository files navigation

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 gh@felixge.de.

Last Update: 2022-09-19

Open Source

Go (2012-now)

  • traceutils: Code for decoding and encoding runtime/trace files as well as useful functionality implemented on top.
  • fgtrace: An experimental profiler/tracer that is capturing wallclock timelines for each goroutine. It's very similar to the Chrome profiler.
  • cl: Quickly clone git repositories into a nested folders like GOPATH.
  • pprofutils: Swiss army knife for pprof files. Implemented as a command line utility as well as free web service.
  • 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

Here is a list of recent talks:

You can find an incomplete list of previous 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.

About

Felix Geisendörfer's Open Source & Work History

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published