karlhorky

@karlhorky – Karl Horky


github.com/karlhorky
maintaine.rs/karlhorky

Hi, I’m Karl Horky (GitHub, LinkedIn), Technical Founder at UpLeveled - tech education programs for all skill levels.

In an educational landscape of AI-generated solutions, disconnected islands of knowledge and barriers to entry, I focus on helping students level up by designing accessible curricula and contributing to Open Source.

Then and Now

I’ve been in Open Source for over 13 years, and in tech for more than 20, through which I have used a range of languages and technologies, from QBasic and C to Perl, PHP, Python, Ruby on Rails and then finally on to JavaScript / TypeScript.

Now I mostly work with TypeScript, React, Next.js, Node.js, SQL and Bash.

Through my work in education, I’ve become interested in:

UpLeveled and Open Source

My work at UpLeveled has focused on designing, developing and delivering accessible curricula for students ranging from beginners to more experienced engineers.

As part of this work, we maintain some of our own Open Source projects:

Papercuts

In addition to our own projects, UpLeveled also lives what we teach and aims to be good Open Source citizens by contributing to other projects when we encounter problems.

One common type of problem we encounter is the “papercut”:

  1. bugs or inconsistencies which appear to be minor
  2. to more experienced developers, mildly annoying and not worth fixing
  3. to students, potentially a blocker to their learning

These papercuts can include errors during setup steps, documentation issues, small bugs and even security issues.

By fixing these papercuts, we can help students focus on learning and building projects, and raise all boats by contributing the fix to everyone else.

Upgrading

Another area of focus for UpLeveled is keeping up to date:

Some examples of issues and pull requests related to these upgrades:

In January 2023, while adopting the Next.js App Router and switching our material to React Server Components, we found that Route Handlers did not have the same capabilities to check return types using TypeScript, and contributed this feature to Next.js:

During a June 2024 iteration on our Expo / React Native lecture, we switched the scaffolder and template we used and dropped the obsolete config in .npmrc:

More recently, a March 2025 upgrade to eslint-import-resolver-typescript@4.2.0 caused resolution errors for Bun modules like bun:test while using eslint-plugin-import-x, which we fixed with a documentation update:

Supporting Ecosystem Evolution

Over the long term, another goal of UpLeveled is to help evolve the ecosystem by extending compatibility, encouraging adoption of new technologies and discussing new standards proposals.

Extending compatibility has included issues and pull requests such as:

Encouraging adoption of new technologies has also ranged across multiple topics, but an area which has often required additional attention has been ESM, including TypeScript module resolution:

While we have not yet invested the time to become deeply involved in shaping standards by activities like writing spec docs or becoming a TC39 champion, we have at times added feedback in existing discussions or contributed short proposal notes:

Tips for Contributors

I can highly recommend getting involved in Open Source - benefits include the ability to:

There are plenty of resources on how to get started with open source, so I won’t write another guide on that. If you’re looking for a good place to start, try How to Contribute to Open Source by Open Source Guides.

Here are my more personal field notes for contributors:

  1. Superpower: match the style and philosophy of the project
  2. Superpower: review your own contributions
  3. Start small, but contribute widely
  4. Don’t fall in love with your solution
  5. Use AI carefully in your contributions
  6. Use the Refined GitHub browser extension to simplify the GitHub interface and add helpful features
  7. Report issues with enough information to make them actionable

Suggestions for Maintainers

During my time contributing to Open Source, I have also developed opinions on how projects can optimize their CX (Contributor Experience) for new contributors:

  1. Optimize for contributions from web clients such as the GitHub web interface
  2. Optimize for AI-assisted contributions
  3. Simplify documentation and make it easier to understand for a wide audience
  4. Provide a bug reproduction template
🏠