Thomas Bournaveas portrait

Hello, I'm Thomas Bournaveas

I build full-stack platforms end to end: React frontends, FastAPI services, and the payment and document pipelines behind them. Engineered so a partial failure never means a lost file, a duplicate delivery, or a silently wrong number.

FastAPIReactNext.jsAzure

Portfolio

Interbank Payment File Transfer

A production batch-transfer service moving settlement files from a national interbank clearing system into an enterprise ERP over SFTP, on a fixed daily schedule, replacing a manual operations task. Runs on Azure Functions with durable transfer state in blob storage.

Highlight

Safely re-runnable via organization-scoped idempotency keys: re-execution after partial failure never re-delivers a file.

  • Python
  • Azure Functions
  • SFTP (paramiko)
  • Azure Blob Storage
  • Application Insights

Marketing Consent & Unsubscribe Platform

The public REST API, database schema, and ingestion pipeline behind a national energy retailer’s marketing preference pages. Recipients act on personalized campaign links; decisions sync to the corporate CRM in real time.

Highlight

Two-stage auth: caller credentials validated against Microsoft Entra ID, then a short-lived RS256 JWT bound to the link identifier, published via a self-hosted JWKS endpoint.

  • Python
  • FastAPI
  • Azure Functions
  • PostgreSQL
  • Alembic
  • +2 more

Enterprise KPI Analytics Platform

A full-stack internal portal for corporate KPI management: dashboards, quarterly goal/actual editing, field-level audit with revert, threaded comments, cross-year comparison, and server-side export to Excel, PDF, and PowerPoint. Access control runs on manual Microsoft Entra ID token verification with role-based access control, and the service is backed by 100% line coverage.

Highlight

Manual JWKS-based Microsoft Entra ID token verification, RBAC, HttpOnly cookie sessions with double-submit CSRF, correctly bypassed for bearer-token callers.

  • Python
  • FastAPI
  • Azure Cosmos DB
  • React 19
  • TypeScript
  • +2 more

IT Portfolio & Roadmap Workspace

A portfolio-management workspace over live issue-tracker data: a Gantt timeline, a what-if scenario planner across six milestone dates per initiative, a top-priority board, and a portfolio analytics dashboard. The planning surface supports per-field undo and a dedicated scenario mode for testing uncommitted changes, and the analytics layer runs on roughly 27,000 lines of feature-first TypeScript.

Highlight

In-place planning surface with per-field undo, per-row sync status, session-persisted unsaved work, and a scenario mode isolating uncommitted changes.

  • Python
  • FastAPI
  • Azure Functions
  • Azure Cosmos DB
  • React 19
  • +4 more

Consumption File Splitter & Reconciliation

A queue-triggered Azure Function that splits very large consumption files from the national electricity distribution operator into ERP-ingestible segments, with a reconciliation report proving the split is lossless. Splitting is domain-aware (records are grouped by delivery point and calendar month so no logical unit is fragmented), and reconciliation uses exact-arithmetic, arbitrary-precision decimals so spreadsheet rounding cannot mask a discrepancy.

Highlight

Domain-aware splitting: records grouped by delivery point and calendar month, whole groups packed into bounded batches; a logical unit is never fragmented.

  • Python
  • Polars
  • Azure Functions
  • Azure Storage Queues
  • Microsoft Graph

Skills

About Me

I'm a full-stack software engineer working on cloud-native systems: Python and TypeScript, FastAPI services on Azure, event-driven data pipelines, and React frontends.

Most of what I build, I build end to end. I design the architecture, implement authentication against Microsoft Entra ID, wire up the CI/CD, and diagnose the pipeline myself when it stops behaving in production. That ownership matters more to me than any single language or framework: the goal is a system that keeps working after I've moved on to the next one.

I'm currently at HERON, part of the GEK TERNA Group, where I own payment file pipelines that move data between core financial systems, along with several internal platforms used across the business. Before that I spent four and a half years at Protera Technologies, moving from IT service delivery into automation and then into backend development. That path is why I think about operability and support burden as carefully as I think about features.

I test what I ship, with 100% line coverage enforced in CI. I document the architecture decisions behind it, and I treat security review as part of building rather than a step at the end.

Let's build something useful.

I'm open to backend, cloud-native, and full-stack engineering roles.