Skip to content

Software engineer at Rapid7, Belfast

Janiru
Fonseka

I write backend software for security products. At Rapid7 I work on Java services, search infrastructure and the pipelines that build them, and I take my turn on call when something breaks.

I studied Computer Science at Queen's University Belfast. Before that I designed and built websites for companies in the UAE.

Message me on LinkedIn (opens in a new tab)GitHub (opens in a new tab)

Experience

  1. Sept 2025 – Present

    Software Engineer

    Rapid7, BelfastFull timeCurrent

    My team owns a set of security-critical production services. I keep them up to date, make them quicker to build, and make problems visible before customers notice them.

    • Led Java and Spring Boot upgrades on critical systems without disrupting the service, then moved garbage collection to Generational ZGC and scoped a move to virtual threads.
    • Merged a cluster of client microservices into fewer services, so there is less to build, release and maintain.
    • Added detailed health metrics to our OpenSearch clusters and built re-indexing that runs with no downtime.
    • Parallelised our Maven builds in Jenkins, which cut full build times by more than half.
    • Take my turn on a 24-hour on-call rotation for production incidents.
    • Wrote Kiro agent skills that bump dependencies and dig through logs, which the team uses for tests, reviews and debugging.
  2. May – Aug 2025

    Software Developer

    Sourcing Lens with Queen's University BelfastSummer role

    Backend engineer at an early-stage startup. I built the service layer and the pipeline that turns uploaded documents and images into structured data you can query.

    • Java Spring microservices talking over gRPC, behind an API gateway that bridges HTTP and gRPC, with Keycloak for sign-in.
    • Uploads go to S3 and onto a queue, where LLM-based workers normalise them before they are stored for querying.
    • Worked with domain experts on the design and built for ERP integration over an API.
  3. June 2023 – Aug 2024

    Software Engineer Intern

    Rapid7, BelfastPlacement year

    I took tickets from triage through to review and testing across several products and their microservices, helped customers move onto Rapid7's new cloud SIEM, and fixed Snyk-reported vulnerabilities within their deadlines.

  4. 2019 – 2021

    Web Developer

    Self-employed, United Arab EmiratesFreelance

    I designed and built websites for companies in engineering, manufacturing, industry and education, and ran each project myself from the first meeting to the contract. Every site started as a Figma prototype and came with a custom CMS so the client could edit it without me.

Projects

Side project

A story-pointing tool for sprint planning

  • Go
  • Next.js
  • WebSockets

poll.janiru.com (opens in a new tab)

Google Meet's polls didn't fit the way my team points tickets, so I built a replacement. You start a poll from a template, share the link, and everyone votes. My team at Rapid7 uses it in sprint planning.

Nobody needs an account. Opening the link gives you an anonymous JWT, so each vote still belongs to one person.

Most of the work went into dropped connections. If someone's Wi-Fi cuts out mid-vote, the client reconnects and the server settles any race between the old and new connection, so the vote still counts and every screen shows the same result.

Final year project

ClaimAura, an audit trail for insurance claims

  • Hyperledger Fabric
  • Go
  • gRPC
  • RabbitMQ
  • React

A private, permissioned blockchain for tracking insurance claims, so every change to a claim leaves a record that can be checked later. Go microservices sit behind an API gateway that speaks both gRPC and REST.

Speed
Writing to the chain synchronously was slow, so writes go through a RabbitMQ queue and the API answers straight away.
Privacy
Personal data stays off chain. Only a SHA-256 hash is written on chain, which keeps it GDPR compliant while still proving nothing changed.
Identity
Each user has their own Fabric certificate, so every action can be traced to a person. Access rules map onto Fabric's attribute-based model across separate organisation channels.
Testing
Unit and integration tests, CI on GitHub Actions, and Cypress end-to-end tests for the claimant and insurer dashboards.

Client work

A members' library with its own video pipeline

  • Laravel
  • Statamic
  • Alpine.js
  • Go
  • FFmpeg
  • Cloudflare R2

See the digital library (opens in a new tab)

PIMA-UAE is an alumni association and one of my freelance clients. I built their online members' platform: a library of videos and reading material, plus a discussion forum, on Laravel and Statamic with Alpine.js.

Hosted video platforms charge a lot for a library like this, so I wrote a small Go service that transcodes uploads with FFmpeg and stores them in Cloudflare R2. Videos are served through the CDN, and access is checked before a file can be fetched.

Toolbox

Languages
Java, Go, JavaScript, PHP, SQL
Frameworks
Spring, Node.js, Next.js, React, Laravel, Tailwind CSS
Infrastructure
Kubernetes, Docker, Terraform, AWS, DigitalOcean, Cloudflare, Hyperledger Fabric
Data and messaging
PostgreSQL, MySQL, MongoDB, RabbitMQ, OpenSearch, Redis, SQS, SNS
Testing and CI/CD
Jenkins, GitHub Actions, Grafana, Prometheus, k6 synthetic testing, Snyk
AI tooling
Kiro and Kiro CLI, Claude, GitHub Copilot, AI-assisted SDLC

Education

  1. Sept 2021 – June 2025

    BSc (Hons) Computer Science with Professional Experience

    Queen's University BelfastFirst Class Honours

    Four years, including a year in industry as a software engineering intern at Rapid7. My final year project was ClaimAura.

Outside work

  • Treasurer, Queen's Computing Society

    Aug 2023 to June 2024

    Looked after the society's finances and its annual funding, and co-organised and budgeted the EEECS Formal 2024, which ended with a donation to Macmillan Cancer Support.

  • Spanish, beginners' level

    Aug 2024

    Completed the Spanish Early A1 course at the Queen's University Language Centre.

Contact

The best way to reach me is a message on LinkedIn. I read them all and reply there.