tendriks.com · Leipzig

Toni Nguyen

Software developer, Leipzig.

AI-driven development and process automation

I build and run software a business depends on every day. Here is the proof.

This portfolio is a shop you can walk through. Every pair on the shelf is a project, the kitchen runs the ordering system behind my parents’ restaurant, and the TV plays the demos.

Releases

Every pair is a project.

The colourway is the stack a release is recognised by.

  1. Asia Pfanne

    Pre-ordering system for a restaurant

    Supabase · PostgreSQL · Raspberry Pi · SMS OTP

    Live
  2. Zwo

    Shared everyday app for two people

    Flutter · Dart · PostgreSQL

    In development
  3. Spari

    Lowest-price finder

    Python

    In development
  • Pokémon restock tracker. Watched stock at Rossmann branch by branch and notified on any change.
  • Tournament scanner. Found youth football tournaments for friends who coach and scout, replacing hours of manual searching.
In operation

The path of an order.

Not a mock-up: these are the steps a real pre-order takes, from the menu to a receipt printing in the kitchen.

  1. 01MenuDishes by number, searchableCustomer
  2. 02In the cartDish chosenCustomer
  3. 03Pickup slotAvailability checkedCustomer
  4. 04Order placedFree cancellation for three minutesCustomer
  5. 05Kitchen queueOne queue, no paper notesKitchen
  6. 06Receipt printedRaspberry Pi on siteKitchen

The same steps the live site runs. Playable on the TV in the lounge.

Decisions

The stack as an argument.

No logo wall. Every technology here has a job in something that runs.

At work

  • TypeScriptThe language of the multi-tenant back-office system at work
  • VueFront end of that back-office system
  • NestJSBackend of that back-office system
  • SQLiteDatabase behind the back-office system
  • PythonTest automation at work, and Spari
  • PlaywrightBrowser automation under the end-to-end test suite
  • DockerContainerised test environment, wired into GitLab CI as a quality gate

Own projects

  • FlutterZwo, running on both phones from one codebase
  • SupabaseBackend of the Asia Pfanne ordering system
  • PostgreSQLData behind Asia Pfanne and Zwo
  • JavaOwn projects and coursework
  • GoOwn projects
  • Raspberry PiThe on-site kiosk that prints receipts in the restaurant
About

About me.

Hi, I’m Toni. I’m 22, I live in Leipzig, and I’m studying computer science at HTWK until April 2027.

Sneakers got me into this, which is not the usual answer. I started reselling as a teenager, and that world runs on software: monitors watching for restocks, checkout scripts, everything decided inside a few hundred milliseconds. The people winning were the ones who could automate. I wanted to build those tools and had no idea how. For years the ideas were there and the skills weren’t. Studying closed that gap, and I haven’t stopped automating since.

The clearest proof sits in my parents’ Vietnamese takeaway in Leipzig-Stötteritz. Orders used to arrive one phone call at a time, written on paper in the middle of a busy kitchen. Today they run through a system I designed, built and still maintain. Customers pick a dish and a pickup slot online, the kitchen works from one queue instead of a pile of notes, and a Raspberry Pi on site prints the receipt. Login runs over SMS one-time codes. GDPR and GoBD are handled properly, because a real business has to survive real rules. It runs every day the shop is open, and when it breaks, fixing it is my job. Right now I’m adding a loyalty programme.

Alongside my studies I work as a working student at ALVARA, on a multi-tenant back-office system that retail companies in several countries use to run their branches. TypeScript, Vue on the front end, NestJS behind it. Two things fill most of my week: driving changes through an AI-assisted workflow and then verifying what comes back out of it, and debugging across tenant environments, which usually means turning a vague bug report into a root cause somewhere down in the database.

I started there as an intern, writing an end-to-end test suite for a cash-management application: 96 test cases across 38 suites. The tests were not the interesting part. What kept breaking them was. Hand-written selectors are the usual reason UI tests turn flaky, so I built a tool called Scout that reads the live DOM and generates verified, version-controlled selectors instead, 309 of them across 71 routes and six sites. Fixing the cause instead of the symptom is still the work I’m proudest of.

Most of my own projects start because something near me is tedious. Zwo is a Flutter app for two people sharing a household: shared shopping list, shared calendar, and a running tally of who paid for what, synced between both phones. Spari finds the lowest price something can actually be bought for, stacking cashback, student discounts and coupon codes into one number. Before those came a tracker that watched Pokémon restocks branch by branch, and a scanner for friends who scout youth football, because finding the right tournaments used to cost them entire evenings.

I want to make a living from what I build. Demos are easy. The things I care about are the ones that survive contact with real users and a kitchen at dinner rush.

Away from a screen, food comes first. That is what happens when you grow up between a wok and a delivery counter. I play basketball and table tennis, badly enough to keep it fun. And sneakers never stopped being the thing that started all of this.

Working student in Leipzig, available full-time from April 2027. On-site, hybrid or remote.

Experience

  • Jul 2026 – presentWorking Student, Software Development, ALVARA (YUVENDA Enterprise Solutions), Leipzig. Ships changes to a multi-tenant back-office system that retail companies in several countries use to run their branch operations. Drives changes through an AI-assisted workflow and verifies the result; debugs across tenant environments, tracing reported issues down through backend and database. TypeScript, Vue, NestJS, SQLite.
  • Apr 2026 – Jul 2026Software Development Intern, ALVARA (YUVENDA Enterprise Solutions), Leipzig. Built an end-to-end test suite for a multi-tenant cash-management application: 96 test cases across 38 suites, 52 page objects, 24 business entities. Wrote "Scout", a tool that reads the live DOM and generates verified, version-controlled selectors (309 files, 71 routes, 6 sites), removing hand-written selectors as a source of flaky tests. Containerised the test environment with Docker and made the GitLab CI run a blocking quality gate. Python, Robot Framework, Playwright.
  • Nov 2025 – Jun 2026Student Assistant, Checkout, GALERIA, Leipzig
  • Sep 2023 – Nov 2025Student Employee, Sales, Lidl Deutschland, Leipzig

Education

  • Oct 2023 – Apr 2027B.Sc. Computer Science, HTWK Leipzig
  • 2023Abitur, Neue Nikolaischule, Leipzig
Contact

Get in touch.