Oliver Nad, Python and Django developer

I build, test, host and support production web apps. Two Irish nursing homes run their rotas, time clock, leave and staff records every day on a Django platform I designed and wrote.

Based in Ireland. Available now for remote roles and remote contracts.

LinkedIn profile (opens in a new tab)

Oliver Nad
  • 2 nursing homes, about 120 staff, use ÁitFoirne every day
  • 4,700+ automated tests run before every release
  • 40+ connected tools in one login, from one Django codebase
  • 10 s to 3 s: the busiest admin page, after cutting queries from 104 to 39
  • 500+ enterprise support cases for Meta, at 95% satisfaction

Work

Everything here is built with Python and Django, and hosted and supported by me.

ÁitFoirne weekly staff rota with colour-coded shifts and missing-cover alerts - fictional demonstration data
Main case study

ÁitFoirne Live today

A platform for Irish nursing homes: staff rota, time clock, breaks, leave, HR files, policies with sign-off and audits, with optional Clinical records and a private Family Portal. 40+ connected tools in one login. Records support HIQA inspections.

The problem

Nursing homes juggle rotas, clock-ins, leave and staff files across paper and spreadsheets, and need those records ready when an inspector asks.

What I built

  • Automatic rota generation across departments that respects leave and each person's limits
  • A time clock with a location check and a shared PIN pad
  • A daily hours review that feeds payroll exports to Excel and PDF
  • Holiday hours under Irish rules (8% of hours worked), with server-side checks so the admin screens and the staff phone app always show the same balance
  • Swaps, cover and holiday requests
  • A staff phone app (PWA, nothing to install)
  • An in-app support desk
  • An AI assistant for admins, called Bruno

Engineering

  • One codebase, with features switched on per installation by server-side feature flags.
  • Each customer gets its own server and its own PostgreSQL database on Hetzner in the EU (Ubuntu, nginx, gunicorn), with no shared tenancy.
  • The busiest admin page went from about 10 s to about 3 s after cutting database queries from 104 to 39 per page, with the rendered output proven byte-identical before release.
  • Uploaded files (policies, certificates, message attachments) are designed to sit behind a Django permission check and be served by nginx through X-Accel-Redirect. The change rolls out in off, shadow and enforce modes, so that no file is lost.

Security

HTTPS everywhere, personal logins that lock after repeated failed attempts, role-based access with extra rights needed to see wages, and an activity log of who changed what and when.

Stack

  • Python
  • Django
  • PostgreSQL
  • JavaScript
  • PWA
  • nginx
  • gunicorn
  • Hetzner

Result

In daily use in 2 Irish nursing homes, about 120 staff.

Visit aitfoirne.com (opens in a new tab)

Next

The same codebase is also the base of Foireann, a core app for any business that works in shifts, and of sector apps for hotels, restaurants, cafés and pubs, shops, golf clubs, security and childcare:

More projects

Maša Learning

Live today

A free learning website for children in Ireland, with tools for parents and teachers.

  • 148 playable Maths, English and Gaeilge activities
  • Parent and teacher portals, with PIN access for children
  • Parent and teacher sign-in with Google
  • Progress tracking, built with children's privacy in mind
  • Python
  • Django
  • JavaScript
  • Google OAuth

Expenses

Early access

Income, expenses and receipts for self-employed people in Ireland.

  • Receipt photos, PDF invoices and several lines of work, with weekly or monthly pay cycles
  • Totals with and without VAT
  • Read-only access for the accountant, and one-click Excel export with receipts
  • Early access at €10 per user per month
  • Python
  • Django

Nursing Home Calculators

Live today

Free calculators for nursing homes and care teams.

  • Guides alongside the calculators
  • Scheduled jobs that run in the background
  • Technical SEO: structured data and sitemaps
  • Ad-supported, with Google AdSense
  • Python
  • Django
  • PostgreSQL
  • JavaScript

IrskaDanas

Public beta

A Croatian-language news and classifieds portal for people from the region living in Ireland.

  • Trusted sources translated and summarised with the OpenAI API
  • A person checks every post before it is published
  • Python
  • Django
  • PostgreSQL
  • OpenAI API

This website

Live today

The site you are reading, on Django 5.2 LTS and PostgreSQL 17 in a Debian LXC container, published through Cloudflare Tunnel.

  • An app configurator at /build/ that prices a plan as you go and saves it as a PDF
  • An enquiry form with a honeypot, a signed timer and rate limiting
  • Transactional email through Brevo, and a free holiday-hours calculator
  • Python
  • Django
  • PostgreSQL
  • WhiteNoise
  • Debian
  • LXC
  • Cloudflare Tunnel
  • Brevo

The code is in private repositories. I am happy to walk you through it on a screen share.

How I work: AI-assisted, test-first, human-approved

I use AI coding agents every day. They speed up the work; they do not decide what ships. Every change goes through the same five steps.

  1. Plan

    Claude Code reads the code in plan mode and writes a plan: what changes, which files, which tests, what could break. Nothing is edited.

  2. Approve

    I approve one small phase with an exact list of files. Database changes need a separate approval.

  3. Build

    Claude Code (Opus and Fable models) or Cursor makes the change inside that list. New tests must fail before the change and pass after it.

  4. Verify

    The full test suite runs. A second agent, Grok, checks the change in a real browser on a separate test installation, against a written test plan.

  5. Release

    I commit and deploy by hand, with a rollback plan. AI tools never push code, log in to servers or touch customer data.

Every phase ends with a written report, and the main projects keep a handover document, so nothing depends on memory.

Tools: Claude Code, Cursor, Grok, the OpenAI API, Git and GitHub.

Hosting and operations I run myself

  • Hetzner production servers, one per customer (Ubuntu, nginx, gunicorn, systemd, PostgreSQL). I moved there from DigitalOcean App Platform and Droplets to cut cost and keep operations simple.
  • A self-hosted Proxmox VE server with LXC containers for staging, demos and side projects, published through Cloudflare Tunnel, with Cloudflare DNS and HTTPS.
  • Releases: git pull, migrations, collectstatic, a service restart, then smoke tests and a Cloudflare cache purge.

Personal logins that lock after repeated failed attempts, role-based access, an activity log, file downloads behind a permission check (rolling out in stages), and secrets kept only in server environment files.

How a release reaches customers

  1. Laptop (Cursor, Claude Code)
  2. GitHub
  3. Test installation on Proxmox
  4. Production on Hetzner

Customer apps run on their own Hetzner servers. This website, the test installations and the side projects run on the Proxmox server, published through Cloudflare Tunnel with Cloudflare DNS and HTTPS.

Skills

Backend

  • Python
  • Django
  • REST APIs
  • webhooks
  • authentication and role-based access
  • background jobs with Celery and Redis

Data

  • PostgreSQL
  • SQL
  • data modelling
  • migrations
  • query optimisation
  • Excel and PDF exports

Front end

  • HTML
  • CSS
  • JavaScript
  • Bootstrap
  • PWA

Infrastructure

  • Linux (Ubuntu, Debian)
  • Proxmox VE
  • LXC
  • nginx
  • gunicorn
  • systemd
  • Hetzner
  • DigitalOcean
  • Cloudflare
  • WhiteNoise
  • Git and GitHub
  • SSH

Quality

  • Django test framework
  • regression and characterisation tests
  • query-count tests
  • feature flags
  • staged releases
  • written browser QA plans

AI

  • Claude Code
  • Cursor
  • Grok
  • OpenAI API in production

Support

  • Tier 2 enterprise support
  • SSO
  • SCIM
  • Okta
  • OneLogin
  • Google Workspace
  • root-cause analysis

Learning now: Docker

Experience

  1. 2023 – now

    Founder and developer, Oliver Software Studio (ÁitFoirne and the apps above).

  2. 2021 – 2023

    Technical support specialist, Tier 1 to Tier 2, Wipro, supporting Meta enterprise customers across EMEA. 500+ cases at 95% satisfaction; SSO, SCIM, APIs, authentication.

  3. 2016 – 2021

    Care assistant in two Irish nursing homes. The idea for ÁitFoirne came from this work.

  4. 2006 – 2016

    Team lead and customer support, Croatian Telecom (T-Mobile), Croatia.

Education

  • Diploma in Software Development, Code Institute, Dublin
  • Technical Support Fundamentals, Google (Coursera)

Recognition

  • .IE Digital Town Awards, Digital Hero finalist, 2021

Languages

  • English (fluent)
  • Croatian (native)

Work with me

I also build and look after Django apps for Irish businesses, working remotely.

Custom web apps

Rotas, bookings, records or portals that replace spreadsheets and paper.

Integrations and exports

Connect payroll, accounting or other systems, with Excel and PDF exports your accountant can use.

Take over a Django app

Upgrades, tests, performance and security for an existing Django or Python app.

AI features

Translation, summaries and assistants built on LLM APIs, with a person checking the output where it matters.

For example: IrskaDanas, and Bruno, the ÁitFoirne assistant.

How a project runs

  1. A 20-minute video call.
  2. A written scope and a fixed quote.
  3. Weekly progress on a separate test installation.
  4. Handover with documentation.
  5. Optional support and hosting.

Price by agreement, depending on the project. You get a fixed quote before any work starts.

Get in touch

Email me or use the form. I read every message myself.

Email:

LinkedIn profile (opens in a new tab)

We aim to reply within two working days.