STATUS: OPEN TO REMOTE ROLES | Sofia, Bulgaria · Remote

Aleksandar Hristov> Full-stack Software Engineer

I build business-critical web applications in C#, .NET, Angular and PostgreSQL, and ship AI features that lawyers actually use.

9+
years shipping software
5
roles, from team lead to senior server engineer
3
industries: legal, banking, games & XR

// 01About

Full-stack engineer with 9+ years of experience across legal tech, banking software and games. At Septeo (formerly stp.one) I went from being the first full-time RAG and LLM developer to building core modules of Amberlo, a law practice management platform used across Europe.

I'm at home in complex domain logic (KYC/AML compliance, conflict-of-interest checking, role-based access) and have hands-on AI/LLM experience, from fine-tuning open-source models on German court data to building RAG systems.

My background spans banking software and game/XR development. I'm looking for a remote role where I can take ownership of product features end to end.

// 02Experience

  1. Jun 2023 - Sep 2026

    Software Developer

    Septeo (formerly stp.one)

    1. STAGE_01RAG & LLM R&D

      • First team member to work full time on RAG and LLMs, building a run of smaller AI projects.
      • Built an AI legal assistant that answers questions from uploaded case documents and a knowledge base of German legal texts.
      • One of those projects grew into LegalTwin, built with a small group of developers: it summarises a case and pulls out key people and dates into a single-page view.
    2. STAGE_02German court data foundations

      • Scraped and processed large volumes of public German court decisions into a foundation for search and retrieval.
      • Fine-tuned open-source LLMs on that data to improve the accuracy of legal answers and document analysis.
    3. STAGE_03LegalTwin integration

      • Integrated LegalTwin into stp.one's established legal products.
    4. STAGE_04Amberlo

      • Moved to Amberlo after its acquisition: an all-in-one law practice management platform (clients, cases, time tracking, billing, client portal) used by law firms across Europe.
      • Led the User Management module and built Matter Management, which ties together clients, documents, time entries and billing for each case.
      • Developed KYC/AML client onboarding checks and Conflict Checking, working across PostgreSQL, .NET APIs and Angular.
    • Python
    • LLMs
    • RAG
    • C#
    • .NET
    • Angular
    • PostgreSQL
  2. Jan 2022 - Present

    Game Programmer / Senior Server Engineer (Freelance)

    Hungry Billy

    • Senior Server Engineer on a mobile wrestling game based on a major licensed IP for a large publisher (under NDA), soft-launched in 2026.
    • Designed and built backend services for live gameplay, player data and online features through development and soft launch.
    • Built a game launcher with web-served updates using Unreal Engine's Chunk Downloader and C++.
    • Implemented matchmaking with PlayFab, CloudScript, Cosmos DB and Unity; built an immersive gym experience tracking workout data with AWS and PlayFab.
    • Designed a procedural content generation tool for a dungeon crawler in Unity.
    • Unreal
    • Unity
    • C++
    • C#
    • PlayFab
    • AWS
  3. Feb 2022 - Jun 2023

    Software Engineer

    Immersive Business · Falmouth & Exeter Universities

    • Built a VR experience for an unmanned modular survey boat in Unreal Engine and C++ to improve marine data collection.
    • Built a VR relaxation and pain-relief garden, a VR gallery with file explorer, and a grid building system for pontoon bridges and docks in Unity.
    • Developed a web AR app augmenting paintings via image tracking with Unity WebGL, Three.js and A-Frame.
    • Built a mixed-reality GPS tracking app for truck visualisation and route efficiency with Unity, C# and SQL.
    • Unity
    • Unreal
    • C#
    • C++
    • WebXR
  4. Sep 2021 - Feb 2022

    Immersive Technician, Team Lead

    Immersive Business

    • Led a team of programmers, artists and designers building themed floors for medical, industrial and art purposes.
    • Built core functionality on Scriptable Objects, giving Falmouth Games Academy an attractive way to showcase game art.
    • Integrated OpenXR with the ART DTrack system for player and motion tracking, a success that led to full-time work for the team.
    • Unity
    • OpenXR
    • ART DTrack
  5. Feb 2017 - Sep 2021

    Software Engineer

    BSTechnologies (formerly BankSoft)

    • Built the front end of a large Bulgarian bank's leasing module.
    • Full-stack development of car, housing and personal loan modules for Bulgarian and international banks using .NET MVC, C#, Oracle and MySQL.
    • Built water supply billing and payments, and a waste-water laboratory research module, for government-funded projects.
    • .NET MVC
    • C#
    • Oracle
    • MySQL
    • JavaScript

// 03Skills

Languages & frameworks

  • C#
  • .NET
  • TypeScript
  • Angular
  • React
  • Preact
  • Next.js
  • C++
  • Python
  • SQL
  • Solidity
  • HTML/CSS

Data & cloud

  • PostgreSQL
  • MySQL
  • Oracle
  • Supabase
  • Vercel
  • Render
  • Azure
  • Azure DevOps
  • AWS
  • Firebase
  • PlayFab

AI & LLM

  • RAG pipelines
  • LLM fine-tuning
  • Claude API
  • Gemini API
  • Claude Code
  • GitHub Copilot

Games & XR

  • Unity
  • Unreal Engine
  • Godot
  • OpenXR
  • Three.js
  • WebRTC
  • A-Frame

Ways of working

  • Scrum
  • Team leadership
  • Repository management
  • Client outreach

// 04Projects

Browser games

Game · Browser RPG

CHROMEJACK

Cyberpunk RPG where every fight is a match-3 puzzle on a grid you share with your opponent.

  • React
  • TypeScript
  • Vite
  • Supabase
  • Vercel
Play ↗
How it's built

A street-level cyberpunk RPG for the browser where every fight is a puzzle. Both fighters share one 8x8 grid and take turns swapping tiles, so every move also sets up, or denies, the other side's next one.

  • Deterministic TypeScript engine: a seed plus the move list replays any fight exactly, which keeps live duels in lockstep.
  • Live duels, crews and a city-wide feed over Supabase Realtime; ratings only change on the server, behind row-level security.
  • Ranked async PvP against other players' saved builds, played by an AI that looks a move ahead.

Game · Castle battler

Crownfall

Castle against castle, hero against hero: six races, a five-act campaign and online 1v1.

  • TypeScript
  • Canvas
  • WebAudio
  • WebSockets
  • Render
  • Vercel
Play ↗
How it's built

Castle against castle, hero against hero. Your army marches on its own while you lead your hero from the walls and aim every shot yourself. Six races, a five-act campaign of 42 stages with bosses, and online 1v1.

  • Pure, seeded simulation: online duels run in deterministic lockstep through a small relay (hash checks, resync, rejoin), and replays come out byte-identical.
  • Headless AI-vs-AI battles balance the races and tune every act of the campaign in seconds.
  • All art and music are procedural, drawn on canvas and scored in WebAudio with no asset files, and it plays on phones with touch controls.

Game · Deckbuilder

MOONSICK

Cyberpunk roguelike deckbuilder where every implant costs you a little Humanity.

  • TypeScript
  • Three.js
  • Postgres
  • Vercel
Play ↗
How it's built

A cyberpunk roguelike deckbuilder: climb a tower of fights, elites, gigs and ripperdocs and reach the moon before your chrome takes over. Every implant costs Humanity, and the less you have left, the stronger and less stable you get.

  • Three runners with their own mechanics: Tempo that makes your next card play twice, quickhacks uploaded into enemies, and Heat you build up and vent.
  • Deterministic engine: a seed plus your inputs replays any run exactly, so saves resume where you left off and the server can verify leaderboard results.
  • Accounts, daily seeded runs, leaderboards and dossiers on Postgres, with cel-shaded characters, procedural card art and fully synthesized audio.
Show 5 more gamesShow fewer

Game · Party game

Paladin Party

Fifteen 3D minigames for up to eight knights, online with friends or against bots.

  • TypeScript
  • Three.js
  • WebRTC
  • PeerJS
  • Vercel
Play ↗
How it's built

A tournament of 15 3D minigames for up to eight knights. The winner of each round picks the next game, points stack up, and ties go to sudden death. Host a room for friends or fill it with computer knights.

  • Fifteen minigames, each its own simulation with bots, sharing one physics step and one party flow: pick, practice, ready up, play, results, podium.
  • Host-run rooms over WebRTC, with your own knight simulated locally and corrected by the host, so it feels instant even on a laggy link.
  • A high-fidelity look built entirely in code: procedural sky and PBR textures, ambient occlusion and bloom, with merged geometry to keep it fast.

Game · Party shooter

Rooftop Riot

Movement party shooter: wizards wall-run across rooftops and launch each other off the map.

  • TypeScript
  • Three.js
  • WebRTC
  • PeerJS
  • Vercel
Play ↗
How it's built

Teen wizards in Agility Sneakers wall-run across Brooklyn rooftops and blast each other off the map. Nobody has health: hits raise your damage %, and the higher it climbs, the further the next hit launches you.

  • Momentum movement: slides, wall-runs, climbing, mantling, grind rails, rope swings and rocket jumps off your own fireball.
  • Physics props and destructible terrain: blasts knock tyres, barrels and crates around, and anything flying fast hurts whoever it hits.
  • Peer-to-peer online rooms, plus bots that find their way across the rooftops on an auto-generated nav graph with jump checks.

Game · Party game

Bite Club

A hellhound hunts whoever holds the Bone. Pass it before it bites. Up to 11 players.

  • TypeScript
  • Three.js
  • WebRTC
  • PeerJS
  • Vercel
Play ↗
How it's built

A hellhound hunts whoever holds the cursed Bone. Pass it before it bites; the last one standing wins the round. Up to 11 players online or against bots, right in the browser.

  • Host-authoritative peer-to-peer netcode: the host steps a fixed 60 Hz world and streams snapshots, while guests interpolate and predict their own hero.
  • The hound slides with momentum and grows hungrier as the round goes on, and a second hound joins from seven players.
  • Bots at three skill levels, and a headless simulator that tunes round length and pacing.

Game · 3D brawler

CLASHPIT

Eight-fighter 3D arena brawler with command strings, juggles, grabs and ring-outs.

  • TypeScript
  • Three.js
  • WebRTC
  • PeerJS
  • Vercel
Play ↗
How it's built

An eight-fighter 3D arena brawler, round-based and last fighter standing. Scroll command strings, launchers and juggles that carry people off the edge, grabs that beat guard, timed counters and a panic attack for when you're cornered.

  • Online rooms over WebRTC with a host-authoritative simulation, so the whole game ships as a static site with no backend.
  • Fixed-step simulation rendered with interpolation, zero-delay inputs and late-modifier cancels: punch then guard within three frames becomes a grab.
  • Procedural cel-shaded fighters animated with damped springs per joint, for anticipation, overshoot, weight shift and planted feet.

Game · Extraction

Deepcrawl

PvPvE extraction crawler: learn the rooms, grab the loot, get out before the deep collapses.

  • React
  • TypeScript
  • Node
  • WebSockets
  • Render
  • Vercel
Play ↗
How it's built

A PvPvE extraction dungeon crawler for browser and phone. Descend from the town of Emberhold into a deep built from rooms that never change, learn them raid after raid, and decide how long to stay while the deep collapses and the chests left behind grow richer.

  • Authoritative Node WebSocket server that shares its simulation code with the browser's offline mode; matchmaking fills raids with bots, and dropped phones can rejoin.
  • Maps shuffle 13 hand-made rooms through a random spanning tree of doors, and an Atlas remembers which rooms you've mastered.
  • Seven classes, a drag-and-drop grid inventory, noise that carries through doors, and lantern lifts you find by their bells.

At work

Work · Legal tech SaaS

Amberlo

Practice management platform used by law firms across Europe, in 17 languages.

  • C#
  • .NET
  • Angular
  • PostgreSQL
amberlo.io ↗
What I did

All-in-one practice management platform for law firms across Europe: clients, cases, documents, time tracking, billing and a client portal, in 17 languages.

  • Led the User Management module: accounts, roles and permissions that guard sensitive client and case data.
  • Built and maintained Matter Management, which ties clients, documents, time entries and billing to each case.
  • Developed KYC/AML client checks and Conflict Checking, which flags conflicts of interest before new work is accepted.

Work · Legal AI

Legal Twin

Legal AI that turns an entire case file into a single-page summary for lawyers.

  • Python
  • LLMs
  • RAG
  • .NET
Legal Twin ↗
What I did

AI products for German law firms that grew out of my first RAG and LLM projects at stp.one. Legal Twin reads an entire case file, summarises it and pulls the key people and dates into a single-page view.

  • First developer working full time on RAG and LLMs: built a legal assistant that answers questions from uploaded case files and German legal texts.
  • Scraped and processed large volumes of public German court decisions, and fine-tuned open-source LLMs on them.
  • Integrated Legal Twin into stp.one's established legal and insolvency software.

Apps

App · Training

Redline

Record, analyse and plan runs and rides, with every feature unlocked and your data on your device.

  • Preact
  • TypeScript
  • MapLibre
  • IndexedDB
  • Vercel
Open ↗
How it's built

A personal training app for runs, rides and hikes: record with GPS, analyse every activity, plan routes and follow your fitness. Every feature unlocked, and all data stays on your device.

  • GPS recording with live pace, voice splits, Bluetooth heart rate, live segments against your record, and live location sharing by link.
  • Analysis with maps coloured by pace or heart rate, 3D terrain, grade adjusted pace, zones, power curve, detected climbs and segment leaderboards.
  • Route planning that snaps to roads and trails, a loop generator for a target distance, offline maps, and GPX, TCX and FIT import.

App · Food diary

Forkful

Private food diary with barcode and AI meal scanning, recipes and macros. Free, and it works offline.

  • Preact
  • TypeScript
  • IndexedDB
  • Supabase
  • Gemini
  • Vercel
Open ↗
How it's built

A private food diary: calories and macros, barcode scanning, recipes, water, exercise and weight. It installs on your phone, works offline, and every feature is free.

  • Search over 13,000 bundled USDA foods, and scan barcodes with the phone's camera against Open Food Facts.
  • AI meal scan: photograph a plate or share an image, and Gemini estimates the foods and grams for you to review and save.
  • Local-first in IndexedDB, with optional accounts that sync through an outbox to Supabase behind row-level security.

App · Market terminal

AMBER Terminal

Keyboard-driven market terminal in the browser: live quotes, charts, options and 22 functions.

  • Preact
  • TypeScript
  • Vercel Functions
Open ↗
How it's built

A keyboard-driven market terminal that runs in the browser: four panels, an amber command line, numbered function menus and live quotes that flash on every tick, across stocks, indices, FX, commodities and crypto.

  • 22 functions, from price graphs, fundamentals and options chains to heat maps, the yield curve, news and economic calendars.
  • A terminal command grammar of security, market sector and function (AAPL US Equity GP), plus name lookup and numbered menus.
  • One serverless proxy feeds every panel: it handles the data source's session handshake, batches quote requests and works around its quirks.
Show 1 more appShow fewer

App · Habit RPG

Questlog

Habit tracker as an RPG: clear daily quests to level up, open gates and raise a shadow army.

  • Preact
  • TypeScript
  • IndexedDB
  • Vercel
Open ↗
How it's built

Your habits are daily quests. Clear them to level up, spend stat points and climb ranks from E to S; open gates with keys and raise defeated bosses into a shadow army. Miss your dailies and a penalty quest is waiting.

  • Local-first in IndexedDB, with a daily reset that settles streaks, rewards and penalties whenever you come back.
  • All the pixel art is stored as rows of text and rendered as SVG; shadow soldiers are boss sprites recoloured by brightness.
  • Installs on your phone, works offline and needs no account.

Earlier projects

E-commerce · Next.js

DeskMat.bg

Store for custom XXL gaming desk mats with image upload, product customisation and cart. Built with Next.js, deployed on Vercel.

More personal and university projects on GitHub ↗

// 05Education

Sep 2019 - May 2022

BSc (Hons) Computing for Video Games

Falmouth University · Falmouth, UK

Sep 2012 - Jun 2017

Diploma in Industrial Technology

SPGE John Atanasoff · Sofia, Bulgaria

// 06Contact

Looking for someone to own product features end to end? Let's talk.