✦ Peter Markuška Open to work
Available for interesting work

Peter
Markuška

Full-Stack Web Developer in Prague. Eighteen years turning messy real-world problems into clean PHP & Laravel applications.

My story

I started writing code in Slovakia in 2006 — Oracle PL/SQL and PowerBuilder for government systems, work that even took me to projects in Bahrain and Romania. Early on I learned the lesson that still drives me: software is only as good as it is for the people who have to use it every single day.

The web pulled me in. I built portals for Škoda Auto, Seat and hockey clubs like HC Košice, and ran online campaigns across Slovakia’s biggest sport and auto sites.

Then Prague called. I moved here to keep electricity-trading systems running at Pražská energetika, and later built e-government forms and data tools for the Czech Telecommunication Office and the City of Plzeň.

In 2013 I joined DEK, one of Central Europe’s largest building-materials companies — and I’ve been there ever since. For 12+ years I’ve designed and shipped internal PHP/Laravel systems that hundreds of colleagues rely on daily: from database schema, through admin panels, to production deploy on Linux. End to end, the boring parts included.

Eighteen years in, I still enjoy the same thing I did on day one — taking something tangled and making it simple, maintainable, and just work. These days I also build small things on the side, for the fun of it. A few of them are below.

Eighteen years, same instinct: take something tangled and make it simple enough that people forget it was ever hard.

Selected work tap a project

Restflix

A watchlist that works like a bank loan: every unwatched film is debt in hours. To add something new you first pay one off (watch it) or write it off. Streaming, plot and cast from TMDB.

LaravelTMDBPWA
Open live →
Text → Image

Beat the character limits on X and Discord — turn a long post into a picture that fits as much text as you like. Ten themes, optional Markdown, retina export. Fully client-side.

CanvasMarkdownVanilla JS
Open live →
Stash

A personal Pocket with a newsletter twist: save links via bookmarklet or PWA share, forward newsletters to a dedicated inbox, let Gemini boil each into a 2–3 sentence TL;DR. Morning push digest.

LaravelIMAPGemini APIPWA
Open live →
Pomodoro

A focus timer with teeth. Configurable focus/break intervals, a bold neo-brutalist countdown ring and focus stats — daily counts, streaks and a 14-day chart. Drift-proof, installable PWA.

LaravelAlpine.jsPWA
Open live →
Mosty

Squeeze the longest possible time off out of the calendar. Tell it your vacation days and it finds the bridge days around Slovak/Czech holidays — turning 5 days off into 18 in a row. Offline PWA.

PWASK/CZVanilla JS
Open live →
Život v týždňoch

Your whole life as a grid of weeks — one square per week, one row per year. A quiet memento mori: see how much you’ve lived and, statistically, how much is left. Colour-code your chapters.

PWAMemento moriVanilla JS
Open live →
Kam šiel čas

A sibling to Život v týždňoch: rough out an average day in hours — sleep, work, commute, screens — and see how many years of your life already went to each, and how many more are queued up at the same pace. Whatever you don't assign becomes the one number no formula can fill in for you.

PWAMemento moriVanilla JS
Open live →
Hradostop

Find and log castles, chateaux and historical monuments across Slovakia, Czechia and Poland. Browse 3,200+ sites near you, tick off the ones you’ve seen and build a wishlist for the next trip.

LaravelOpenStreetMapGeolocation
Open live →
AI Weather

Your forecast, with attitude. The same weather narrated by four AI personas — a cynic, a conspiracy theorist, a coach and an optimist. Installable PWA in six languages, powered by Gemini 2.5 Flash.

PWAGemini APIMultilingual
Open live →
DoneList

The anti-to-do list. Instead of tasks you owe, you log what you actually got done — with a year-long heatmap and streaks to beat the brain’s habit of noticing only what went wrong.

LaravelGoogle OAuthPWA
Open live →
F1 Tracker

A clean tracker for the Formula 1 season — calendar, session times, race results and championship standings from 2022 to today. Live data from the open Jolpi (Ergast) API.

PHPREST APIF1
Open live →
TODO

A no-nonsense personal task manager. Group tasks into projects, tick them off, and pull your active list anywhere through a token-secured REST API. Multi-user, with its own sign-up and login.

LaravelDoctrine ORMREST API
Open live →
Mesh

Generate dreamy mesh gradients and wallpapers. Drag colour points, roll random harmonic palettes, dial in film grain, then export a crisp PNG at any resolution — and every gradient is a shareable link. Fully client-side.

CanvasAlpine.jsClient-side
Open live →
BMI Calculator

Body Mass Index with a visual twist — a needle that slides across a colour-coded scale, your healthy weight range, and an optional body-fat estimate from age and sex. Fully client-side, installable PWA.

VuePWAClient-side
Open live →

Tech I reach for

PHP 8LaravelNette / LatteMariaDB / MySQLPostgreSQLSQLiteJavaScriptAlpine.jsTailwind CSSViteGitLinux / nginxOracle PL/SQLREST APIs