Curriculum Vitae · 2026

Edvard Grei

Senior Backend & Platform Engineer

Kotlin · Spring Boot · Kubernetes · TypeScript · React & Next.js

I build production systems end to end and make the teams around them faster.

Target roles: Senior Platform Engineer · Senior Backend Engineer (Kotlin/Java) · Senior Full-Stack Engineer (Kotlin/TypeScript)

Edvard Grei

Location

Aachen, Germany (UTC+2)

Book a call

edvone.dev/book

Website

edvone.dev
EU Work Authorization: Yes·Available immediately, no notice period·Remote (EU or worldwide)·Hybrid or relocation within Germany
01Profile

Senior backend and platform engineer, 10+ years in B2B SaaS, fintech, ERP and identity. Kotlin and Spring Boot on the backend, Kubernetes and GitOps underneath, TypeScript with React and Angular on the front. Modernization is the through-line: legacy systems into distributed systems, teams into modern practice, and platforms into production that I then operate and am accountable for. I taught myself the work alongside a medical degree, and reliability is the part I care about most.

02Selected Results
  • Took Gypsilon Software GmbH off-premise onto AWS, the foundation its first 5 of 30+ ERP modules now run on, and moved it off a Vaadin monolith onto independently deployable services running in production.
  • Automated invoice processing for 50+ enterprise tenants at Gypsilon, Mercedes-Benz among its clients, replacing user-written regex rules with annotation-driven extraction and hierarchy-aware approval routing.
  • Brought Gypsilon's 15-person Uniface team to Spring Boot and a two-week release cadence, coaching engineers through the transition, and introduced the enforced quality gate behind a 60%+ drop in code-quality violations.
  • Built the OIDC identity service behind my own production platform: RS256 JWTs with a JWKS endpoint, WebAuthn passkeys, OAuth 2.0 device grant and per-application RBAC, with its SDK on public npm as @elvix.is/sdk.
  • Sole operator of that platform end to end, on call for all of it: 12 deployed services behind 5 products on Kubernetes with GitOps, full observability and self-provisioned infrastructure.
03Experience
Jan 2025 – Present·Aachen, Germany·Independent contract·1 yr 9 mos

Senior Backend & Platform Engineer

Client engineering alongside building and operating a production Kubernetes platform end to end: the deploy path, the observability, the incidents and the pager. Coming out of three years in an on-premise shop, this is the operational half most backend roles never hand over, and it is what I bring into a team.

  • Client engagement, Dance Fusion Aachen: built and shipped the event platforms for Bachata Sensual Congress Germany, 2025 and 2026 editions.
  • Built the internal developer platform every service I run ships through: one shared Helm chart and an ArgoCD GitOps flow that takes a new service from repository to production with no hand-written infrastructure, across 8 Linux hosts on Hetzner provisioned with Terraform, a private registry and DNS-01 certificates.
  • CI/CD on GitHub Actions gates every push on type checks, linting and a Gradle test suite (JUnit 5 and Testcontainers against real Postgres, Konsist architecture tests holding the hexagonal boundaries, Vitest and Playwright on the front) before a Docker image is built. Ships several times a week, rollback by reverting the commit.
  • Built the observability under it (Prometheus, Grafana, Loki, Alertmanager) and tuned it against real false positives, including replication lag that had to move from timestamps to WAL byte distance because the timestamp version climbed forever on an idle cluster.
  • Caught a 13-day silent TLS renewal failure with 17 days left on the certificate, then diagnosed why nothing had alerted: CDN-terminated TLS made the probes structurally blind, reporting 75 days while the origin had 17. Moved certificate truth to an origin-side collector.
  • Built and run DanceClub (danceclub.app), a live events platform across 15 localized markets: Kotlin and Spring Boot over 10 isolated PostgreSQL schemas each with its own migration lane, PostGIS geo-search for viewport and radius queries, Kafka for event-driven communication, and four Next.js frontends.
  • Built elvix (elvix.is), the OIDC identity service every application on that platform authenticates through: passwordless sign-in with email OTP, Google, GitHub and WebAuthn passkeys, RS256 JWTs with a JWKS endpoint so resource servers verify locally, OAuth 2.0 Device Grant for CLI logins, per-application roles and scopes, rate limiting and HMAC-signed webhooks. TypeScript on Prisma and PostgreSQL, SDK on public npm.
  • Built PulseAI (pulseai.run), a self-hosted workflow automation engine in the n8n mould: multi-step pipelines with conditional branching, retries and traceable failure, driving that platform's own automation.
  • Tuned the data layer for the patterns that actually run: PostGIS GIST indexes for viewport and radius search, partial and sort indexes across 70+ Flyway migrations, and connection-pool sizing worked out against the server's own limit rather than copied per service, which is what stops a service fleet opening 110 connections into a database that accepts 100.
Apr 2022 – Jan 2025·Aachen, Germany·Full-time·2 yrs 10 mos

Senior Software Engineer & System Architect

  • Delivered the multi-tenant invoice automation platform its enterprise clients run on, Mercedes-Benz among them: 50+ tenants, from a scanned document or inbound email through issuer and tenant resolution to an approved payment. First production workflow shipped within 6 months of joining.
  • Moved the company off-premise onto AWS, building the foundation it now runs on and migrating the first 5 of its 30+ ERP modules: infrastructure as code with Terraform, containerization onto Amazon EKS on EC2 node groups with ECR, S3, SQS and SNS, IAM and Route 53, CI/CD on self-hosted GitLab, and the operational model a legacy on-premise organization had never had. Owned the migration path and target architecture, and coached a senior engineer through it so the cloud knowledge did not leave with me.
  • Took a 15-person team of legacy Uniface developers from no Git and no Java to Spring Boot, SOLID design, and a two-week release cadence. Introduced SonarQube as an enforced quality gate that cut code-quality violations by more than 60%, established code review, written architecture decisions and runbooks as the default, and trained a team member into a UI/UX and Figma role so requirements were settled in design first, rather than reworked after implementation.
  • Made the case to leave the Vaadin monolith for microservices and micro-frontends, carried it against internal resistance, and delivered the services into production, then restructured that single team into a 4-engineer frontend team, a backend team, and a dedicated product manager and designer. Owned the backend foundation throughout: domain-driven design for the service boundaries, hexagonal architecture inside each service, the REST API gateway as single ingress, schema-per-tenant isolation for 50+ tenants on Flyway migrations, and a transactional outbox with idempotent handling so a redelivered invoice never double-pays.
  • Replaced brittle user-defined regex extraction with a bounding-box annotation system built on both sides, Java on the backend and TypeScript on the front: a user marks the fields on a PDF once and every similar invoice afterward is extracted automatically. Later migrated detection to AWS Textract and trained a YOLOv8 model, shipped as its own Python/FastAPI microservice, to read the marker barcodes separating documents in a scanned batch that Textract could not handle.
  • Designed and built the visual workflow engine on canvas (fabric.js and TypeScript) that routes every invoice: conditional branching on value thresholds, with department, privilege, and hierarchy-aware approval chains ending in payment. Built the Angular front end for the workflow and PDF tooling on top of it.
May 2020 – Feb 2022·Kyiv, Ukraine·Contract·1 yr 10 mos

Contract Engineer & Technical Consultant

Ongoing contract engagement covering mobile delivery, backend architecture, and team enablement, across the company's own platform and its client work.

  • Direct client work (May 2020 – Dec 2020): technical consulting and remediation on existing web and mobile systems, resolving architecture, data flow, and integration problems.
  • Digitex (Jan 2021 – May 2021): owned delivery of the Android client for Blockster, the company's crypto social platform, shipped ahead of a public testnet launch the company had built a 300,000-name waitlist for. Mentored the backend team into mobile development and advised on infrastructure design, going deep on Kubernetes, load balancing, and database sharding. Supervised an iOS developer alongside a PHP/Laravel backend team.
  • Crypto-to-fiat platform (Jun 2021 – Feb 2022): supported the engineering team building a platform trading directly with Ukrainian exchanges. Taught and applied domain-driven design, hexagonal architecture, and microservices, designed the transaction pipeline, and advised on the team structure needed to build and run it.
Jan 2019 – Apr 2020·Kyiv, Ukraine·Founder·1 yr 4 mos

Founder & Full-Stack Mobile Engineer

Appster

Founded a mobile product studio and shipped two native applications end to end, from backend and infrastructure through design, store release, and user acquisition.

  • Shipped two native applications to the stores end to end: MoneyLeft (iOS, Swift with UIKit and SwiftUI), a personal affordability calculator, and Randy (Android, Kotlin), a film recommender over a curated title database.
  • Built both backends in Kotlin and Spring Boot on PostgreSQL, three years before Kotlin became the day job, and ran the infrastructure on Google Cloud: Compute Engine, Cloud Storage, Cloud DNS, Cloud IAM and Artifact Registry across dedicated build and application servers. Evaluated GKE and dropped it on cost at that scale.
  • Evaluated direct bank-account integration for MoneyLeft and ruled it out on licensing and regulatory grounds rather than building toward a path that could not ship. Owned design, store presence, and acquisition throughout.
Jan 2015 – Dec 2018·Kyiv, Ukraine·Freelance·4 yrs

Web Developer & SEO Specialist

Self-employed

Found and delivered my own clients while completing a medical degree, building websites and web applications for small businesses across Kyiv and ranking them on Google.

  • Built the booking platform for Lama Lash in Kyiv (Spring Boot and JSP) with client booking and employee scheduling, setting up continuous integration for the first time, and later a barbershop booking system with a separated backend and frontend. Worked across the stacks the clients came with, PHP and WordPress on MySQL alongside the JVM work.
  • Integrated PrivatBank24 and, in 2018, Monobank payments into client platforms, and built the business systems around them: CRM, CMS, and accounting and financial management tools for beauty, barbershop and auto-service clients. Most of the direct work came by referral.
  • Ranked client sites onto the first page of Google, part of the 100+ ranked across my career: on-page optimization, backlink building, and paid acquisition. Worked as a subcontractor to SEOMID, a Ukrainian SEO agency, on client sites including the training provider Kursor, the online travel agency Advant, and the airline SkyUp, alongside my own direct clients.
04Technical Skills
Backend & DataCore
KotlinJavaSpring BootPostgreSQLKafkaMicroservicesEvent-driven architectureDomain-driven designHexagonal architectureMulti-tenant isolation (schema-per-tenant)Transactional outboxREST API designGradleFlyway migrationsPrismaPostGISPythonFastAPIMySQLMongoDB
FrontendCore
TypeScriptReactNext.js (App Router, RSC)AngularMicro-frontendsi18n (15 locales)SEO (on-page, technical)
Platform & OperationsCore
KubernetesArgoCD (GitOps)HelmDockerTerraformCI/CD (GitHub Actions, GitLab CI)LinuxAWS (EKS, EC2, S3, SQS, SNS, IAM, Route 53, ECR)GCP (Compute Engine, Cloud Storage, Cloud DNS, Cloud IAM, Artifact Registry)HetznerPrometheusGrafanaLokiAlertmanagerIncident diagnosis & alert tuning
Security & Identity
OAuth2OIDCJWT / JWKS (RS256)WebAuthn passkeysOAuth 2.0 Device GrantRBAC (roles & scopes)Rate limitingSigned webhooks (HMAC)
Quality & Ways of Working
Testcontainers (real-database integration tests)JUnit 5VitestPlaywright (E2E)SonarQube quality gatesArchitecture tests (Konsist)Code reviewTechnical documentation & runbooksMentoring & team enablementAgile delivery (two-week cadence)
05Education

Bogomolets National Medical University

Doctor of Medicine, MD

2013–2018

Kyiv, Ukraine

Self-taught engineer, in paid client work since 2015 alongside my studies, and shipping production Spring on the JVM since 2015, Kotlin since 2019.

06Languages
PersianNative
EnglishFluent
RussianFluent
UkrainianIntermediate
GermanB1, actively improving