Lead Software Developer | Full-Stack Engineer (Angular, Scala)
Specialized in Clinical Trial SaaS & High-Performance Reporting
Based in Dublin
I am a Lead Software Developer specializing in building high-performance, scalable enterprise solutions for the clinical trial industry. With over 4 years of experience at Zelta, I have evolved from a front-end specialist into a full-stack architect, leading major platform transformations and performance optimizations.
I thrive on solving complex technical debt. Most recently, I led an architectural migration of our reporting stack—moving from legacy JSP/Oracle to a modern Angular/PostgreSQL environment. This initiative successfully removed 10,000+ lines of legacy code and enabled real-time report editing, a key requirement for our enterprise clients.
Performance Engineering: Optimized core compliance and audit trail reports, reducing execution times from 150 seconds to just 7.5 seconds (a 95% performance gain).
Product Innovation: I led the development of the Dashboard Summary and an advanced custom filtering system that fundamentally transformed user autonomy. These features have since become a primary selling point in client-facing product demonstrations.
Full-Stack Leadership: Significant contributions across the stack using Java, Scala, and Angular, including the development of secure login infrastructures supporting OTP, OTL, and TOTP.
Code Quality: Passionate about TDD and unit testing; consistently reduced year-over-year defect rates by prioritizing robust testing and proactive debugging.
Modern Workflow & AI Integration: I am a power user of AI-assisted development tools, including Claude (Opus/3.5) and GitHub Copilot. By integrating these into my daily workflow, I've accelerated my ability to refactor complex codebases and generate comprehensive test suites. I view AI as a force-multiplier that allows me to focus on high-level architecture and strategic problem-solving while maintaining a high velocity of delivery.
I am dedicated to mentoring junior developers and collaborating with cross-functional teams (Design/Product) to ensure we build software that is as intuitive as it is powerful.
Angular
Scala
TypeScript
Java
PostgreSQL
React
HTML5 / SCSS / Javascript ES6+
Performance Engineering, Technical Leadership, AI-Assisted Development (Claude/Copilot), RESTful API Design
Git, Docker, Jira, Figma, Agile/Scrum
I engineered an automated report email scheduling system that enables users to configure the
recurring delivery of customized PDF and Excel reports directly from the platform. The system
captures the exact context of a report—including saved views and complex
filters—and pairs it with a flexible, role‑based distribution model. Crucially, I
implemented permission‑aware data filtering to ensure that recipients only receive the specific
clinical data they are authorized to access.
On the backend, I built a dedicated batch job infrastructure to handle timezone‑aware
scheduling, dynamic document generation, and secure email dispatch with comprehensive audit
tracking. By eliminating manual export routines, this full‑stack solution allows study managers
to automate consistent, secure, and highly targeted data delivery across their entire
organization.
I redesigned the report export pipeline by transitioning it from a synchronous, blocking
request to an asynchronous batch job architecture. Previously, generating large PDF or Excel
exports for studies with thousands of subjects would lock the browser and often lead to
timeouts; the new system offloads these tasks to a background process, immediately freeing the
user to continue working while a polling mechanism in the Angular frontend tracks
progress.
This full‑stack solution involved developing a custom batch handler and a scheduled cleanup
batch job to automatically manage storage. The result is a dramatically improved user
experience that eliminates frozen screens and allows users to queue multiple exports
simultaneously without interrupting their workflow.
I designed and built a full‑stack, Excel‑style filtering system for the platform’s reporting suite, allowing users to slice and explore clinical trial data directly in the UI. It supports type‑aware controls such as text operators, numeric ranges, and timezone‑aware date pickers, enabling complex, combinable queries. I implemented the feature end‑to‑end—from Angular components to Scala backend logic and PDF/Excel export integration—which significantly reduced reliance on external data manipulation, became a standout element in customer demos, and earned a “Crushing It” award for its impact on the product’s competitive edge.
I executed the end-to-end migration of the platform's login experience from a legacy JSP-based system to a modern Angular single-page application using the Carbon Design System. This comprehensive full-stack effort involved developing 25 new REST API endpoints across 8 backend resources, covering everything from SSO/SAML integration and two-factor authentication (OTP) to CAPTCHA-based challenge validation and secure password recovery. On the backend, I implemented rate limiting and expirable session states while simultaneously removing over 3,400 lines of legacy JSP code.
An internal ReactJS / CoutchDB / NodeJS / WebSocket application done from scratch for
Nokia.
Helping a hundred course creators to automate the development of Powerpoints-based
courses (eg: "What is 5G?").
The tool generates hundreds of files per course which it stores on a Sharepoint cloud (MS
Graph API). It sends emails, generates a word description of the course, a word scope of
work and excels files. It created a PDF merged version of the Powerpoints. These files are
automatically filled, named, moved, exported according to the data entered by the user.
An internal ReactJS / Typescript / GraphQL application done from
scratch for Nokia.
Allows you to rate and comment on courses generated by TDP. The app retrieves the list of
reviewable courses with the API of an LMS (Learning management system). It sends an email to
reviewers when they can grade a course. The average grade is saved in the LMS at the end of
the grading period. If the course has reached its scoring target, it is ready to be deployed
and sold, otherwise, it will go back into development. A panel admin allows you to configure
a start, end date and a minimum number of reviews per course.
Also allows you to launch SCORM courses by downloading them from the LMS, modified them, and
uploading them to a Sharepoint.
Let's start working together ☕