Truly persistent terminals in VSCode and Cursor

There are times when I am embarrassed to realize that I have accepted a painful limitation for years. In this case, it is my resistance to restarting my IDEs because I don’t want to lose my terminals. Now, thanks to a burst of motivation and a modern chatbot, I’m setup for my IDEs to resume exactly where they left off.

Continue reading “Truly persistent terminals in VSCode and Cursor”

Ready or not: The Fake Story of Music

A cartoon rocket ship launching, leaving behind an exhaust cloud and musical notes

For almost a year, I have been crafting and re-crafting a project I call The Fake Story of Music. It has been stuck in its present state for more than half of that time, and there’s so much more I want to do before it matches the vision in my head. However, I think it’s already pretty good and I’m letting go of my perfectionism.

Start with the story behind the fake story, or jump right in.

Let me know what you think in the comments on this post.

LLMs think

An “AI brain”, rendered by ChatGPT

It’s interesting to see scientific people categorically reject the notion that LLMs “think”. People write them off as “fancy autocomplete” or regurgitating their source material, and conclude that they do something categorically different than what humans can do. That it’s all just a parlor trick. I think1 that’s wrong.

Continue reading “LLMs think”

GraphQL was not the future

GraphQL Logo
The GraphQL logo. Credit: the GraphQL Foundation

Six years ago, I wrote Is GraphQL The Future? for the Artsy Engineering Blog. At the time, I thought it was possible devs might bypass REST and reach directly for GraphQL when designing APIs. We can now confidently say that the answer is “no”, but I’m still very proud of that piece, and I think I was right about a lot of other things.

I find myself revisiting GraphQL for the first time since working at Artsy, and the piece has been a useful refresher. I think I really nailed describing what GraphQL actually is, rather than analogizing it to things it has fundamental differences with.

So, what happened to GraphQL?

Continue reading “GraphQL was not the future”

Rust: First impressions

My new company uses Rust heavily for its backend systems. I’ve been interested in Rust since its beta days, but only from a distance. I was very intrigued by the ownership system, which is Rust’s most distinctive and innovative feature. I also knew it inherited a lot from languages like Scala and OCaml. How hard could it be?

Read on for some loosely organized hot takes.

Continue reading “Rust: First impressions”

search3 is coming

ChatGPT-created picture for the concept of holistic search. It is a surreal image of a magnifying glass suspended in the air looking at some kind of network of lights. There's a cloud in the background and various orbs surrounding the cloud with vague pictures inside.

Similar to how people have coined the term web3 to describe a proposed radical change in the consumer web landscape, unlocked by the blockchain1, online search is about to be disrupted by the same technology that gave us ChatGPT. Soon, we’ll be able to search by describing what we’re looking for, holistically, rather than having to think like a search engine.

Or, at least, I hope so.

Continue reading “search3 is coming”

Meet HyphenTech

GenAI logo of my made-up term

I’m proposing a new term—HyphenTech—to describe much of the tech landscape, in order encourage a better understanding of our current era of tech. Thinking of every new company as a “tech company” is too generic to be useful, but going just one level deeper is helpful.

Everybody wants to be a tech company. It’s a proven path to trillion dollar market caps. However, that path has also proven extremely narrow, only admitting a few companies into the cuatro comas club. Have we had 15 years of bad startups, or is something else going on?

Continue reading “Meet HyphenTech”

The AI Big Bang

Image generated from stable diffusion from the prompt: big bang happening in someone's brain

I generated this image with the prompt “big bang happening in someone’s brain” using Stable Diffusion

2022 has been an astounding year in AI. I don’t think anyone needs a recap (and I’m not the guy to provide one), so I’ll namedrop Stable Diffusion and GPT as examples of what I’m talking about.

While only the most jaded person could see what’s going on in AI and not be completely blown away, there is debate around exactly what the socioeconomic implications of this new phase of AI will be. On one hand, you have people already predicting that we’re in the end game for white collar workers, such as artists, writers, and software developers. Other folks, perhaps more attuned to the limitations of the AIs we’ve seen, are urging a much more sober outlook. I see massive change on the horizon, but along a different axis than some of the more simplistic predictions.

Continue reading “The AI Big Bang”

11 Principles of Engineering Management

More than 2 years ago, I decided to try to create a brief, digestible manual on the expectations of management for senior engineers at my company who are considering making the shift. At the time, I had about 3 years of management experience, including two prior companies. Enough to feel like I knew how to do the job, but not enough to feel like I should be some kind of authority on management. After letting this marinate for a couple years, I’m ready to share what I have learned.

Continue reading “11 Principles of Engineering Management”

An epic Webpack mystery

Webpack logo

For reasons I’ll explain elsewhere, I’m building a desktop app, which stores its data locally. It’s built using Electron, a toolkit for writing desktop apps using web technologies. and it uses a pure-JavaScript database called NeDB for persistence. Pretty quickly, I ran into a headscratcher of a problem. My data wasn’t actually being saved to a file but I wasn’t getting any errors or warnings.

As it turned out, it wasn’t a bug, but a complex situation involving Webpack defaults. Understanding and solving this issue took me waaaaaaay down a rabbit hole, and I thought it would be informative to share the story.

Continue reading “An epic Webpack mystery”