Backend Engineer (2 yrs production) + AI Researcher (1 yr MSc — Dublin City University). Built 10+ Spring Boot microservices, shipped a production LLM agent (QuerySense), and automated a 24-hour manual ETL pipeline down to under 5 minutes. Strong systems thinking across distributed architecture, query optimisation, and agentic AI.
→ Seeking Backend / AI Engineer roles — Ireland, United Kingdom, USA or across Europe
EXPLAIN ANALYZE has existed for 30 years. It prints terrifying output that most developers ignore. I built QuerySense to fix that — paste a slow query, get back plain English: what's slow, why, and exactly how to fix it. With before/after proof.
Most Java memory tools show you a diagram. I found that most of them — including textbooks — quietly teach wrong mental models. So I diagnosed 8 specific misconceptions, then built a visualizer that corrects each one through how it renders, not through a tooltip or a footnote.
== trap above 127Most people learn SQL by memorizing syntax. I found the real problem runs deeper — learners have no mental model of what the database is actually doing when a query runs. So I built a visualizer that animates every operation: rows being scanned, filtered, joined, grouped, and mutated — live, step by step, in the order MySQL actually executes them.
Personal cloud-based image hosting platform built for global sharing.
Dublin City University
Sinhgad Institute of Management
Marathwada Mitra Mandal College of Commerce
IIT Madras — NPTEL
CertifiedAvailable for full-time SWE roles. Dublin-based, open to remote across Europe.
prasadneeraj2898@gmail.com// Deeply nested public Response processUser(Request req) { if (req != null) { if (req.getUser() != null) { if (req.getUser().isActive()) { return doProcess(req); } else { throw new Ex("Inactive"); } } throw new Ex("No user"); } throw new Ex("Bad req"); }
// Guard clauses, flat public Response processUser(Request req) { validate(req); User user = req.getUser(); requireNonNull(user, "No user"); requireActive(user); return doProcess(req); } private void requireActive(User u) { if (!u.isActive()) throw new InactiveUserEx(u); }
helpskillsexperienceprojectscontactsudo hire me