This is only a selection of the tools and APIs that I have worked with in my 20 year career, I have opted to leave off many technologies that I consider to be less generally relevant or obsolete.
Technology | Experience | Notes |
---|---|---|
TypeScript | ★★★★★ | Type safety is great. |
DOM, SVG, CSS | ★★★★★ | Including modern APIs and styles. |
Algorithms | ★★★★ | Also a necessary part of code reviews. |
Front End | ||
React | ★★★★★ | Love it, but open to other options. |
Electron | ★★★★★ | Great for the desktop and reusability. |
Tailwind | ★★★★ | Excited to use it again, and for the future it brings. |
CSS Modules | ★★★★★ | A great way to include CSS. |
CSS Preprocessors | ★★★★★ | Excellent solutions for their place and time. |
Styled Components | ★★★★ | The API is friendly, with tradeoffs. |
VSCode Extensions | ★★★ | Authoring extensions, not using them. |
React Hook Form | ★★★★★ | So fast, so easy. |
SlateJS | ★★★★★ | Great low level rich text editor. |
Browser Data APIs | ||
Workers | ★★★★★ | Including dedicated, shared, and service workers |
IndexedDB | ★★★★★ | Best used with libraries such as Dexie. |
WebSockets | ★★★★★ | Great for two way communication. |
Fetch | ★★★★★ | A simple, but a growing API. |
WebRTC | ★★★★ | More practical for media than data. |
File System API | ★★★★★ | Very excited to use local files in a browser. |
Visualization | ||
Canvas2D | ★★★★★ | Particularly excited for OffscreenCanvas in workers. |
Paper.js | ★★★★★ | Unmatched for vector math, ok for rendering. |
GraphViz | ★★★★★ | A good layout engine. |
Eclipse Layout Kernel | ★★★★★ | The best modern tool for automated layouts. |
Mermaid.js | ★★★★ | Good for Markdown. |
Bezier Curves | ★★★★★ | A core part of all visualization. |
Rough.js | ★★★★★ | Deep in the depths at Eraser. |
Highcharts | ★★★★★ | Still a great library. |
MapBox | ★★★★★ | High speed with a great API. |
Color Spaces | ★★★★★ | oklab, oklch, etc. Great for aesthetics. |
Build / Dev Tools | ||
Node.js | ★★★★★ | Also excited by Deno and Bun |
Next.js | ★★★★★ | Love it, but curious about other options. |
NPM / Yarn | ★★★★★ | Very good in their modern incarnations. |
Webpack | ★★★★★ | Best when part of a boilerplate (Next, Vite. etc) |
Devcontainers | ★★★★★ | An exciting new way of using containers in dev. |
Vite | ★★★ | Very easy to get set up. |
Monorepo tools | ★★★★★ | The best dev experience I have found. |
Data | ||
Firebase | ★★★★ | A great e2e solution for realtime and documents. |
Postgres | ★★ | Great as more than just a relational database. |
MySQL/MariaDB | ★★ | Another good solution. |
GraphQL | ★★★★ | Amazing when used with type generators. |
OpenAPI | ★★★★★ | Awesome for API type generation. |
Devops / Infra | ||
Docker | ★★★★ | Indespensible. |
GitHub Actions | ★★★★ | Very easy to get going, very effective. |
Azure | ★★ | From what I know, this is what I would choose. |
AWS | ★★ | Picking the right tools is the hardest part. |
Google Cloud | ★★★★ | More modern than AWS, less than Azure. |
A library that provides events when elements enter and exit the viewport. It's significantly faster and simpler than IntersectionObserver.
Transparently add encryption to an IndexedDB + Dexie database.
A toolset for managing multiple page forms.
This article explores effective strategies for designing flexible, maintainable multi-page forms using graph and sequence models using tools like React Multi Page Form.
Today, we're faced with lambdas, managed container services, virtual machines, Kubernetes, and more. This guide helps you find the most appropriate solutions.
Navigating traffic management for your app can be confusing. Do you need an API gateway or a load balancer? The answer is often both.
February 2022 - September 2024
Eraser is a tool for whiteboarding and documentation, the essence of it is a document editor next to a canvas, with integrations going both ways. It has diagram as code features similar to Mermaid. I played a part in nearly every part of the app.
August 2021 - February 2022
I loved the culture and technology at Zocdoc, but left because of Eraser's innovative product vision.
November 2018 - July 2021
Mark43 develops software for police departments worldwide, including real-time 911 dispatch applications used in dispatch centers and police vehicles.
September 2014 - October 2018
April 2012 - February 2014
April 2010 - April 2012
October 2007 - March 2010
2005 Syracuse University - Bachelors of Industrial Design