Hi, I'm Josh! π
Hi, I'm Josh (he/him)! I'm a frontend developer from New York with a passion for open source, static analysis, and the web. I'm a full time open source maintainer and work on projects in the TypeScript ecosystem such as typescript-eslint and TypeStat.
I'm also the author of O'Reilly's Learning TypeScript book, available now!
Areas of Interest
TypeScript: Gosh do I love TypeScript. I file issues on and submit PRs to the TypeScript language. You might enjoy my TSConf talks on building binary arithmetic or a board game engine in the type system.
Additionally:
π¦Ύ Accessibility: I started the accessibility initiative at Codecademy and ran its internal working group from 2019-2021. We took the site from poor accessibility to leading the industry.β‘ Performance: I was a member of the Sway performance team and co-architected the wonderfully fast client frontend for its Word Transform to Webpage integration.βοΈ React: I've been using React professionally and on personal projects since 2015, and led Codecademy's internal switch from preferring class components to function components and hooks. Don't even get me started on MobX.β€οΈβπ₯
Favorite Tech Activities
π£οΈ Conferences: You can see my talks listed on my personal site and read my speaker rider.π Open Source: I do as much as possible in the open and try to support my open source communities. Companies should pay us for our time.πΈ π€ Volunteering: I regularly mentor mentees and work with orgs such as Emergent Works, Pursuit, or when I lived in Seattle, Unloop.
What I'm Working On
Visible Projects
If you work with TypeScript, you may have used one of the open source projects I support:
| Project |
Description |
Role |
Stars |
|---|---|---|---|
| typescript-eslint | Monorepo for all the tooling which enables ESLint to support TypeScript. | Maintainer | |
| tslint-to-eslint-config | Converts your TSLint configuration to the closest possible ESLint equivalent. | Creator & maintainer | |
| TypeStat | Converts JavaScript to TypeScript and TypeScript to better TypeScript. | Creator & maintainer | |
| eslint-plugin-expect-type | ESLint plugin with $ExpectType, $ExpectError and $ExpectTypeSnapshot type assertions. | Adoptive maintainer |
Just For Fun
These projects I do because I think they're fascinating and/or fun, if not particularly useful:
| Project |
Description |
Role |
Stars |
|---|---|---|---|
| EightBittr | Bare-bones, highly modular game engine for 2D 8-bit games. | Creator & maintainer | |
| Budgie | A unified syntax that compiles into your favorite OOP languages. | Creator & maintainer | |
| emojisplosion | Creator & maintainer | ||
| console-fail-test | Gently fails test runs if the console was used during them. | Creator & maintainer |






