Adam Baranyi

Adam BaranyiJunior Full-Stack Software Developer in Lucerne

React · Next.js · TypeScript · Node.js · PostgreSQL – fast, accessible, production-ready web applications

My work

Applications I built myself, from the interface to operations.

Scene 01

Tallyroom

B2B dashboard & client portal

Tallyroom dashboard with monthly contract value, active clients and a chart of the last six monthsClient page of Alpenblick Studio with contact details, an internal note and the project listList of service requests with status, priority and ownerDocument list marked “visible in portal” and “internal only”Client portal of Seeblick Digital with its own projects and open requests

Metrics with a clear rule. Monthly contract value only counts confirmed, running contracts at their latest price before the reference date. Tests check the number itself, not just the shape of the response.

Everything about a client in one place. Contact details, projects, contracts, requests and documents together. Internal notes are visible to the team only.

Requests with status and owner. Service requests from all clients in one list: priority, status, who is responsible and when something last happened.

Sharing is a deliberate step. Documents stay internal until someone shares them. Files sit in private storage and can only be reached through the protected API.

Clients only see what concerns them. The client portal has its own data layer without internal fields. 16 integration tests guard the separation, and other clients’ records answer with 404 instead of 403.

  1. InterfaceReact and TypeScript, four languages, light and dark
  2. Client portalits own data layer without internal fields, 16 integration tests
  3. APIExpress with role permissions, other clients’ records answer with 404
  4. DatabasePostgreSQL, every client only with their own data
  5. OperationsDocker on my own server, nightly backups, rehearsed restore

Dashboard with a client portal for small digital agencies, in four languages. Live, with a private demo for every visitor; the data is invented and deleted after 60 minutes.

Stack
React, TypeScript, Express, PostgreSQL, Docker
Tests
276 unit and integration tests; the integration tests make sure roles hold and no client sees another client’s data
Checks
Playwright checks accessibility (axe, light and dark), four languages and keyboard use at six screen widths; VoiceOver and NVDA run for real in CI
Operations
Runs with Docker on my own server, with nightly backups and a rehearsed restore
Performance
Lighthouse live: mobile 99, desktop 100

Figures from the case study, as of 22 September 2026

Scene 02

Evidarium

Knowledge assistant with verifiable sources

Evidarium start page: a dark workspace with a window showing a sample answer; the background glows in the colour of the verdictAnswer with the verdict “contradiction between sources”: two sheets side by side, 30 against 90 days, each with its own quoteOpened source: a section of Backup_Richtlinie_A.pdf, page 2, with the quoted part highlighted

Verifiable, not infallible. Every statement carries a verbatim quote, and one click opens the passage in the original document. If the search finds no basis, the app says so instead of making something up.

Contradictions are shown, not resolved. If two documents contradict each other, the answer names both with their own quote, here 30 against 90 days. Which rule applies is not in the documents, so the app does not decide it either.

The source sits next to the statement. One click opens the whole section with the quote highlighted. Before that, the server checks that every quote appears word for word in the section; anything that fails the check is not shown.

  1. InterfaceNext.js, answers with verbatim quotes, four languages
  2. Checksevery quote must appear word for word in its section, otherwise it is not shown
  3. Searchembeddings and full-text search, locally on my own server
  4. DatabasePostgreSQL with pgvector
  5. ModelAnthropic API, 12 of 12 evaluation cases passed

RAG knowledge assistant for your own documents: upload, ask and get answers with sources that open in the original document. Live with a real language model; the demo runs without sign-in on documents of an invented company.

Stack
Next.js, TypeScript, PostgreSQL, pgvector, Anthropic API
Checks
12 of 12 evaluation cases passed with a real model
Tests
Automated tests for source validation, error states and responsive behaviour
Operations
Embeddings and search run locally on my own server
Languages
In four languages: DE, FR, IT, EN

Figures from the case study, as of 23 September 2026

Scene 03

Hundebüechli

Offline app for iPhone and Android

Up next in Hundebüechli: overdue tick protection and a tablet, both stamped as doneDog profile of Bäri, a whippet, with photo, chip number and vetWeight curve of Mila, most recently 21.1 kg

What is due today. Across all dogs. One tap stamps it: the overdue tick protection is done, the 8 o’clock tablet given.

Bäri at a glance. The chip number to copy, the vet one tap away.

Mila’s weight. Since she came from the rescue, as a curve or a table, without judgement.

  1. AppExpo and React Native for iPhone and Android
  2. Remindersdue dates as notifications on the lock screen
  3. DataSQLite with Drizzle, only on the device
  4. Sharingthree PDFs, without a server

In progress · built, now in testing

Hundebüechli is an app for iPhone and Android, built with Expo and React Native: vaccinations, deworming, tick protection and vet visits with due dates, reminders on the lock screen, medication, weight, a diary and three PDFs to share. It works without any network and without an account; all data stays on the device.

Stack
Expo, React Native, TypeScript, SQLite, Drizzle
Tests
295 Jest tests, plus cross-browser checks in Chromium, Safari and Firefox
Data
Offline, no server, no account
Tested
On an iPhone: dog profile, health entries, “Up next” and reminders
Accessible
Large system text, VoiceOver, dark mode

Figures from the repository, as of 23 September 2026

Next: more testing on the iPhone, the web preview to try it out and the signed Android app as a release on GitHub, then two weeks of daily use with my own two whippets.

Bäri and Mila are invented sample dogs; the photos are CC0 (Wikimedia Commons).

Scene 04

KI-Inventar

Register of AI tools for Swiss small businesses

Overview of the invented Muster Treuhand AG: 5 of 40 checkpoints done, the next three, seven tools with their open points and the deadlines, open items marked in highlighter yellowCheckpoints across all tools, the urgent ones first: eight of high priority such as “Disclose automated decisions” and “Conclude a data processing agreement”, each with its toolDeadlines: revised Data Protection Act since 1 September 2023, prohibitions and AI literacy since 2 February 2025, each with whom it affects and its source

Seven tools, 35 open points. The example of an invented trust company: what is still open is marked with a highlighter.

The urgent ones first. Every checkpoint names its reason and legal reference and can be marked done or excluded with a reason.

What applies when. The deadlines of the AI Act and the Data Protection Act, with a note on when they affect a Swiss company.

  1. InterfaceAngular with signals, without a UI library
  2. Rules14 pure functions, each with its legal reference
  3. Storageonly in the browser, backup as JSON and CSV
  4. Securitystrict Content Security Policy, no network calls

A free register of the AI tools a company uses: every tool is recorded with ten questions, with suggested answers for ChatGPT, Copilot, Claude, Gemini and DeepL. From the answers come checkpoints with a reason and the legal reference under the Swiss Data Protection Act and the EU AI Act, a draft record of processing and dates for the yearly review. Everything stays in the browser: no account, no server, nothing sent. Not legal advice; the app is in German.

Stack
Angular, TypeScript, Zod, Vitest, Playwright
Rules
14 rules as pure functions, 152 unit tests: every rule applies where it should and nowhere else
Checks
138 browser tests at three widths, plus 92 in WebKit and Firefox: axe, no text below 16 px, no sideways scrolling
Sabotage
77 bugs planted on purpose, each one turns a test red
Security
Strict Content Security Policy, no requests to other servers; on my own server with HSTS and security headers

Figures from the repository, as of 13 October 2026

Projects from my training

Four practice projects from my training as a full-stack developer, newest first.

Show projectsHide projects
  • Poll App home page with the title “Collect Feedback, Unlock Ideas” and an illustration

    Poll App

    Create surveys, answer them and watch the results come in live, without sign-in, based on a Figma design.

    Learned: Angular with signals and reactive forms, data in Supabase with access rules in the database and live results through Realtime.

    Tech: Angular, TypeScript, SCSS, Supabase

  • Memory board with two cards turned over

    Memory App

    Memory game in the browser with selectable themes, number of players and boards from 4 × 4 to 6 × 6, based on a Figma design.

    Learned: structuring code cleanly without a framework: TypeScript with templates and logic kept apart, at most 14 lines per function.

    Tech: TypeScript, SCSS, Vite, HTML

  • Start screen of El Pollo Loco

    El Pollo Loco

    2D jump-and-run in the browser with three levels, a final boss, sound and touch controls.

    Learned: object-oriented programming; every character is its own class.

    Tech: JavaScript with classes, HTML5 Canvas, CSS

  • Pokédex with the cards of the first Pokémon

    Pokédex

    Search, type filter, detail view and evolution chain, with data from the PokeAPI.

    Learned: loading data from an external REST API, caching it and loading more on demand.

    Tech: JavaScript, HTML, CSS, PokeAPI

How I work

  1. From requirement to operations

    I build web applications from the first requirement to running operations: on the front with React, Next.js and TypeScript, behind it with Node.js, REST APIs, PostgreSQL and Docker.

  2. Responsibility in client projects

    In client projects I take work from requirements analysis through the MVP into operations. Often I am the central technical contact.

  3. Quality you can check

    An application should not just run but be demonstrably good: tested, fast, accessible and secure. Most recently I have gone deep into AI applications with RAG.

  4. Claude Code every day, with me in charge

    At work and in my own projects, Claude Code is my everyday tool. In my own projects I set the architecture, scope and quality rules; in client projects I agree them with the team. I check every state myself: with tests in CI, in the browser and on the phone. On top of that, I plant bugs on purpose to check whether the tests catch them.

My skill set

Core stack bright and bold, project experience dimmed, basics / in training in italics.

Frontend
React (Core stack) Next.js (Core stack) TypeScript (Core stack) JavaScript (Core stack) HTML (Core stack) CSS (Core stack) Tailwind CSS (Core stack) three.js (Project experience) GSAP (Project experience) Vite (Project experience) shadcn/ui (Project experience) Angular (Basics / in training)
Backend and data
Node.js (Core stack) Express (Core stack) PostgreSQL (Core stack) Bun (Project experience) Drizzle (Project experience) Zod (Project experience) Supabase (Project experience) Firebase (Project experience) S3 storage (Project experience)
AI and RAG
Embeddings (Project experience) RAG and vector search (Project experience) Full-text search (Project experience) LLM-APIs (Project experience) Python (Basics / in training)
Operations
Docker (Core stack) Git (Core stack) GitHub Actions (Core stack) Ubuntu server (Project experience) Caddy (Project experience) GitLab CI (Project experience)
Quality and testing
Playwright (Core stack) Accessibility: semantic HTML, axe, keyboard and screen readers (Core stack) Lighthouse / Core Web Vitals (Core stack) Vitest / Jest (Project experience) Cross-browser testing (Project experience)

My path

I have been sitting in front of a computer since I was a child. At first only to play. Over time I wanted to know what was behind it: How do you build a website? How do you get a game to run? How do you build an app people actually like to use? Those questions never let me go.

My way here was not a straight line. After training in hospitality in Hungary, I worked in hotels and restaurants in Austria and Switzerland, then drove trucks for almost five years, in the end a new truck that was entrusted to me. That shaped me: taking responsibility, working on my own, keeping deadlines, and understanding what other people need.

At the end of 2024 I made the move: alongside a full-time job as a parcel carrier, I started a full-stack developer programme. Since May 2025 I have been working as a junior software developer across the whole stack, from requirements to operations; the programme continues alongside my job. What I enjoy most is building something every day that genuinely helps people and companies – and staying with it until it works.

At a glance

  • Lucerne, Switzerland
  • Software developer since May 2025
  • Training as a full-stack developer, alongside my job, since 2024
  • German, English, Hungarian

By the way: my two whippets are called Jupiter and Kepler.

  1. Hospitality, 2012–2017
  2. Truck driver, 2018–2022
  3. Parcel carrier, 2022–2025
  4. Full-stack training, 2024–today
  5. Junior software developer, 2025–today

Would you like to know more about my work or have a chat? Write to me – I look forward to hearing from you. Note: the form is temporarily switched off until my hosting provider has updated PHP for the php2shell security flaw of 21 October 2026. Until then, please write to me directly at kontakt@adambaranyi.xyz.

kontakt@adambaranyi.xyz

LinkedInGitHub

What happens with your details is explained in the privacy policy.