Sasha 🐏💨 Koss
@koss.nocorp.me
490 followers 310 following 190 posts
I make rad things. Many are open-sourced, like date-fns. Some, like https://mindcontrol.studio are not.
Posts Media Videos Starter Packs
koss.nocorp.me
I added two more functions, `todo` and `ensure` (that assert non-nullish, unlike `always` that asserts truthiness).

Also, I covered it with tests and detailed JSDocs.

Who would've thought that one could push such a simple code that far!
koss.nocorp.me
On the other hand, I'm having so much fun designing solid architecture and also writing a lot of code!

I'm actually happy that LLMs are bad at making changes keeping big picture in mind. They leave all the joy to us!
koss.nocorp.me
I ended up wasting so much time rewriting stuff that seemingly worked but was actually subtly buggy on many levels.

This is why I dislike using "spec" to describe agent instructions. It leads to an illusion of control, while you are, in fact, slowly rolling to a cliff edge.
koss.nocorp.me
If left unchecked, agents eventually end up hook-locking themselves and unable to progress.

I got this effects spaghetti after just a few (spec-driven!) sessions. It is simply deciding whether to show a key form, form with an error, or a masked key view.
Source code: https://gist.github.com/kossnocorp/40061810bb1149ea44cb7a06bf1d411b
koss.nocorp.me
Oh yeah, there's no such thing as too many GitHub stars: github.com/kossnocorp/a...
koss.nocorp.me
Here's an example of when it's handy.
koss.nocorp.me
I just published the stupidest npm package, `alwaysly`. There's nothing to it but two one-liner functions.

I use them often and am too lazy to drag them around.

Btw, if you don't use this pattern in your TypeScript code, you're missing out!
koss.nocorp.me
Over the years only three organizations realized their promise to support open source, despite endless stream of startups and coins contacting me.

They are Open Collective, @github.com, and thanks.dev (they are so awesome, I don't understand why not so many people talk about them) ❤️
koss.nocorp.me
The only podcast I'm listening to nowadays is @syntax.fm. So fun and educational too! Always learn something new.

And that's not because they, along with @sentry.io, sponsor date-fns via thanks.dev, but for that, they are absolute legends!
koss.nocorp.me
It is a massive achievement for such a big company to put money where their mouths are.

I wish more companies were that dedicated, not for my wallet's sake, as I spend more money on Sentry than they gave back 💸, but for the health of the community!
koss.nocorp.me
The only podcast I'm listening to nowadays is @syntax.fm. So fun and educational too! Always learn something new.

And that's not because they, along with @sentry.io, sponsor date-fns via thanks.dev, but for that, they are absolute legends!
koss.nocorp.me
I love using Next.js for web apps, but man, having to use Vite with React Router for a VS Code extension webview is liberating!

A simple SPA with no care for latency is closest one can get to React-promised joy.
koss.nocorp.me
My takeaway is that you can't vibecode something like that. It needs an engineer in the loop, constantly improving the system.

This is despite detailed specs.

In hindsight I should've designed it myself, but it's hard to notice the problem without writing the code.
koss.nocorp.me
Nothing to refactor at this point, just a full rewrite.

The complication comes from the fact that VS Code extension backend communicates with a webview via messages, and without architecture established by a human engineer, it is doomed to fail.
koss.nocorp.me
If left unchecked, agents eventually end up hook-locking themselves and unable to progress.

I got this effects spaghetti after just a few (spec-driven!) sessions. It is simply deciding whether to show a key form, form with an error, or a masked key view.
Source code: https://gist.github.com/kossnocorp/40061810bb1149ea44cb7a06bf1d411b
koss.nocorp.me
`cargo publish --workspace` is awesome!
koss.nocorp.me
As MCP maintainers, I think it is important to show the will to choose the right decisions over the ones that benefit the business.

It is a small issue, but therefore, it is very telling. If they ignore it, then we will know that the same will happen with MCP eventually.
koss.nocorp.me
I tried different code agents, including GitHub's Copilot (all the models), Cursor, and Windsurf. I found them all too slow. Code quality is not up to my standards. Fine for simple tasks, though.

Now, after working with Claude Code, I'm finally having a good time.
koss.nocorp.me
In other news, a heavy Singapore rain drenched my monitor (and PC a bit), so I had to disassemble it to dry it 😭
koss.nocorp.me
I want to learn Go to tinker with the Go TypeScript implementation. How do I start?
koss.nocorp.me
Now I have a smol family of libraries focused on build size and performance:

🔷 tinyfloat · github.com/kossnocorp/t...
🔷 smolxxh · github.com/kossnocorp/s...
🔷 smolcanon · github.com/kossnocorp/s...
🔷 smolcsv · github.com/kossnocorp/s... (🚧 WIP)
koss.nocorp.me
📊 Benchmark results:
koss.nocorp.me
I just published [email protected] that serializes JS values into a stable string representation.

Happy to say it's 30% faster than alternatives, and it's just 185B!

I built it to use with my other library, smolxxh (just 381B), to get JS value hashes.
koss.nocorp.me
I finished 20th of 44 with a 4/7 score in a local rapid chess tournament. Much better than I expected.

Also, even losing was fun. I didn't expect that either.
koss.nocorp.me
I got a Singaporean FIDE ID! Can't wait to get brutally beaten by elementary schoolers in chess 🫠