Portrait of Peter Bulloch

Peter Bulloch

Senior Software Engineer · Seoul, South Korea

Introduction

I am a senior software engineer with over six years of experience building and maintaining large-scale content management platforms. My work spans Java and Python backends, JavaScript and TypeScript frontends, and the cloud infrastructure that holds it all together.

Based in Seoul, I have worked closely with stakeholders across the UK and APAC, led the refactor of a 500k+ line codebase, migrated an on-premise system to AWS, and delivered AI-assisted translation and content generation workflows. I mentor junior engineers, run agile ceremonies, and care a great deal about performance, testing, and code quality.

I hold a First Class BSc in Computer Science, an F-5 permanent residency visa for South Korea, and KIIP Level 5 Korean proficiency. In 2026 I stepped away from full-time work to travel — ten countries so far — and to build my own projects.

Skills

Languages

  • Java
  • Python
  • JavaScript
  • TypeScript
  • SQL
  • HTML
  • CSS

Frameworks & Platforms

  • Alfresco
  • FastAPI
  • Django
  • React
  • SQLAlchemy
  • CKEditor
  • Apache Solr
  • Apache Lucene
  • BPMN 2

Cloud & Infrastructure

  • AWS (EC2, RDS, S3, Secrets Manager)
  • Terraform
  • Docker Compose
  • GitLab CI
  • Google Cloud
  • Ceph
  • Proxmox
  • Caddy
  • Cloudflare Tunnel

Data

  • MySQL
  • Alembic
  • Solr indexing
  • Mixpanel
  • Google Tag Manager

Testing & Quality

  • TDD
  • Playwright
  • Pytest
  • Apache JMeter
  • SonarCloud
  • Sentry
  • Insomnia

Ways of Working

  • Certified Scrum Master
  • Mentoring
  • Code review
  • Jira
  • Confluence
  • Lucidchart
  • Git / GitLab
  • AI coding assistants

Education & Certificates

BSc (Hons) Computer Science — First Class Honours

Sept 2016 – June 2019

University of Greenwich, London, United Kingdom

Certificates & Qualifications

Professional Experience

Mintel

August 2019 – February 2026 · London, UK & Seoul, South Korea

Six and a half years across three roles, moving from London to Seoul and from engineer to senior engineer on a global market research content platform. Expand a role to see the detail.

Senior Software Engineer July 2024 – February 2026 · Seoul
  • Mentored junior engineers through weekly sessions covering both technical and professional development.
  • Conducted senior code reviews across the team, checking work against the definition of done and steering technical direction.
  • Built AI translation workflows integrating DeepL, Lilt and OpenAI for manual and automatic content translation, driving a significant increase in Korean readership and sales.
  • Implemented ChatGPT-backed workflows for guided content creation, including automated summaries and introductions for long market reports.
  • Organised and ran a cross-team hackathon that set a new architectural direction for a legacy Python system.
  • Owned a suite of hundreds of automated Playwright integration tests, keeping the suite green and trustworthy.
  • Built GitLab CI pipelines for integration testing, static analysis and non-production deployments.
  • Oversaw migration of an on-premise system to AWS using EC2, auto-scaling, load balancing, RDS and Secrets Manager, with monitoring and deployment tooling.
  • Introduced cost-saving measures such as automated out-of-hours shutdown of non-production environments, saving tens of thousands of dollars annually.
  • Used Terraform for automated non-production deployments and controlled production releases.
  • Ran daily standups, weekly refinements, monthly planning and retrospectives, plus live end-of-sprint demos to users.
  • Used Cursor, GitHub Copilot, Windsurf and other AI assistants to increase delivery efficiency.
Software Engineer October 2021 – July 2024 · Seoul
  • Collaborated with stakeholders across APAC — Korea, Japan, China, Malaysia, Singapore, India and more — to refine requirements.
  • Travelled to Tokyo to deliver in-person technical training to users.
  • Led the refactor of a 500k+ line codebase into a new repository and architecture, eliminating duplication and simplifying ongoing work.
  • Led the evaluation of WYSIWYG editing technology, comparing alternatives and engaging vendors to support an executive decision on CKEditor.
  • Wrote unit tests for JavaScript and TypeScript library integrations.
  • Delivered new editing workflows that moved report authoring from Word documents taking months to a web-first process taking weeks.
  • Profiled and optimised system performance, cutting certain content searches from 90+ seconds to around 3 seconds.
  • Built endpoint and load tests with Apache JMeter including automated result checking.
  • Used Google Tag Manager and Mixpanel to track user behaviour and prioritise workflow improvements.
  • Applied SonarCloud quality gates and TDD to prevent new bugs, security issues and maintainability regressions.
  • Adopted a legacy Django system into the team: introduced versioning and deployment scripts, upgraded dependencies to reduce vulnerabilities, and fully mapped its workflows.
  • Exposed survey and consumer data to other teams so customers could reach it through an AI chatbot.
  • Participated in recruitment across multiple teams, grading technical tests and conducting interviews.
Software Engineer August 2019 – October 2021 · London
  • Developed and maintained an Alfresco-based content management system, adding features and workflows that improved the efficiency of producing market reports.
  • Worked primarily in Java on the backend, with roughly 30% frontend work in JavaScript, HTML and CSS, plus MySQL database development.
  • Indexed content and files with Solr and implemented search using Apache Lucene.
  • Designed and implemented BPMN 2 workflows, documented in Lucidchart and Confluence.
  • Gained experience with Ceph, Google Cloud and AWS S3 storage as the platform evolved.
  • Reviewed colleagues' code in Fisheye against the definition of ready and team coding standards.
  • Used Sentry to monitor, diagnose and fix live issues in end-user browsers, improving system reliability.
  • Provided technical support to global users, triaging and resolving issues in person and online.

Projects

Self-hosted Infrastructure

Where these projects live

Every project below runs on a server I built and maintain myself. A Proxmox hypervisor hosts Alpine and Debian virtual machines for each site or service, keeping them isolated and easy to rebuild. Traffic is routed through a Caddy reverse proxy and a Cloudflare Tunnel, giving each site secure public access with automatic TLS and no ports exposed to the internet. Projects are automatically deployed using locally hosted GitHub runners on the server, so updates pushed to main are deployed automatically.

  • Proxmox
  • Linux (Alpine, Debian)
  • Caddy
  • Cloudflare Tunnel

Memoker

Full-stack workflow and document generation platform

A full-stack application with a FastAPI backend, React frontend and MySQL database, orchestrated with Docker Compose. Includes JWT authentication, Alembic migrations, localisation with i18next, OpenAI-assisted content generation, and automated PDF generation via Playwright, pypdf and fpdf2.

  • Python 3.11
  • FastAPI
  • Pydantic v2
  • SQLAlchemy
  • React 18
  • Vite
  • MySQL
  • Docker Compose
  • Pytest

cardgames.party

Self-hosted real-time card table app

A self-hosted real-time card table app with a Python FastAPI/Uvicorn backend and a React/TypeScript/Vite frontend. WebSockets sync lobby and game state to every device, while a server-authoritative Python rules engine supports Texas Hold'em. Players can scan physical cards with NFC or enter them with a visual picker. It models lobbies, roles, chips, pots and game state snapshots, and runs with Docker Compose behind HTTPS and a reverse proxy.

  • Python
  • FastAPI
  • Uvicorn
  • Pydantic
  • React
  • TypeScript
  • Vite
  • WebSockets
  • Texas Hold'em
  • NFC
  • Docker Compose

peterbulloch.dev

This portfolio

A deliberately simple static HTML and CSS page. No build step, no framework, no dependencies.

  • HTML
  • CSS

pancha.party

A small celebration of a friend's cat

A single-page static site built with plain HTML, CSS and JavaScript. Small, fast, and entirely unserious.

  • HTML
  • CSS
  • JavaScript