Projects

Projects

These are the projects I've built, both on my own and as part of a team. Each entry explains what the software does, how it works and which parts I built myself.

voidwalk

2026 — now · personal

A binary analysis and disassembly toolkit for reverse engineers and security researchers. It detects whether an executable is a Linux (ELF) or Windows (PE) file, reads its sections and disassembles the machine code into x86 or x86-64 assembly.

  • C++20
  • Qt 6
  • CMake
  • GitHub Actions
The voidwalk desktop app with /bin/ls open: a symbol list, syntax-highlighted x86-64 disassembly with addresses and bytes, and a hex view of the ELF header.
The Qt 6 desktop app disassembling /bin/ls.
  • I wrote the x86 and x86-64 disassembler myself, with no disassembly library underneath. On /bin/ls, all 22,523 instructions it decodes start at the same addresses as in GNU objdump's output.
  • File formats and instruction sets are kept apart, so supporting a new architecture means writing one decoder class and registering it.
  • Files are memory-mapped, so a large program opens without being copied into memory first.
  • Decoding runs on a background thread. You can use it from a Qt 6 desktop app with syntax-highlighted assembly and a hex view, from a terminal UI, or from a scriptable command-line tool.
  • Every push runs 230+ tests on Linux and Windows through GitHub Actions.
  • Next is a debugger with breakpoints and tracing. Control-flow graphs, ARM decoding and AI-assisted analysis come after that.

Read more →

AgentArchitect

2026 · PoliHack v19, team of four

A desktop app my team built at PoliHack v19, where the theme was apps that encourage AI adoption. It gives civil engineers ready-made AI agents to use in place of writing their own prompts, and lets them set up new agents from a form without writing code. We used fire safety review against the Romanian P118 standard as the example domain. I designed and built the engine that runs every agent, and the AutoCAD (DXF) floor plan import.

  • Python
  • Gemini API
  • PyQt6
The AgentArchitect desktop app with the Egress Validator agent loaded: an agent library of four fire safety agents, the floor plan input, the P118 constraints the agent checks, and a follow-up conversation panel.
The Egress Validator agent, which checks a parsed floor plan against the P118 fire safety rules.
  • The agent runner calls the calculation tools first, such as the P118 rule checks and a Dijkstra search for evacuation distances. It puts their results into the prompt and parses the model's reply back into structured data, so the distances and violations in an answer come from the tools and the model never has to estimate them.
  • I wrote the Gemini API client, which retries a failed request up to three times and gives up on any request that runs past its time limit.
  • After the first answer, engineers can ask follow-up questions. Each agent keeps the conversation history, and a keyword check, with an LLM classifier as a fallback, turns away questions outside the agent's topic.
  • The DXF import reads rooms, corridors, doors and walls from the usual AutoCAD layer names. When a layer name isn't recognized, it classifies the shape by its geometry instead.