Software portfolio for early-career roles in software engineering, test automation, and platform / cloud engineering.
I am currently completing a Postgraduate Diploma in Software Development, Cloud Computing and DevOps at the University of Galway, building on prior experience in healthcare, clinical research, data, and regulated environments where accuracy, traceability and delivery discipline mattered.
Early-career software engineer focused on backend development, distributed systems, cloud, CI/CD, automation, and test automation. This portfolio highlights hands-on projects across Java, C#, C++, Python, Flask, Firebase, Spring Boot, React, Azure Functions, Jenkins, GitHub Actions, Docker, MySQL, AWS, and ESP32-based IoT telemetry.
Best fit role families
- Software Engineering
- Test Automation / Software Test Engineering
- Platform / DevOps / Cloud Engineering
Key links
- GitHub profile
- Firebase Serverless REST API Demo
- Petitions CI/CD, Observability, and Browser Automation App
- HiveWatch Cloud IoT
- HiveWatch Lite
- Distributed Flask Wiki Cache App
- Property Tracker CLI
Comments application where users can submit and view comments through a Firebase-hosted front end and serverless REST API. I used it to demonstrate cloud API design, automated verification, Infrastructure as Code validation, deployed smoke checks, and operational alerting.
What it shows
- Serverless back-end development and deployment on Firebase Hosting, Cloud Functions v2, Express, and Firestore
- API contract visibility through OpenAPI and Swagger UI
- Layered automated verification using Jest, Pact, Playwright, Newman, and Go
- Practical CI/CD and Infrastructure as Code (IaC) hygiene
- Operational awareness through deployed smoke testing and Slack failure alerting
Links
Petitions web application that lets users create, browse, search for, and sign petitions. I used it as the basis for a deployment-focused engineering project covering CI/CD, WAR packaging, cloud-hosted runtime delivery, browser automation, and observability.
What it shows
- Java web application packaging and deployment with Spring Boot and Thymeleaf
- Jenkins-driven CI/CD workflow from build and test through to controlled deployment
- Dockerized Apache Tomcat runtime delivery on AWS EC2
- Browser-level automation using Cypress
- Metrics, monitoring, and tracing with Spring Boot Actuator, Prometheus, Grafana, OpenTelemetry, and Jaeger
Links
HiveWatch Cloud IoT is my capstone project. It is a cloud-connected beehive monitoring prototype that helps reduce blind spots between hive inspections.
The system takes a real temperature reading from a DS18B20 temperature probe connected to an ESP32 board. The ESP32 sends the reading over Wi-Fi to a hosted .NET 8 Azure Function. The reading is then stored in Azure Table Storage, retrieved through a hosted GetRecentTelemetry endpoint, and shown in a local ASP.NET Core Razor Pages dashboard.
The dashboard shows the latest temperature reading, recent readings, whether the data is fresh or stale, and a simple brood-area temperature alert status.
On 23 May 2026, I completed a fresh full-chain bench validation. This confirmed that a live DS18B20 temperature reading could travel through the full current system from sensor, to ESP32, to Azure, to storage, to retrieval, and finally to the dashboard.
This is a bench-validated capstone prototype. It is not a production hive monitoring system, a biological diagnosis tool, a deployed Azure dashboard, or a completed long-running telemetry system.
What it shows
- Physical sensor integration using an ESP32 and DS18B20 temperature probe
- Arduino/C++ firmware for reading and sending telemetry
- C#/.NET 8 Azure Functions for receiving and retrieving telemetry
- Azure Table Storage for storing accepted readings
- A local ASP.NET Core Razor Pages dashboard for viewing readings and status
- End-to-end validation across hardware, Wi-Fi, cloud ingestion, storage, retrieval, and dashboard display
- Evidence-led troubleshooting, decision logging, GitHub workflow, and careful scope control
Links
Local full-stack beehive management prototype for manually recording hives and temperature readings, exploring practical application workflows, and generating a scoped Hive Health Insight. It combines CRUD, search, filtering, reassignment, aggregation, and optional OpenAI-backed summary generation with a deterministic local fallback.
Unlike HiveWatch Cloud IoT, this project is intentionally focused on local application design, business logic, UI/API integration, bounded AI feature integration, and layered automated testing rather than scalable field telemetry or near-real-time monitoring.
What it shows
- Full-stack development using Java, Spring Boot, React, and TypeScript
- Layered back-end design with controllers, services, repositories, DTOs, and JPA
- Domain behaviour including CRUD, search, filtering, relationships, aggregation, and API-driven UI flows
- Small-scope AI integration through the Hive Health Insight feature, with optional OpenAI-backed summaries and a deterministic fallback path
- Layered testing with repository, service, controller, component, and browser smoke coverage
- Supporting QA artefacts including traceability and AI-assisted test design notes
Links
| Project | Problem it solves | Core design approach | Main engineering signal |
|---|---|---|---|
| HiveWatch Lite | Helps address the limitation of scattered or manually maintained hive temperature records by giving beekeepers a simple way to associate temperature readings with individual hives. It is a local full-stack beekeeping record application focused on hive records, temperature-reading entries, and scoped insight generation from the available temperature data. | Local Spring Boot and React full-stack application with REST API flows, domain modelling for hive records and temperature-reading records, bounded AI-assisted insight generation over the available temperature data, and layered automated testing across backend and frontend behaviour. | Full-stack application engineering, practical domain modelling, UI/API integration, manual temperature-record handling, pragmatic AI feature integration, and test-focused development in a realistic beekeeping context. |
| HiveWatch Cloud IoT | Helps beekeepers reduce blind spots between hive inspections, especially when hives are spread across different locations. It is a cloud-connected beehive temperature monitoring prototype that moves a real temperature reading from a physical sensor to a web dashboard. | ESP32 and DS18B20 temperature sensing using Arduino/C++ firmware, C#/.NET 8 Azure Functions for telemetry ingestion and retrieval, Azure Table Storage for persistence, and a local ASP.NET Core Razor Pages dashboard showing latest readings, recent readings, freshness status, and brood-area temperature alert status. The 23 May 2026 bench validation confirmed that a live DS18B20 reading could travel through the full current chain. | End-to-end embedded-to-cloud engineering using real hardware, Wi-Fi telemetry, serverless cloud functions, cloud storage, hosted retrieval, and dashboard monitoring, supported by evidence-led validation, staged delivery, GitHub workflow, and clear scope control. |
Wikipedia lookup application that retrieves article data through a distributed three-tier setup and caches repeat results to reduce unnecessary external lookups. It combines a Flask front end, remote Python execution on AWS EC2, and Dockerized MySQL caching on a separate virtual machine.
What it shows
- Python and Flask back-end development
- Distributed application flow across host, local virtual machines, and AWS EC2
- Remote script execution over SSH using Paramiko
- Dockerized MySQL caching with a cache-aside retrieval pattern
- Practical troubleshooting across networking, remote execution, and data boundaries
Links
Python command-line tool for analysing Irish new-house price data from a Google Sheets source, producing repeatable descriptive outputs and exportable results for review. A browser-based terminal demo wrapper makes the CLI easier to inspect online.
What it shows
- Python scripting and automation
- Google Sheets API integration and structured data handling
- Descriptive statistics and repeatable analysis workflows
- Defensive programming and validation
- TXT/CSV export and basic CI quality checks
Links
For QA / Test Automation roles
- Start with Firebase Serverless REST API Demo
- Then review Petitions CI/CD, Observability, and Browser Automation App
- Then review HiveWatch Lite
- Then review Property Tracker CLI
For Platform / DevOps / Cloud roles
- Start with Petitions CI/CD, Observability, and Browser Automation App
- Then review Firebase Serverless REST API Demo
- Then review HiveWatch Cloud IoT
- Then review Distributed Flask Wiki Cache App
For Software Engineering roles
- Start with HiveWatch Lite
- Then review Petitions CI/CD, Observability, and Browser Automation App
- Then review Firebase Serverless REST API Demo
- Then review HiveWatch Cloud IoT
- Then review Property Tracker CLI
This site is published with GitHub Pages and served through my personal domain.
Early-career software engineer building backend, distributed systems, cloud, CI/CD, automation, and IoT telemetry projects with Java, C#, C++, Python, Flask, Firebase, Spring Boot, Azure Functions, Jenkins, Docker, MySQL, and AWS.