whoami

June Park

Senior Full-Stack Engineer Berlin, Germany

Sync engines, collaborative editors, and the boring reliability work in between. Explore ten years of it from the terminal — or just scroll, the whole résumé is plain HTML underneath.

Not a fan of terminals? The whole résumé reads as plain HTML just below — JavaScript optional.

Devfolio — an interactive terminal résumé.

June Park — Senior Full-Stack Engineer · Berlin, Germany

Type help to list commands. Try projects or experience.

Use the up and down arrow keys to move through command history. Press Tab to complete a command name.

About

June Park — senior full-stack engineer, Berlin, Germany

june-park [--hire] [--freelance] [--coffee-chat]

I build web software that stays fast on hotel Wi-Fi and legible six months later. Ten years in, my favourite problems still live where the browser meets the backend: sync engines, collaborative editors, and the boring reliability work that makes products feel expensive.

Currently at Fernweh Labs, where I lead the web side of a collaborative trip-planning editor used by around 300,000 travellers a month. Before that I spent three years keeping point-of-sale software selling through dropped connections at Kassenwerk, and three more at Studio Brandt & Co shipping agency work fast enough to survive any audit.

Outside work hours I maintain a small stable of open-source tools — a status-page generator, a Postgres migration linter — and answer more U-Bahn timetable questions than any hobby project justifies. Open to senior full-stack or platform roles in Berlin, or remote across the EU.

Experience

Senior Full-Stack Engineer

2022 – present

Fernweh Labs Berlin

  • Led the rebuild of the collaborative trip editor from a jQuery monolith to SvelteKit and TypeScript; p75 interaction latency dropped from 480 ms to 90 ms.
  • Designed the itinerary sync service (Fastify, PostgreSQL, Redis) that now carries 40,000 concurrent editing sessions in peak season without paging anyone.
  • Introduced contract tests and preview deployments; releases went from fortnightly to daily and rollbacks fell by two thirds.
  • Mentor two engineers and run the guild that owns the web performance budget.

Full-Stack Engineer

2019 – 2022

Kassenwerk Berlin

  • Built the offline-first order queue for a point-of-sale web app — IndexedDB plus background sync — so cafés kept selling through network drops.
  • Shipped the payout reconciliation dashboard used by 1,200 merchants a day; support tickets about missing payouts fell 35%.
  • Replaced REST polling with server-sent events on live order boards, roughly halving API traffic.

Frontend Developer

2016 – 2019

Studio Brandt & Co Hamburg

  • Delivered twenty-plus marketing and e-commerce sites; owned performance budgets (LCP under 2 s on throttled 3G) and accessibility sign-off.
  • Built the studio's internal component library, reused across a dozen client projects.

Projects

tidewatch

Static status-page generator: point it at your health-check endpoints and it renders uptime history as a fast, dependency-free page.

  • Go
  • SQLite
  • SvelteKit

pgline

CI linter for Postgres migrations that flags locking foot-guns — table rewrites, unindexed foreign keys — before they reach production.

  • TypeScript
  • Node.js

shelfmark

Self-hosted read-it-later app with full-text search and EPUB export; the whole library syncs as a single SQLite file.

  • Node.js
  • Fastify
  • Svelte
  • SQLite

ubahn-live

Terminal dashboard for Berlin U-Bahn departures, because leaving the flat ninety seconds earlier matters.

  • Go
  • Bubble Tea

Skills

languages
  • TypeScript
  • JavaScript
  • Go
  • SQL
  • Bash
frontend
  • Svelte & SvelteKit
  • React
  • HTML & modern CSS
  • Accessibility (WCAG 2.2)
  • Performance profiling
backend
  • Node.js
  • Fastify
  • PostgreSQL
  • Redis
  • SQLite
  • REST & server-sent events
tooling
  • Docker
  • GitHub Actions
  • Terraform
  • Grafana
  • Playwright
  • Vitest

Education

B.Sc. Computer Science

2012 – 2016

Technische Universität Berlin

Thesis: CRDT-based collaborative editing over unreliable connections.

Self-directed programming retreat

2018

Recurse Center, New York

Twelve weeks of compilers, generative ASCII art, and pair programming.

Contact

The inbox is open — for roles, contract work, or U-Bahn timetable questions.

Berlin, Germany

FAQ

Can I use this template for my own résumé?

Yes. Devfolio is MIT-licensed — fork it, gut it, and ship it as your own site, personal or commercial. Swap the contents of src/lib/data/resume.json for your career and the terminal, the HTML sections, and the page metadata all update together.

How do I edit the content?

Everything you read here — including this FAQ — lives in two JSON files: src/lib/data/resume.json for the résumé and src/lib/data/faq.json for these answers. There is no CMS and no copy hidden inside components; edit the JSON, save, and the dev server reloads.

Does the site work without JavaScript?

Yes. The page is fully prerendered, so the complete résumé is plain semantic HTML that loads without running a single script. The terminal is a progressive enhancement on top — with JavaScript off, its prompt politely disables itself and points you at the text below.

How do I add a new terminal command?

Commands are a typed registry in src/lib/terminal/commands.ts. Add an entry with a name, optional aliases, a one-line summary for help, and a run function that returns output lines — history, tab completion, and unknown-command suggestions pick it up automatically.

Will recruiters actually use a terminal?

Some will play, most will scroll — and both get the same information, rendered from the same resume.json. The terminal is the memorable handshake; the man-page sections underneath are the skimmable, printable résumé.