
Hi, I'm
Paul Holmes
Software Engineer
About Me
I've been passionate about programming since I was 12 and have worked professionally as a software engineer for over 25 years. I've always loved solving puzzles, and for me, programming has always felt like that -- challenging, inventive, and deeply satisfying. When people think of creative disciplines, they usually picture musicians, painters, or writers -- not programmers. But coding demands as much imagination as technical skill. The puzzles I enjoy solving most are the ones that result in code that's elegant, efficient, and enduring.
After a period of personal exploration and skill renewal -- including earning professional certifications and developing a new portfolio app -- I'm excited to return to the field with fresh perspective and renewed focus.

Non-Programming Stuff
My other interests include cognitive science and its intersection with computer science. If you want to hear me talk your ear off for a couple of hours, ask me about the difference between consciousness and intelligence.
Being the lifelong nerd that I am, I am of course into video games and science fiction, though I prefer to think of myself as more of an aficionado than a fan -- I have discriminating tastes!
Far too late in life, I finally acquired a love of cooking. If you ever do a video call with me you'll see that an avalanche of gadgets from my tiny kitchen has overflowed into my bedroom.
I also love bicycling. That's how I get around the city. It's certainly a more enjoyable (and healthier!) way to commute than cramming yourself into a subway train.
Resume
Summary
Paul Holmes
Highly experienced engineer with a career-long focus on best practices and sound methodology, a strong background in both front-end and back-end technologies, and deep experience in Java and web services. Demonstrated expertise as lead developer, designer, mentor, team leader and staff manager.
Skills
Programming Languages
- Java
- Python
- JavaScript
- TypeScript
- HTML/CSS
- C/C++/C#
- SQL
Frameworks & Databases
- React
- Flask
- Spring
- Hibernate
- SQLAlchemy
- MySQL
- MongoDB
Tools & Technologies
- AWS
- Docker
- Jenkins
- GitHub
- Jira
- REST
Professional Experience
Founder & Owner
Last Call Software
January 2024 - present
- Developed full-stack portfolio app employing Python, Flask and SQL Alchemy on the back end, and TypeScript, React and Axios on the front end, deployed on an AWS server in Docker containers.
- Completed over a dozen training courses in subjects including React, Kubernetes, Serverless Computing, Digital Security, and many more.
- Earned professional certificates in Meta Front-End Development and IBM Back-End Development.
Senior Developer/Programmer Manager
Omnigon Communications
June 2015 - July 2016
- Led an international team that developed and maintained the company's flagship software product, a sophisticated Java web app that gathered large volumes of data in real time from live sporting events and distributed and transformed it for use in mobile apps and web pages.
- Personally developed the most important sections of code, including a dual pull/push communications module that ensured data was delivered reliably and on time.
- Mentored junior developers, assigned tasks, and conducted code reviews.
- Technologies employed included Java, Spring, MongoDB, REST, AWS, JSON, Junit, Jenkins.
Senior Developer/Programmer Manager
Mediaocean (formerly Donovan Data Systems)
October 1993 - June 2011
- Managed teams of up to a dozen programmers that developed the company's flagship web application while actively continuing as lead developer.
- Led the team in their design sessions, estimated and enforced the timeline, assigned tasks to team members and reviewed their work, and acted as the liaison with upper management.
- As developer, designed interfaces and wrote the most crucial sections of code.
- Technologies employed included Java, Spring, Hibernate, SQL, MySQL, Oracle, HTML, XML, XSD, REST, JMS, MQ, Jira, and JUnit.
Education
Bachelor of Arts in Computer Science
Columbia University
2011 – 2014
- Graduated Cum Laude
- Concentration in Artificial Intelligence
Portfolio
TrackEats is a full-stack web application that allows users to accurately track the nutritional content of their diet.
- Deployed in Docker containers on an AWS EC2 instance
- Front end is built with TypeScript, React, Tanstack Table and Axios
- Back end is built with Python, Flask, and SQLAlchemy
- Alternate pluggable back end in Java, Spring Boot, and Hibernate
- Database is MySQL
- Secured with JWT tokens
CrossCracker is a crossword puzzle solving app.
- Uses AI to solve crossword puzzles. No, really!
- Back end is Python, front end is HTML/JavaScript/CSS, connected by Flask-hosted web service
- Currently uses the Llama 3.1 (8b) model. I tried several models, and that was the best compromise between size, speed, and effectiveness.
- I had to stick to a small, a simple crossword because the AIs I can feasibly use for this purpose just aren't very smart, and they never will be. The big models you use on the Internet (e.g., GPT-4o) are far more capable, but you can't download and run a model like that for free, and even if you could it would never run on a single moderately-powered development PC like mine.
- Thanks to Ollama, the code required to integrate an AI model into an app is trivial. The tricky part is getting the prompt just right. You have to "convince" the model to respond in a very specific, structured way, and it doesn't always obey. It's really more like training a dog than writing code!
- The algorithm for selecting which clue to ask at any given moment and which answers to use was far more difficult than integrating the AI. Trickier still was deciding when an answer that was previously placed was wrong and should be removed. I'm still improving that code, and could probably continue to do so forever.
- Unfortunatly, it's too expensive to put an AI-enabled app on the Internet just for personal use. But you can see the video of it running here, and the code is available on my GitHub (see the link to the left).
NonoLogic is a nonogram solver.
- Back end is Python, front end is HTML/JavaScript/CSS, connected by Flask-hosted web services
- Doesn't guess -- it proceeds entirely by deductive logic.
- If further progress on a puzzle cannot be made without guessing, it stops.
- I could potentially put this app on my website but I just haven't gotten around to it. In the mean time, the code is available on my GitHub (see the link to the left).