Wow. I canāt believe 2022 is over. And I canāt believe how much happened last year.
12 months ago, I lived in Brooklyn and was gainfully employed in a dream job (Staff Frontend Developer) on a dream team (Web Platform) in my favorite tech education company (Codecademy). I knew I was going to leave the company at the end of January but wasnāt sure what my self-employment life would look like. I was still working on my Learning TypeScript book, hoping to get back into in-person conferences.
Now, Iām a totally different dream job (full time open source developer) living in Philadelphia. Iāve gotten a bunch of work done on my open source projects such as typescript-eslint and TypeStat. Learning TypeScript was released, Iāve spoken at several great in-person conferences, and I have multiple exciting ones lined up for 2023 already. What a year!
I like looking back at large time periods and the major events that happened during them. Itās useful to reflect back on what the most important happenings were, and to learn from any missed opportunities or mistakes. Letās do that now for my 2022.
Biggest Accomplishments
Out of all that happened in 2022, hereās a list of my favorite highlights.
Conference Speaking
Conferences -especially in-person ones- are great! You get to attend talks by and chat with wonderful people from all over the industry. I canāt get enough of them.
2022 was the year I really went big on speaking at in-person conferences. I talked in Berlin (twice!), Brussels, Newquay, and Raleigh in the second half of the year. And at each and every one of those conferences, I met people in person who I still have interactions with online months later. Amazing.
Talking in-person at conferences is its own skill that Iām working on. You can see me get more comfortable with enunciation, stage presence, and storytelling as the months went on. Iām excited to keep getting better as a speaker - and hopefully keynote something in 2023.
See my How I Apply to Conferences post for more information on talking at conferences.
Minimum Wage in Open Source
Yup. One of my biggest accomplishments in 2022 was minimum wage. The USA federal minimum wage is $7.25/hour, or about $1,250 a month / $15,000 a year.
My open source salary is about $1,700 a month / $20,400 a year:
- ~$1,400 a month from typescript-eslintās revenue: mostly via Open Collective, with additional bits from Tidelift, StackAid, and Thanks.dev
- ~$300 a month from my personal GitHub Sponsors
For context, I was earning more than ten times that amount in base salary alone in industry. Which is how I was able to build up savings to go full time open source in the first place.
Separately, I had three other sources of income:
- ~$1,500 a month on average from Learning TypeScript royalties
- ~$27,000 from consulting, which Iāve mostly stopped to focus on open source
- My wife is a Director of Agile Delivery with a real salary; she supports me
All this is to say: Iām not poor and am not complaining about my financial situation. But! You should absolutely still sponsor me to work on open source because the current income levels arenāt long-term sustainable.
typescript-eslint
The biggest push I participated in was developer advocacy and software development for typescript-eslint.io. typescript-eslint is a crucial piece of the TypeScript ecosystem: itās what allows tools such as ESlint and Prettier to work with TypeScript. Yet most TypeScript developers arenāt familiar with typescript-eslint enough to use its recommended preset configurations.
My primary goals around typescript-eslint in 2022 were:
- Documentation: continuously adding to, reorganizing, and refining typescript-eslint.io.
- Organizational: documenting common contributing & maintenance tasks, and increasing funding sponsorships
- Paper cuts: fixing common user pains and longstanding bugs & feature requests
- v6: Crunching on breaking changes for our upcoming v6 major release
2022 was a great year for typescript-eslint. And Iām seriously looking forward to releasing v6 and getting more work done in the new year.
Hereās a query for all merged typescript-eslint PRs that I created in 2022.
template-typescript-node-package
Have you ever felt like you canāt keep track of all the different things you could (or should) set up for a new repository? Formatting, linting, semantic releases, spell checking, testing, type checkingā¦
I started template-typescript-node-package out of necessity in the fall and dove into into earnest in the winter. Soon it will be the basis for all of my emphasized personal open source projects. The template itself is pretty small (barely 1.5k lines of code and configuration) but serves as a really good basis for a TypeScript package.
If you want a good template for a basic TypeScript application, Iād encourage you to try it out!
TypeStat
TypeStat is the coolest project I work on. It is (to my knowledge) the most advanced static JavaScript-to-TypeScript converter available in open source as of 2022. I didnāt make much progress on it this year (more on that later), but I did land a few nice things: revamped logging, infinite wave detection, and creating a TSConfig via the CLI to name a few.
Hereās a query for all merged TypeStat PRs that I created in 2022.
Shipping Learning TypeScript
I wrote a book! š
Learning TypeScript is the culmination of a yearās journey into book authorship. OāReilly first contacted me about writing it in May of 2021. I started writing it in June of 2021, and production completed the first week of June.
Writing a book is tough. It was a year-long commitment to keep writing - and then also continuously improving based on editor feedback and my own proofreading. I must have spent at least 300 hours in total working on it. Getting Learning TypeScript released was a massive relief.
Iām mostly satisfied with how the book came out. The last few weeks before production completion were pretty hectic and allowed more typos into the book than I wanted. But the overall flow of the book -how it explains topics and how it orders those explanations- makes me happy.
Missed Opportunities
As fun as 2022 was, I missed out on some key areas of growth. Hindsight is 20/20 and I do wish Iād have had the time and focus to invest in these things more.
Community Building
Iāve never been a community builder, developer advocate, or any role like that before. But now that Iām working on open source projects full-time, community building is actually a significant part of my duties. And Iām very much out of my league.
In particular, Iāve found myself struggling with:
- Attracting & keeping repeat maintainers on any of my projects
- Building bridges between typescript-eslint and adjacent projects in the web ecosystem
- Creating a presence on Twitch (or knowing what to do with viewers)
Technical contributions in open source are all fine and good, but itās the community-oriented projects that go the furthest. I hope I can grow in this area through 2023.
Content Creation
I get asked whether Iām going to create video walkthroughs of Learning TypeScript or other general TypeScript content. I would have loved to become a go-to resource for learning TypeScript and other web development topicsā¦
ā¦but I donāt have the time. Iām limited in what Iām able to engage with on pressing commitments in my personal life throughout the year. And thereās not enough time left over to do a good job both on open source and on creating good educational content.
So, I opted out of being a ācontent creatorā. No SEO-first blog articles on common user pains; no YouTube āLearn X with Josh!ā tutorials; nothing like that. Ah well.
Networking
Iāve been to dozens of conferences -in-person and virtual- but still feel only beginner-level at socializing with people there. Idle chit chat is fine, but following up with people after conferences? Turning connections into long-term professional partnerships, even mentorships? Iām truly lost.
Itās a little disappointing looking back at all the great people Iāve met this year and havenāt stayed in touch with. I hope to do better at this in 2023.
TypeStat Instability
Iām hopeful that getting TypeStat to a stable, relatively usable 1.0 will drastically reduce the development costs for many projects converting to TypeScript. Sadly, itās not there yet. Two negatives have been dragging TypeStat since its inception in 2018:
- I havenāt had consistent time to get it to a stable place
- I havenāt been able to find anybody else to work on it with me
Finding people who are confident in the TypeScript APIs that TypeStat uses and who have time to contribute is quite difficult. It doesnāt help that TypeStat is a hodgepodge of many hardcoded logical variations that Iāve been meaning to rearchitect en masse since 2019.
Unless something drastically changes, TypeStat will remain in its barely-working-sort-of state for quite a while. š¢
Closing Thoughts
Open source is a gigantic playground that Iāve only barely started to explore. 2022 was a fun year thatās positioned me to go deeper in 2023. Look forward to lots more stuff from me in the coming months! š„³