I specialise in designing and developing robust, secure and on-premise friendly backend systems in Java. I care deeply about writing software that is built to last, and solves headaches instead of causing them.
I am passionate about creating backend systems with enterprise-grade features. I enjoy building automated tasks, self-monitoring systems, and I am always looking for ways to improve the efficiency and reliability of my code.
I always try to write software with thorough error handling, thorough validation and defensive coding practices. Graceful failure handling is not optional... in my eyes it is fundamental.
I design software with self-hosted deployments in mind. Full ownership of data and infrastructure is something I care deeply about. While cloud services have their place, I believe a high quality self-hosted solution can excel.
Features like graceful error handling, backup and monitoring tasks and audit logging should be included in every software project. I believe that these features are essential for building good software.
I have Hands-on experience with enterprise Java technologies. I have used these tools extensively to build REST APIs and backend systems under real-world conditions, to solve real world problems.
My primary language. Starting with Java 8 when I was 14 years old, Java has always been my go-to language for projects.
Experienced in designing clean, well-documented and versioned RESTful APIs.
Extensive experience deploying and configuring applications on Tomcat and Tomcat Enterprise Edition for reliable, high-performance servlet hosting.
Proficient in Jakarta EE, specifically the Apache implementations that ship with Tomcat, from JAX-RS for REST endpoints to BatchEE for batching small, scalable tasks.
All my projects I host on my own privately hosted Ubuntu Git server, for version control and collaboration. Integrated with CI/CD for automated building.
I run my own JetBrains TeamCity server for automated CI/CD, with GPG signature verification for some clients for added security.
I have used JMX to monitor application heaps to optimise memory usage and find leaks.
My preferred method of hosting a project in production is Ubuntu server.
I have experience using ESXi as my hypervisor of choice for running large virtualised environments.
I use React.js for any frontend task required.
By far my favourite for reverse-proxying and load balancing.
One of the few cloud services I'll endorse, perfect for DNS management, CDN and DDoS protection.
These are the projects I am most proud of. They represent the kind of engineering challenges I enjoy tackling and the depth of work I put into every system I create.
The CMP is essentially a big data engine designed to take in data from multiple disconnected systems and unify it into a single database, where it can be analysed, queried or exported elsewhere. Built in Java, the platform is engineered around flexibility, reliability and full control over data flow. I have designed an interface where other developers can write integrations into the CMP by simply extending a class.
Pluggable connectors to external systems that can be added, removed or reconfigured on the fly without downtime.
Configurable schedules to pull data in from connected systems or export unified data out to downstream systems.
Comprehensive logging and error handling throughout every layer of the system for complete observability.
Flexible notification system that alerts on events, errors or completed processes through configurable channels.
I designed and implemented a scripting language with a fully functional interpreter, written entirely in Java. The project covers lexical analysis, language parsing and parsing Java objects into key value trees.
This was an incredibly fun project for me that I continue to extend. It arose when I realised some of the reports required by the above CMP project would likely change from time to time. Instead of hardcoding reports which would require software updates or creating and implementing another hotswappable "integration" like system, I figured a little scripting language could handle this.
JeparaScript can be used in a number of ways, as a script that can manipulate Java objects, to creating graphs for use in dashboards or data reports. And it's as easy as including the library in your project and creating a new JeparaScript<[Object Goes Here]> object.
I am always open to discussing new work opportunities, new projects, technical challenges or collaboration opportunities. Feel free to reach out.
Send Me an EmailExperienced with both on-premise and cloud-based infrastructure, with a focus on smaller businesses. I understand how to build IT environments that genuinely fit the way people work.
Experienced with setting up, configuring and maintaining on-site servers and network equipment. Comfortable managing environments where data stays in-house.
Familiar with planning, migrating to and managing cloud-based infrastructure. I understand when cloud makes sense and when on-premise is the better fit.
Active Directory, user account provisioning, group policies and access control. Experienced with structuring user management around organisational needs.
Experience with email server setup and management across different platforms. From Exchange to hosted solutions, I know how to get email working reliably.
Day-to-day IT operations including troubleshooting, system updates, backup configuration and security hardening across both Windows and Linux environments.
Every environment I have worked on is different. I enjoy tailoring IT setups to fit specific operational needs rather than applying generic templates.
I believe the best IT setups are the ones that fit the business using them. I have always focused on understanding operational needs first, then building technology around those needs rather than the other way around.
I start by understanding how a business actually runs day to day. What people need, how they work, where the friction is. No assumptions and no generic solutions.
I choose and configure tools based on what the business genuinely requires, whether that is on-premise, cloud or a practical mix of both.
I handle the setup myself: servers, networking, user accounts, email, security and backups, all properly configured and documented.
Technology changes, businesses grow. I stay involved to keep systems secure, updated and aligned with evolving needs.
I have spent years working across the hospitality industry, from pubs and bars through to fine dining restaurants and hotels. I've gotten my hands dirty helping KPs and led the guest experience in the dining room as a Chef de Rang. I understand how front-of-house, back-of-house, reservations, housekeeping and management all connect. That hands-on experience means I do not just set up systems; I configure them around how hospitality businesses actually operate.
Experienced both using and managing electronic point-of-sale systems. From initial setup and menu configuration to staff training and ongoing maintenance, I know what makes a till system work during a busy service.
Hands-on experience with PMS platforms across hotels and serviced accommodation. Reservations, guest profiles, room management and reporting, configured to match the property's workflow.
I know how restaurants, bars and hotels run day to day. That means IT decisions are informed by real operational knowledge, not guesswork. From kitchen display systems to guest Wi-Fi, I understand the context behind every requirement.
I am always open to discussing new work opportunities, new projects, technical challenges or collaboration opportunities. Feel free to reach out.
Send Me an Email