Author, speaker, and open source maintainer on projects in the TypeScript ecosystem such as Learning TypeScript, typescript-eslint, and TypeStat.
Projects
- Learning TypeScript
O'Reilly book teaching TypeScript for JavaScript developers. Out now - buy it today on Amazon / O'Reilly!
- typescript-eslint
Maintainer on the tooling that enables ESLint to work with TypeScript code and provides TypeScript-specific rules.
- TypeStat
Converts JavaScript to TypeScript and TypeScript to better TypeScript with static analysis.
- FullScreenMario
College project: an HTML5 remake of the original Super Mario Bros. It had the original 32 levels, a procedural map generator, and a level editor. Shut down by Nintendo's DMCA notices.
- FullScreenPokemon
Spiritual successor to FullScreenMario on my custom game engine. It'll have the original 151 and campaign, a procedural map generator, and a level editor. Work in progress.
- Budgie
Abstract metaprogramming syntax that compiles into common OOP languages. Work in progress.
- Emojisplosion
Blasts emoji like fireworks all up in your HTML page. Great for easter eggs, pranks, and other shenanigans.
See more projects on my GitHub.
Talks
You can find my speaker rider at JoshuaKGoldberg/speaker-rider.
- Floating and Sinking Promises: Understanding Broken Async Code KCDC 2023
- Static Analysis: Don't Fear the Linter KCDC 2023
- Static Analysis: Shockingly Awesome! ⚡️ Web Directions Code 2023
- TypeScript for JavaScripties CityJS Athens 2023
- Interviewing Developers with Accuracy and Precision JSConf India 2023
- The Life and Times of an Open Source Maintainer PhillyJS
- Setting Up ESLint and TypeScript for React React Miami 2023
- How to Complain Positively StaffPlus NYC 2023
- Linting TypeScript in 2023 Wrocław TypeScript
- Floating and Sinking Promises DeveloperWeek 2023
- Design Systems: Maximum Consistency, Minimum Effort THAT Conf Texas 2023
- Workshop: TypeScript for JavaScripties THAT Conf Texas 2023
- Statically Detecting React App Bugs with TypeScript and ESLint React Day Berlin 2022
- Lessons Learned from Refactors and Rearchitectures LeadDev Berlin 2022
- TypeScript Static Analysis Hidden Gems All Things Open 2022
- WebXV Karaoke React Brussels 2022
- Workshop: Building a Design System Mid-Flight React India 2022
- WebXR Karaoke HalfStack Newquay 2022
- Adventures in Type Safe Prisma Clients Prisma Day 2022
- Beyond Tailwind React Global Online Summit 2022
- Props, Mocks, and Context React Global Online Summit 2022
- Demystifying GraphQL Typings Generation Untangling GraphQL 2022
- Focus Visible, At Last! Web Directions Hover 2022
- Accessible Accessibility DeveloperWeek 2022
- GraphQL + Apollo + Next.js: A Lovely Trio (Overview) GraphQL Galaxy 2021
- GraphQL + Apollo + Next.js: A Lovely Trio WeAreDevelopers JS Congress 2021
- Accessible Accessibility A11y Camp 2021
- From Takedown to TypeScript CascadiaJS 2021
- Seven Common Hooks Mistakes React Global Online Summit 2021
- Converting a Game Engine to TypeScript TSConf 2021
- Workshop: Converting React Apps to TypeScript TSConf 2021
- "Zero" Frontend Crashes in Production Reliable Web Summit 2021
- Accessibility, Design Systems, and YOU! CSSCamp 2021
- Microfrontends at Scale WeAreDevelopers World Congress 2021
- Building a Design System as a Team JSWorld USA 2021
- Crafting an Accessible Design System A11y Bytes 2021
- Breaking the Codecademy Course Catalog React JS Case Study Festival 2021
- Stories and Strategies from Converting to TypeScript React Summit 2021
- TypeScript for APIs JSWorld 2020
- Super Strength ESLint JS Poland 2020
- Type System Game Engines TSConf 2020
- Speedy Expo Apps with Persistent Redux State SWM Academy 2020
- Binary Arithmetic in the TypeScript Type System TSConf 2019
History
Founding member of Codecademy's Web Platform team. It creates and maintain tools used by frontend developers across the company, from design systems to React testing utilities to mass TypeScript conversions.
I previously toured Codecademy's Learner Experience team, which focuses on improving the core user experience of our content authoring and consumption platforms, and Codecademy's Growth team, responsible for improving user happiness & revenue growth via iterative experimentation.
Through November 2018 worked on Sway, an education-focused Office app. I focused on web client performance, front-end engineering systems, and static code analysis.
Co-architected a full rewrite of Sway in React+MobX+Inversify+Glamor, later released as the Print to Web view in Word.
- Dynamics CRM2015
Engineer in CRM sales vertical. My team focused on integrating Azure machine learning for sales insights in the desktop and mobile apps.
- Dynamics AX2014
Intern on AX Internal Support. Created dynamic search aggregator for Lucene or proprietary databases to aggregate cross-source references.
- Schalk Lab2012-2013
Set up neuroscience lab Drupal website and internal NAS, created a MySQL database management system in Matlab, and worked on BCI2000.