Backend
Spring Boot 4, Java 25, Spring Security 7 with JWT, Flyway migrations, typed REST APIs.
Full-stack engineer · data & finance systems
Three full-stack applications built the same way: a clear domain model, durable storage, and enough observability to trust what’s running. Spring Boot and React, end to end.
Operational data sync
A cross-database sync engine that keeps MySQL and Elasticsearch in step. Typed connections with encrypted secrets, configurable job mappings, a scheduler with overlap protection, persistent run history, and rule-based health checks — incremental sync you can actually operate.
Trading research lab
A backtesting workbench over Binance USD-M futures. Daily trade dumps are aggregated into a one-second OHLCV Parquet lake with DuckDB, then replayed through a configurable strategy engine with fees, take-profit and stop-loss accounting — research infrastructure, not a toy.
Personal finance analytics
Portfolio management for ETF and crypto holdings. Live price imports from Binance, grouped assets, DCA simulations, on-demand price tables, and role-based access — a finance dashboard that stays readable as the data grows.
Spring Boot 4, Java 25, Spring Security 7 with JWT, Flyway migrations, typed REST APIs.
React 19, Vite 6, Material UI, TypeScript, dashboards and dense admin workflows.
Incremental sync, Elasticsearch, DuckDB and Parquet lakes, Binance market data.
Maven multi-module builds, executable fat JARs, external config, smoke scripts.
Model the workflow first. Entities, permissions, and edge cases get settled before the UI grows complex.
Make it observable. Status, run history, coverage, and failure states live where the people running it can see them.
Keep the interface calm. Compact layouts, predictable controls, restrained motion, readable density.
Available for practical product work
I take on data-heavy products, internal tools, and operator consoles — work where correctness and maintainability matter more than surface polish.