Skip to content
dg.dev

~/kifissia

software developer · backend, data, the odd browser extension

DavidGavriilidis

I build backends and data tools, mostly in TypeScript, Python and Java, and I like finding out how the data actually looks before I design around it.

Based in
Kifissia, Athens
Degree
BSc Software Eng. · 2026
Core
TypeScript · Python · Java
Speaks
Ελληνικά · English · Русский
Looking for
Junior backend / data
live · ixnos-data702,203 public records tracked

About

Software engineering graduate from Athens. I like building things people actually use, and I like them to work the first time.

I graduated in summer 2026 with a BSc in Software Engineering from the University of Greater Manchester. I studied remotely and worked alongside my degree, including seasons at resorts such as Aristi Mountain Resort in Zagori, which taught me to stay calm and organised when things get busy.

Most of what I build starts with a problem I had myself: 60 open tabs, tax XML that gets rejected by the server, public spending data nobody can search. Before I design anything, I look at the real data; for ixnos-data, that meant probing 614,000 records first.

I write the tests that catch the bug before release, keep the moving parts few, and say plainly in the README what the code doesn't do yet.

Skills

core stack

~/stack tree -L 2

backend/7 files
  • Ingestion pipelines with httpx and Pydantic, ML models, and browser automation.

    used in

frontend/6 files
data-ml/6 files
tooling/7 files

Projects

2026updated 29 Sept 2026

ixnos-data

Greek public procurement data (ΚΗΜΔΗΣ tenders and Διαύγεια spending decisions), searchable in Greek or Greeklish. A Python pipeline, a .NET 10 API and a Next.js front end around PostgreSQL full-text search. Before writing a schema I probed 614,000 real records, which is how I found titles cut at 100 characters and payments with typos worth over €100 million.

precision@10
0.84–1.00
Records probed
614,000
Static site refresh
3 h
  • C#
  • .NET 10
  • Python
  • PostgreSQL
  • Next.js

C# 35% · Python 31% · TypeScript 30%

2026updated 26 Sept 2026

myData-Client-Lib

A typed .NET client for AADE's myDATA, the e-invoicing API every Greek business has to report through. It reproduces AADE's arithmetic and business rules in a validator that runs before anything is serialised, and returns results per invoice, because a batch can come back as HTTP 200 with some invoices rejected.

Rejection codes caught locally
11
Test tiers
4
  • C#
  • .NET 10
  • XML / XSD
  • xUnit
  • WireMock.Net
2026updated 12 Sept 2026

tabsesh

Closing 60+ tabs becomes one undoable command. A popup, a full-page GUI and an in-browser terminal all call the same UI-free TypeScript core. Chrome's own bookmarks are the only data store, so sync between devices comes free, with no server and no account.

Vitest tests
73
Bugs caught before release
2
Trash before purge
48 h
  • TypeScript
  • Svelte
  • WXT
  • Manifest V3
  • Vitest

TypeScript 60% · Svelte 39% · HTML 1%

2026no public repo yet

Web accessibility extension

A Chromium extension that checks the accessibility of a page while you use it, instead of after a crawl. A heuristic engine settles everything a rule can decide, and a Gemma 4 model running locally takes the cases that need judgement, so the page is analysed on your own machine and never sent to a server.

Platform
Manifest V3
Model
Gemma 4, on-device
Checks
heuristics → LLM
  • Manifest V3
  • Chromium
  • Gemma 4
  • Local LLM
  • Heuristics
2026updated 10 Sept 2026

LLM-Fake-News-Detector

Three models side by side: a TF-IDF logistic regression baseline, a bidirectional LSTM and BERT. All three passed 98% on the test set, which looked too good for a static dataset, so I ran the models on articles from outside it and used SHAP to see which words drove each verdict. They had learned shortcuts, like the word “Reuters”, which regex cleaning now strips before training and inference.

Accuracy LR / LSTM / BERT
98.42 / 99.91 / 99.74 %
Prediction time
~1.5 s → 8–10 ms
  • Python
  • BERT
  • LSTM
  • scikit-learn
  • TensorFlow
  • SHAP
  • Flask

Jupyter Notebook 99% · Python 1% · HTML 0%

Full project archive

Experience & education

  1. Apr 2026 – Oct 2026
    Jun 2025 – Nov 2025
    hospitality

    Σερβίτορος Α'

    Aristi Mountain Resort · Aristi, Zagori

    • Two seasons in a restaurant with multiple food awards and two Michelin Keys.
    • Planned and ran events together with the hotel's manager.
  2. Sep 2022 – Summer 2026
    education

    BSc Software Engineering

    University of Greater Manchester · Remote from Athens

    • Studied remotely while working full seasons in hospitality.
    • Java and Spring Boot coursework, including a lost-and-found system for a municipality with Spring Security, MySQL and Leaflet maps.
  3. 2026
    software

    Open-source projects

    github.com/vwdshka

    • ixnos-data: search over Greek public spending, with a static edition on GitHub Pages refreshed every three hours.
    • myData-Client-Lib and tabsesh, each with its own test suite running in CI.
  4. 2025
    software

    Back-end developer, team project

    OpenChartExcavator

    • Owned the back end of a four-person app that lists every business in an area picked on Google Maps.
    • Replaced fixed sleeps with explicit waits on element state, which stopped the stale-element failures on slow connections.
  5. May 2024 – Nov 2024
    hospitality

    Σερβίτορος Α'

    Grecotel LuxMe Oasis · Peloponnese

    • Trained assistant waiters and interns in the à la carte restaurant.
    • Worked to HACCP and ISO 22000, and met with management before service to plan events.
  6. Sep 2023 – Nov 2023
    hospitality

    Σερβίτορος Α'

    White Olive Premium Lindos · Pefkoi, Rhodes

    • Peak-season service, set-up of the dining room, and walking guests through each dish and its allergens.
  7. May 2023 – Sep 2023
    retail

    Cashier

    SpotMarket · Neo Irakleio, Athens

    • Wrote my first tool used by other people: it tracked stock close to its expiry date, and every store in the company adopted it.