Back to portfolio
Paper

IoannisStavropoulos

Full-Stack Software Engineer

TypeScript / Node.js / SaaS / fintech

Profile

Five years of software engineering across SaaS, card systems, and payments. The work spans the stack, from SQL query tuning through APIs and background jobs to admin and front-facing UI.

Work Experience

DenovoSoftware Engineer
Sep 2025 - Present
  • TypeScript
  • NestJS
  • Vue
  • PostgreSQL
  • AWS
  • BullMQ
  • Stripe
  • Rebuilt notification delivery for a client's production e-commerce platform as a concurrent Postgres outbox and BullMQ pipeline (retries, lease-based recovery, idempotency) across push, SMS, and email.
  • On the current e-commerce client, build and maintain NestJS and PostgreSQL: schema and migrations, background jobs, Vue admin, storefront CSS/branding, and console work (deploys, logs, CloudWatch).
  • Built internal Stripe tooling for charges, refunds, and customer onboarding/offboarding, covering billing flows the product code didn't yet handle.
  • On an inherited circular-economy platform (Vue, AWS monorepo), shipped features, fixes, and charge-refund scripts on the billing cycle (Excel import, trip log to receipt, period close).
NexiSoftware Engineer / Application Developer
Mar 2023 - Sep 2025
  • Java
  • Spring Boot
  • Oracle SQL
  • PL/SQL
  • Angular
  • RiskShield
  • Tuned production Oracle SQL for card-authorization and transaction-search: indexes, execution plans, partitions, and production SQL scripts (~1s to under 200ms in local tests on the hot queries); first- and second-line on-call unblocking stuck serial Oracle jobs.
  • Implemented database triggers and queues for secure SMS and PIN-change alerts, load-tested with JMeter before release.
  • Built a nightly RiskShield card-activity feed for fraud-detection processing, replacing manual data uploads.
  • Extended the internal clerk portal (Angular) with new screens and the Spring Boot REST APIs behind them.

Earlier Experience

BlocktechFront-End Developer
Apr 2021 - Dec 2022
  • React
  • TypeScript
  • WebSockets
  • Performance
  • Built a real-time crypto trading dashboard in React and TypeScript, profiled above 50 FPS on the order-book view under WebSocket load with virtualized rendering.