Overview

I developed The Algebrator from an algebraic calculator into a broader problem-solving environment through repeated use on real puzzles.

It supports conventional mathematical operations alongside specialized solver functions I built in response to specific problem types. These include tools for integer constraints, letter-value problems, remainder and modulo relationships, number sequences, digit operations, word-based constraints, and other puzzle-oriented forms of reasoning.

I built it with Java, Spring Boot, Vaadin, and Symja, added automated JUnit testing, and refined it iteratively through a human-directed AI-assisted development process.

[Placeholder: Algebrator solver interface screenshot]

A Recurring Development Pattern

The Algebrator's feature set grew from real puzzle-solving needs. A characteristic development cycle:

  • Identify a problem that is awkward or impossible to express using the existing toolset
  • Analyze the underlying reasoning
  • Define the smallest reusable function or workflow that would solve that class of problem
  • Create an implementation specification
  • Use GitHub Copilot as an implementation assistant
  • Test the result against the original puzzle and additional cases
  • Revise the feature when real use reveals workflow or design weaknesses
[Placeholder: Example puzzle solved with Algebrator]

What It Demonstrates

The Algebrator demonstrates not only software development but the evolution of a specialized tool through sustained practical use. The solver functions exist because real puzzle-solving situations demanded them — I didn't design them in advance from a feature checklist.

The iterative refinement process also serves as a case study in human-directed AI-assisted development: I define the requirements and testing strategy first; the AI assists with implementation within those bounds.

Demonstrations

Watch the Algebrator in action: Algebrator + Puzzle GridWorks demo video. You can also try the deployed application.

Interested in the work?

I'm interested in conversations about software engineering, AI-assisted development, prototyping, automation, and projects that cross technical and creative boundaries.