Introducing Exray

2025-12-22. Filed in public, programming.

This past weekend I had the itch to build a tool for inspecting the intermediate values of subexpressions in a more complex expression. The result is Exray.

I didn't really need this tool. But next semester I'm teaching a class on developing software with AI, and I need projects that I'm willing to share or co-develop with AI. I have been too selfish to share my other projects, just as I have been unwilling to let someone else raise my children.

In some ways, sharing is hard. I really like programming and am in no rush to develop faster than I can think. At the same time, I have to admit that there are parts of software development that I do not enjoy. These parts are either monotonous (like implementing 20 subclasses of BinaryOperator based on an example) or they require particular knowledge that I do not currently have (like how to write a type signature for a class literal in TypeScript). In one case, I think before using it. In the other, I think after using it. Either way, I'm thinking.

There are been a number of occasions where AI has showed me a technique that I went on to use in other situations in which I wasn't using AI. I am using it to develop myself as much as software.

Interestingly, even though GitHub Copilot was a great help, I still feel like Exray is mine.