My most recent work is Element Sketchpad.
In the demo video, all of the animations are written in “construction calculus” which is a domain-specific language for compass and straight-edge constructions. The construction calculus can be written by hand, but it is really a representation of the history of your canvas, it’s an append only log of events, which the user interface, online participants and computer programs can all write to.
Inside of Element Sketchpad, you can write the construction calculus using Element Scheme, a standard scheme with some construction calculus helpers embedded.
To produce the animations, I built up a basic geometry library, starting with the first book of Euclid’s Elements. Then I built a purely Euclidean graphics library in Element Scheme. A major feature of Element Scheme is the use of turtles. In Element Scheme, turtles are construction creators (e.g. right triangle, Pythagorean theorem, Seed of Life) who you can pass some “given” construction to start with, and then they run their construction routine and return back only the points that you care about. This allows dropping intermediate constructions, keeping the canvas clear and reducing the size of the geometric relationships tracked.
This video shows some elements of the graphics library like stamping basic shapes, creating multiple instances of parameterized animations, creating 2D projections of 3D objects, using hidden lattices to place objects on the canvas, parameterizing animations at different rates and synchronizing them, algorithmic animations, and animations using scene script objects. To synchronize animations we use “beats” to organize the canvas and “samples” to organize animations, and then the final output also depends on the frames-per-second used for canvas rendering.
To create Element Sketchpad, I relied heavily on inspiration from formal methods and concept design. I spent a lot of time upfront reading formal notations like Z and BNF, to make sure that the LLM articulated the correct concepts. I also spent a ton of time choosing which concepts to pull together and how to compose them.
The first amazing feeling of success on this project came after eight or nine hours of reading dense notation, and pages and pages of specifications. Reading, commenting, updating, re-reading. Designing the system. And after hours of design, I said to the machine, “okay, build it”, and when I came back, everything worked exactly like we drew it up, and there were zero bugs. The first iteration was perfect.
Give me your hardest problems
My favorite job is figuring out how to do whatever stumps everyone else. I’ve got a long list of satisfied customers and happy co-workers who can testify.
I’m not afraid to feel stupid, and I’m not afraid to fail. And as a result, I usually find approaches to problems that no one else considered.
If you want to know more, you can check out my Work History.
| Currently available for: |
|---|
| AI Solutions Engineer |
| Software Architecture |
| Technical Leadership |
| Product Strategy |
| Engineering Consulting |
| Senior Software Engineer |
I know what I’m doing
I listen, pay attention, and understand the business and technology. And then I take initiative and responsibility, and I find the next steps towards real-world results.
I come from the world of startups, where I filled roles from backend to frontend, from pair programming to leading teams, and from product development to infrastructure, without missing a beat. And I come from freelancing, where I learned to think like a co-founder and a CTO, understanding every business problem and delivering complete solutions.
I’ve been there before
I’ve completed dozens of successful projects, and two of the startups I worked for were acquired for software that I designed.
At WeFind, I designed a data aggregation and information system, integrated with proprietary machine-learning processes and models. All of the credit goes to the founder for the product vision, and he was happy to report to me that through pivots and transitions, my system powered the product into the acquisition.
In my early days at GroupSense, I worked with two other engineers to conceptualize and design an OSINT analysis engine. I designed a plugin architecture for capturing upstream sources, and a series of intermediate artifacts to feed into enrichment queries and reports. The system held together over years of growth, became a core part of operations, and in the end, when Cognyte was looking for software to collect, analyze and enrich OSINT data, they got it by acquiring GroupSense.
I’m ready to work
Paratroop me into any problem area, and I’ll clear a path to the solution.
I can lead, follow, build, repair, research, write and hack. I have fun moving things forward, whether it’s debugging old code, writing new code, architecting systems, mentoring engineers or turning fuzzy concepts into working solutions.
I know how to keep myself busy, and I know how to make myself useful on day one.
What do you get?
You get a results-oriented team member who ships products, builds teams, and solves problems.
If you have a software application, a software team, a product idea, a bunch of features that need to be built, users that need to be listened to, documentation that needs to be written, legacy code that needs to be fixed or development processes that need to be brought up to production standards, then you probably would like to talk with me for a few minutes.
Why I love this work

My name is Tom. I’ve designed multiple products that have led to acquisitions. I’ve built and trained multiple teams that became profitable, self-sustaining business units.
Linux since 2003
In the early 2000s, I was building custom bot harnesses using pixel recognition and headless X window automation. I’ve been around the block a few times since then, and I’m happy to talk about any tech stack, methodology or platform you want to discuss.
Ready for AI long before ChatGPT
Long before I had ever heard of an LLM, I was obsessed with Z (The Ultimate Language) and a bunch of other stuff all related to something called formal methods, which gave me the tools to express the concepts that made my software work.
I spent years banging head against math books learning specification languages, and all of the studying paid off big time when coding agents replaced Vim.
When coding with AI, I can communicate faster and with more precision because I speak and read mathematical languages that were designed exactly for this purpose.
AI-first as Director of Product
In 2025, I started an AI-first product team, built agent-driven workflows to automate business processes, and as a result became an early adopter of OpenClaw and Pi.
We used formal methods to design and develop a business application platform, and then used that platform to iterate on several different product ideas, ultimately shipping a final product for iOS and web.
AI-first as a software construction expert
I am all-in on coding agents, and I have the knowledge and experience to get the most value out of them.
After decades obsessed with every topic related to software construction, I see bad decisions long before the point where most people would even notice a problem. After managing teams and completing large projects, I know how to aim for code quality even when I’m not the one writing the code.
I’m happy that people are vibe-coding. I like to vibe-code. But when I want to build something that will last, I’m happy that I know what I’m doing, and that I know how to keep agents doing the right thing through all kinds of tricky situations.
What would make us a good fit?
If you work in a business that does something genuinely useful and you actually care about solving the problems in your business, then I’d be interested in hearing from you.
If you can clearly articulate your business model, your market and your product vision, then I will be able to understand where value is created in your systems and I’ll look for ways to create more of it.
I have high standards, but I have no expectations about other people’s experiences or abilities. I’m happy to work with anyone if they show up with good attitude and effort.
If you’re working on something interesting, or your stuck on a problem a need outside perspective, I’d love to hear from you.
Enter your email address here:
Thanks for checking out my homepage. Have a great day!
