J. HUNTER JOHNSON LLC · INDEPENDENT CONSULTING

Practical help with software, AI, and data.

I’m J. Hunter Johnson. I help organizations build useful software, put AI to work, and make their data easier to trust.

THE WAY I WORK

Start with the problem.

Understand the goal and the people who need the result.

Make it concrete.

Turn the next useful step into something you can review.

Build for what comes next.

Keep maintenance, handoff, and everyday use in view.

SERVICES

A clear problem. The right kind of help.

Software & integrations

Build the missing piece. Improve what you have.

Custom programming, web development, and integrations for organizations with a practical problem to solve. Start with the people, the existing system, and what needs to work better.

AI adoption & training

Make AI useful in real work.

Find a suitable use case, prototype a workflow, and give people the training to use it thoughtfully. Define how outputs will be evaluated and where human judgment belongs.

Data architecture & modernization

Give your data a clearer foundation.

Make sense of fragmented data, plan better models and integrations, and approach legacy modernization with a clear picture of ownership, quality, and downstream needs.

Explore services and engagement formats →

SELECTED WORK

Practical problems. Thoughtful solutions.

Three examples across software, AI, and data—from community work and a product of my own.

See the work and the background →

THE PERSON BEHIND THE PRACTICE

Senior experience. Personal involvement.

My background spans enterprise data architecture, consulting, software development, and AI adoption. Through J. Hunter Johnson LLC, I bring that experience to clearly scoped contract work.

You work directly with me. I’m based in the Dayton, Ohio area, with a long-standing interest in language, games, and how things fit together.

More about the practice →

A GOOD PLACE TO START

What are you working on?

Tell me what you want to accomplish, what is getting in the way, and any timing or constraints. We can discuss whether I can help.

[email protected]

From the archive

A curious life, in writing.

Explore the blog →

Technology, books, games, and notes along the way. The original writing stays part of the conversation.

When Autocomplete Gets a Security Page Instead of Data

When an editor typing into a long catalog form triggers an autocomplete search, they expect a dropdown of matching names. What they do not expect is a silent freeze or a generic “network error” because an intermediary security service decided to challenge their browser. In complex web applications protected by services like Cloudflare, background AJAX […]

A Date and a Time Are Not Yet a Timestamp

If an event organizer tells you a run starts at 1:30 a.m. on Sunday, November 1, they have given you a date and a time. What they haven’t given you is a timestamp. In any region that observes daylight saving time, 1:30 a.m. on the first Sunday of November happens twice. When the clocks “fall […]

When a Database’s Encoding Label Is Wrong

Modernizing an older database rarely comes down to changing a configuration switch from Latin-1 to UTF-8. Take an application that has run for fifteen years across several server migrations. You inspect the schema and see columns declared as latin1. But looking at the actual text, you find users have been entering em dashes, smart quotes, accented […]