I constantly build ideas when I decide there's a market/feature gap, or I need some concept to exist for another idea.
Thanks to modern tech, I can keep doing this (as a way to play in emerging tech), while not even having to charge for it!
Amazing times we live in!
Here are a few of my latest side/passion-projects:
Itty.sh is a single-step (that's a theme here) anonymous *temporary* file sharing app. Think "virtual flash drive". Distributed on a global edge network (Workers), itty has served over 35GB in nearly 70k files and features hot+cold storage for lightning-fast delivery, and to-the-second file expiration for security. Itty allows users to quickly store and share files without the headaches of typical file-sharing apps.
Retheme is a browser extension (currently released for Chrome) to improve consumer browsing experience across the world’s most trafficked websites. The extension silently removes popups, overlays, ads, offers, etc. via custom CSS injection. Backed by an edge network, this delivers themes as fast as the base site itself can load, and can handle traffic from millions of users.
Pairing human interaction with a custom GPT “virtual assistant” to create an augmented consumer experience. DrinkBuddy is an exploration into pre-configured chat bots, and the blending of human interaction with GPT output.
Instagram-like portfolio experience for artists, automatically synced from Dropbox folders on users’ own devices, and delivered through a lightning fast edge serverless API (Cloudflare Workers). The goal here was a one-step creation of galleries from your own desktop - simply drop files in a folder, and a public gallery is automatically created.
...and I build for everyone.
Once I found the world of open source, there was no going back.
While building things for myself, employers, or the world at large,
I've occassionally needed to create tooling that didn't quite exist for
the given space yet. Early in my career, one of my mentors encouraged
me to polish one such tool up and share it with the world.
This experience paved the way, and today, I routinely share my more
generically-useful libraries.
Nowadays, I'm focused on creating an ecosystem of tiny microlibraries to replace heavier options in the lean world of edge-serverless,
and fostering a community around this goal. In particular, most of this centers around
itty-router, a feature-dense microrouter, designed for
Cloudflare Workers (although 100% runtime agnostic), and weighing in at as little as ~450 bytes.
Along the way, I've tried to apply my own small set of principles to development:
Work backwards
Start with how you want your code/product to look/work in the most ideal world, as if it was already written. Iterate here first, THEN make it actually work.
The most maintainable code is the simplest code.
K.I.S.S.
Don't test too early...
Except in the rare cases, skip testing in the early phase. Iterate and harden the API/interface first, then add test coverage only when it becomes important to protect the code integrity. Testing too early wastes a *ton* of time as you rewrite tests around a shifting codebase.
...but don't skip testing
Every tool has its place. If you look at my open source libs, you'll notice many have 100% coverage with hundreds of tests to cover only a few lines of code. This is because users don't like their experience to break just because we add a cool new feature. Protect them from yourself!
APIs are hard to change
Changing an interface/API in production is hard. You'll lose customers, period. What do you do about this? Be far more thoughtful about your end-code/API design up front, because once it's live, it's very hard to change. Don't paint yourself into a corner on day 1.