Selected work

Professional case studies and public technical work.

This page combines detailed impact stories with selected, sanitised code archives and current public projects. The source is shown only where publication has been authorised and reviewed.

Professional case studies

Professional work described without internal code or data.

Each case study covers the problem, constraints, my responsibility, the approach and the result.

01

Vodafone · Atlantic NOC · Vodafone Spain

€250k+annual savings

I reduced energy use in Vodafone Spain’s RAN.

While supporting Vodafone Spain’s RAN from the Atlantic NOC, I designed, developed and implemented the Python and ISSTAR automation. I also coordinated the team resources and planned and executed the production change requests (CRQs) needed for rollout.

Python · ISSTAR · Production rollout

Read case studyClose case study

Problem

The opportunity was to reduce RAN energy use without disrupting live network operations.

Constraints

The rollout required controlled production changes, operational checks and coordination of the people available to deliver them.

My responsibility

I led the work from concept to rollout: I designed, developed and implemented the automation, coordinated team resources and planned and executed the required CRQs.

Approach

I used Python and ISSTAR to automate the energy-saving workflow, then introduced it through controlled production changes.

Impact

The automation reduced network energy use and delivered more than €250,000 in annual savings.

What this shows

The result depended on both the automation and the operational planning needed to deploy it safely.

02

Vodafone · Atlantic NOC · Vodafone UK

€70kestimated cost of the external alternative

Automated BMC Remedy ticket assignment for my team.

I built a Python workflow that read our daily Excel roster, assigned tickets to available team members, sent email alerts for higher-priority tickets and recorded ticket metrics.

Python · BMC Remedy · Excel · Ticket metrics

Read case studyClose case study

Problem

Ticket assignment was manual and had to account for who was available each day and which tickets had the highest priority.

Constraints

The workflow had to use the team’s existing Excel roster and BMC Remedy process, while alerting higher-priority work and retaining useful metrics.

My responsibility

I designed and built the workflow for my team around its existing roster and ticket process.

Approach

The Python workflow read the daily Excel roster, assigned BMC Remedy tickets to available people, sent priority alerts by email and recorded ticket metrics.

Impact

It replaced an external implementation estimated at €70,000 and fitted the team’s existing process.

What this shows

Designing it around the team’s existing roster and workflow made it practical to use.

03

Vodafone · Atlantic NOC · Vodafone UK

RAN portalseveral data sources in one planning view

Combined Vodafone UK RAN data in one planning portal.

I built a PHP, Python and Huawei HSL portal that combined several Vodafone UK RAN data sources used by our team to prepare network projects.

PHP · Python · Huawei HSL · RAN data

Read case studyClose case study

Problem

The RAN information used to prepare network projects was spread across several operational data sources.

Constraints

The portal had to work with the existing data sources and proprietary operational environment; neither the source nor the real data can be published.

My responsibility

I built the portal for the team I worked in, based on the information we needed to prepare network projects.

Approach

I used PHP, Python and Huawei HSL to combine the available RAN data in one web interface.

Impact

The team could consult the RAN information needed for project planning in one place.

What this shows

The portal was useful because it presented the data in the same context in which the team planned network projects.

Only publishable context is included. Internal code, data, screenshots and system design remain private.

Selected professional archives

Systems I built for real operational work.

These repositories preserve authorised, sanitised code from retired workflows. They show how I translated operational problems into tools used by the teams where I worked.

Professional archive · Individual project

Incident Assignment Orchestrator (GIL)

A sanitised archive of the system I built to assign Remedy incidents and tasks from the team plan, record the distribution and alert the team to higher-priority work.

SharePoint plan · Power Automate ingestion · MySQL history · Grafana reporting

  • Python
  • Selenium
  • MySQL
  • Grafana
View repository

Professional archive · Individual project

Phoenix — RAN Operations Portal

The sanitised archive of an internal portal I owned from idea to operation, bringing fragmented multi-vendor RAN information, checks and reporting into one workspace.

Requirements · Full-stack development · Deployment · Operational support

  • PHP
  • Python
  • MySQL
  • JavaScript
View repository

Professional archive · Individual project

RAN Cutover Preparation Tool

A Python desktop application that automated the workbook preparation required to move 2G and 3G sites between BSCs or RNCs.

Transformation reduced from hours or days to minutes once the source data was ready

  • Python
  • pandas
  • openpyxl
  • CustomTkinter
View repository

Professional archive · Individual project

RAN Topology Change Automation

A Flask application that replaced hours of manual find-and-replace work when preparing LTE control-plane and user-plane IP changes.

Working LTE flow · Synthetic end-to-end demo · Automated tests

  • Python
  • Flask
  • Socket.IO
  • openpyxl
View repository

The archives exclude production credentials, operational data, internal endpoints and proprietary inputs. Their READMEs state the authorship, historical scope and validation boundary.

Product case study · Team project

Apollo Med Tech

ApolloMed Tech: leading and building a health-data wallet MVP.

A six-person project that grew from a degree assignment into a working web and mobile MVP, competition pitches and a business plan. I led the team and contributed directly to the Go web application, microservices and Fabric integration.

  • Go
  • Hyperledger Fabric
  • PostgreSQL
  • Kotlin Multiplatform
Read the ApolloMed Tech case study →

Current public projects

Code I continue to develop and maintain.

These independent repositories include the code, tests and documentation and are separate from the historical professional archives.

Independent project · Active development

VS Code VSIX Picker

A Python CLI I built to select and download VS Code extension packages compatible with the version and platform of air-gapped VMs.

Compatibility filtering · SHA-256 · Archive validation · CI

  • Python
  • CLI
  • VSIX
  • Testing
View repository

Independent project · Operations tooling

Proxmox Service Notes

A Bash tool that updates Proxmox service notes from configuration files. It includes a dry-run mode, input validation, HTML escaping and TLS certificate verification.

18 automated tests · ShellCheck · GitHub Actions

  • Bash
  • Proxmox
  • Testing
  • CI
View repository

Academic archive

Coursework kept separate from professional work.

These archived group projects cover web development, distributed systems, concurrency and testing. Each README identifies the contributors and records how the work was validated.

Academic archive · Group project

Distributed Experiment Monitoring Platform

A Java and PHP group project that receives sensor data through MQTT, stores it in MongoDB and MariaDB/MySQL, coordinates experiments and displays alerts in a monitoring interface.

Java build passed · PHP syntax checks passed · Original submission had no automated tests

  • Java 17
  • MQTT
  • MongoDB
  • MariaDB
View repository

Academic archive · Two-person project

Concurrent and Distributed Game

A two-person Java 17 project that uses locks, concurrent tasks and a TCP client/server protocol. The Swing interface was adapted from material supplied by the lecturer.

14 automated tests · JaCoCo · GitHub Actions

  • Java 17
  • Concurrency
  • TCP
  • Maven
View repository

Academic archive · Group project

Personalized Schedule Builder

A group Java web application that imports WebCal data, builds personalised timetables and detects timetable overlaps and room-capacity conflicts.

55 automated tests · JaCoCo · GitHub Actions

  • Java
  • Web
  • Maven
  • Testing
View repository

These university assignments are archived and read-only. Private data and course-only material were removed before publication.

BaluLabs

My personal infrastructure and automation lab.

BaluLabs documents how I run, monitor and recover self-hosted services in my Proxmox environment.