Hi, I'm Josh! π
I'm a passionate open source developer from New York. (he/him)
Hi, I'm Josh! 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 writing a writing a Learning TypeScript book for O'Reilly, set to release soon! I'm passionate about bringing accessible education to the masses in a sustainable way.
Areas of Expertise
π¦Ύ 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.β€οΈβπ₯ 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.
Favorite Tech Activities
π£οΈ Conferences: I've been doing the circuit of speaking engagements to share knowledge. You can see my talks listed on my personal site.π 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 |



