Hello 👋
My name is Colin Ihrig, and I am a software engineer based out of Pittsburgh, PA in the United States. I have worked for small startups with a handful of employees as well as large enterprises such as Samsung, Walmart, and Amazon.
I have been developing open source software since 2013. I have created or contributed to many projects since then. Here are some of the highlights:
Node.js is a popular cross-platform JavaScript runtime. I began contributing to Node.js in 2014, and joined its Technical Steering Committee in early 2015. Some of my past contributions include:
- Initial author of Node's test runner. This includes the
node:test
core module, the CLI runner, mocking, snapshot testing, and code coverage. - Initial author of Node's SQLite integration.
- Initial author of Node's WebAssembly System Interface (WASI) integration.
- Significant contributions to the
child_process
,cluster
,dns
,fs
,os
, andreport
modules. - Initial author of the
lts
module used to generate the Node.js long term support (LTS) schedule graphic. - Maintaining Node's postmortem debugging metadata, including sending appropriate patches to the V8 project. I also updated the llnode tool to support V8's TurboFan optimizing compiler.
- Past member of the Release working group, Diagnostics working group, and Security working group.
libuv is a C library that provides cross-platform asynchronous I/O and an event loop. It has been used by projects such as Node.js, BIND, CMake, the Julia programming language, Neovim, and many more.
I have been a libuv maintainer since 2016 and handled many of its releases. I have also worked on APIs for native file copying, streaming directory iteration, retrieving storage volume information, working with environment variables, and retrieving user information, to name a few. I have also spoken about libuv at a number of conferences and meetups.
I created uvwasi, one of the first WebAssembly System Interface implementations. uvwasi was built on top of libuv to maximize platform support. It was donated to the Node.js project, and has been integrated into the following projects:
- Node.js
- The wasm3 WebAssembly runtime.
- WABT: The WebAssembly Binary Toolkit.
- The Grain programming language.
- The fizzy WebAssembly interpreter.
- The WebAssembly Micro Runtime (WAMR).
gRPC is a cross-platform, cross-language Remote Procedure Call (RPC) framework. It was originally developed at Google, and is now a project of the Cloud Native Computing Foundation (CNCF).
I created grpc-server-js, the first pure JavaScript gRPC server implementation that I am aware of. I also rewrote the server in TypeScript and upstreamed it to the official gRPC project. I have also spoken about gRPC at several conferences, including gRPConf.
hapi.js is a Node.js web framework that originally gained fame at Walmart for successfully handling Black Friday traffic.
I have been involved in the hapi ecosystem in various capacities as a contributor, maintainer, and Technical Steering Committee member since 2014.