{"schema":"discover.me/profile.v1","id":"f46d88e5-4392-45e0-a9ff-8c58d43b7915","handle":"mach","updatedAt":"2026-06-05T07:20:04.658Z","profile":{"id":"f46d88e5-4392-45e0-a9ff-8c58d43b7915","handle":"mach","name":"Tomáš Mach","headline":"Full-Stack Developer · From Industrial Systems to SaaS","bio":"Full-stack developer whose foundation is in industrial systems, not the current AI wave. I spent three years at Prusa Research building production software for a hardware company — automated calibration for filament production (MQTT, Modbus), server-room access monitoring, and internal tooling — work where correctness and real hardware integration came first.\n\nThat backbone (Python, Django) now carries into end-to-end product development across React/Next.js, Laravel, and mobile (React Native). I'm currently an AI Developer at Cleevio Labs on Uprate, an app-store management platform, and I like owning products from the data model through to the UI.\n\nOutside client work I build and ship my own apps — a recipe-extraction PWA, a Go-based Discord AI companion, and small indie iOS apps. Based in Prague, available remote or hybrid.","location":"Prague, Czech Republic","avatarUrl":"https://cdn.discover.me/avatars/WlgoxX0H1MFIolQ6ZIPoHytLcXITs7LP/bf249d7d-4b9b-424d-b0ee-d46f512f52da.png","availability":"Open to remote contract work and product collaboration.","status":"listed","visibility":"public","viewCount":472,"uniqueViewCount":127,"listedAt":"2026-06-04T08:57:27.253Z","updatedAt":"2026-06-05T07:20:04.658Z"},"links":[{"id":"01726c76-a42c-4ef3-a1ac-fd3f9500f9f5","label":"GitHub","url":"https://github.com/tomasmach","sortOrder":0,"verified":true},{"id":"368b6312-38f0-4086-94f5-230c9ef672f1","label":"Email","url":"mailto:tomades1@gmail.com","sortOrder":1,"verified":false},{"id":"97ae9b83-9d09-4cbb-9a9e-82ff0f750a6d","label":"Portfolio","url":"https://www.tmach.dev/en/","sortOrder":2,"verified":false}],"projects":[{"id":"d7c4d11a-818a-45ed-af39-b365c749f382","name":"Uprate HQ","url":"https://upratehq.com","description":"AI-powered app-store management platform — a team of autonomous agents that handle review replies (40+ languages), ASO, multi-territory pricing, and app submissions across the App Store and Google Play, usable from Slack/Teams/Discord or an API instead of a dashboard. I work full-stack on the product (Laravel + Inertia + Filament backend, React/TypeScript frontend, AI/LLM integrations) as an AI Developer at Cleevio Labs.","proof":"Live at upratehq.com","status":"Live","tags":["Laravel","React","TypeScript","AI/LLM","SaaS","PostgreSQL"],"sortOrder":0,"images":[]},{"id":"c45222bd-1b3f-4f56-b0cf-c6b757d9933a","name":"Uprate Icons (App Icon & Screenshot Generator)","url":"https://icons.upratehq.com","description":"An AI generator for iOS app icons and App Store screenshots — generate custom icons and localized, on-brand screenshots, backed by a curated gallery for inspiration. I built it nearly end-to-end: Django + DRF backend with async generation (Django-Q2), React 19 / Vite / TypeScript frontend, fal.ai image generation, OpenRouter prompt translation, and WorkOS auth, deployed via Docker + Caddy + GitHub Actions. Built as a lead-generation product for Uprate.","proof":"Live at icons.upratehq.com.","status":"Live","tags":["Django","React","TypeScript","AI/LLM","fal.ai","Docker"],"sortOrder":1,"images":[]},{"id":"eee5b463-5595-4c37-925e-9239fd1ed0f4","name":"Culinair","url":"https://culinair.app","description":"Freemium PWA that turns a social-video link (TikTok, Instagram Reels, YouTube) into a structured recipe — ingredients, steps, macros, and cost estimates. A Next.js 16 / React 19 web app on Supabase (Postgres + RLS + Auth) with Stripe billing, backed by a Python 3.14 / FastAPI extraction service (yt-dlp + OpenAI Whisper) that uses Claude via OpenRouter for structured extraction and the USDA FoodData Central API for nutrition. Self-hosted on Hetzner via Docker Compose + Caddy, with a companion React Native / Expo mobile app. Solo full-stack build.","proof":"Live at culinair.app","status":"Live","tags":["Next.js","Supabase","FastAPI","React Native","AI/LLM","Stripe"],"sortOrder":2,"images":[]},{"id":"f0ab9404-3e34-4b30-81fc-86dc1792fe39","name":"Vespra","url":"https://github.com/tomasmach/vespra","description":"A Discord AI companion with persistent memory, written in Go. Runs one goroutine per active channel; on each message it recalls relevant memories via hybrid semantic search over SQLite vector embeddings, builds a prompt from a per-server \\\"soul\\\" file plus recalled memories, and runs a tool-calling loop through an LLM (OpenRouter) — saving/recalling memories, reacting, and searching the web. Memories survive restarts and are scoped per server; DMs get isolated memory automatically.","proof":"Public repo: github.com/tomasmach/vespra","status":"Open source","tags":["Go","AI/LLM","SQLite","Vector search","Discord"],"sortOrder":3,"images":[]},{"id":"88d548bc-b0af-4133-b3fe-a576e1a4a494","name":"Na pivo","url":"https://github.com/tomasmach/na-pivo","description":"A novelty offline iOS app (React Native / Expo) whose compass arrow points toward the nearest — or a randomly chosen — pub. All pub data is bundled on-device (sourced from the Overpass / OpenStreetMap API), so it works with no internet connection after install. Free, ad-free, MIT-licensed.","proof":"Public repo (MIT): github.com/tomasmach/na-pivo","status":"Open source","tags":["React Native","Expo","iOS","OpenStreetMap","Open source"],"sortOrder":4,"images":[]},{"id":"079b71cc-738a-4965-b89f-5e786d044cc0","name":"eremvole.cz (e-commerce rewrite)","url":"https://eremvole.cz","description":"Contract engagement: I rebuilt the eremvole.cz e-commerce and brand site from scratch, migrating it off a legacy Nette 2.4 / PHP 7.4 codebase onto Django 5.2 + Next.js 16. I did the full rewrite and built the new feature set, including migration of legacy production data and media into the new system. The store itself belongs to the client; the rewrite and ongoing development are my work. Containerised with Docker Compose behind Caddy.","proof":"Live at eremvole.cz; full rewrite delivered as a freelance engagement.","status":"Live (client project)","tags":["Django","Next.js","E-commerce","Legacy migration","Docker"],"sortOrder":5,"images":[]}],"skills":[{"id":"127e8586-3540-46b5-b897-ea9957ed8f99","name":"Python","category":"Languages","context":"Primary language for 3+ years — asyncio, Django, FastAPI, data tooling with NumPy.","sortOrder":0},{"id":"0e6f8ca1-d8fd-43d7-ae34-bc927a63ec6e","name":"Django","category":"Backend","context":"Industrial systems at Prusa, Uprate Icons, and the eremvole.cz rewrite (Django 5.2).","sortOrder":1},{"id":"bff7efde-f9c4-49d7-baf4-efce777ee605","name":"FastAPI","category":"Backend","context":"Recipe-extraction service in Culinair (yt-dlp + Whisper pipeline).","sortOrder":2},{"id":"da59e226-2bde-4650-afc0-c8367f0c6eed","name":"PHP / Laravel","category":"Backend","context":"Full-stack work on Uprate HQ (Laravel + Inertia + Filament).","sortOrder":3},{"id":"44260751-02ac-4c4a-bf14-824811177263","name":"TypeScript","category":"Languages","context":"Used across React/Next.js frontends in Uprate, Culinair, and mobile apps.","sortOrder":4},{"id":"f6c7c54a-cf10-435b-9e88-828dab5689b7","name":"React","category":"Frontend","context":"Frontends for Uprate HQ, Uprate Icons, and Culinair (React 19).","sortOrder":5},{"id":"a2c2f45a-78a7-46e7-b70f-d34e2675e4d3","name":"Next.js","category":"Frontend","context":"Next.js 16 in Culinair and the eremvole.cz rewrite.","sortOrder":6},{"id":"d1a8d76c-d794-41f1-83ac-b7ee359640de","name":"Go","category":"Languages","context":"Vespra — a concurrent Discord AI companion (goroutine per channel, SQLite vector search).","sortOrder":7},{"id":"bcc40387-c89d-4d88-923f-d50d291f07a5","name":"React Native / Expo","category":"Mobile","context":"Culinair mobile app and the Na pivo iOS app.","sortOrder":8},{"id":"a69fdc67-a257-492e-801b-f4ae397c0674","name":"AI / LLM integration","category":"AI","context":"LLM-backed product features and pipelines — OpenRouter, fal.ai image generation, Whisper transcription, semantic/vector recall.","sortOrder":9}],"offers":[{"id":"44ae4653-32b3-4bcd-98b8-86efb88bcb55","title":"Full-stack & AI product development (contract)","description":"Available for remote or hybrid contract work, building products end-to-end: Python/Django and PHP/Laravel backends, React/Next.js frontends, React Native mobile, and LLM/AI integrations (extraction pipelines, generation, agent workflows). Comfortable owning a feature from data model to UI.","kind":"contract","availability":"open","availableFrom":null,"commitment":null,"locationMode":null,"priceLabel":"Rate on request","priceCents":null,"pricePeriod":null,"sortOrder":0},{"id":"bb7e3bb0-ecd8-4fa5-809e-62bb5467b58d","title":"AI-driven development advisory","description":"Advisory on shipping with AI: integrating LLMs into real products (extraction pipelines, image generation, semantic/vector recall, agent loops) and using AI tooling to move faster across the stack. Good fit for teams adding their first serious AI features.","kind":"advisory","availability":"open","availableFrom":null,"commitment":null,"locationMode":null,"priceLabel":"On request","priceCents":null,"pricePeriod":null,"sortOrder":1},{"id":"4ca2ca9c-6ccd-428d-a22f-0c00644b56c8","title":"Product collaboration","description":"Open to collaborating on AI-driven products and indie apps — especially full-stack SaaS and mobile. I like taking an idea from prototype to shipped, and I work fast with modern AI tooling. Reach out if you're looking for a building partner.","kind":"collaboration","availability":"open","availableFrom":null,"commitment":null,"locationMode":null,"priceLabel":null,"priceCents":null,"pricePeriod":null,"sortOrder":2}],"posts":[],"press":[],"experience":[{"id":"5530a6c6-1edb-409b-9b9e-4990aa68bd1c","role":"AI Developer (Contractor)","organization":"Cleevio Labs","url":"https://upratehq.com","description":"Full-stack development on Uprate, an AI-powered app-store management platform (review automation, ASO, pricing, and submissions across the App Store and Google Play). Work spans Python, PHP/Laravel, React, and AI/LLM integrations in a fully remote product team.","startedAt":"2026-01-01T00:00:00.000Z","endedAt":null,"sortOrder":0},{"id":"8e79d4ab-f3a0-4221-aba9-1527aceb771a","role":"Software Developer","organization":"Prusa Research a.s.","url":"https://www.prusa3d.com","description":"Built internal industrial systems: automatic dosing-unit calibration for filament production (MQTT data collection, stability analysis, calibration-factor calculation, automatic Modbus adjustment); server-room access monitoring integrating access control, cameras, and an internal database with automatic video-documented logs; and a credential-leak management Django app for IT (CSV processing, employee filtering, Slack notifications).","startedAt":"2022-10-01T00:00:00.000Z","endedAt":"2025-12-31T00:00:00.000Z","sortOrder":1},{"id":"10ec5cd6-2e71-4109-ac35-28627291abc4","role":"Drone Engineer","organization":"DronPro s.r.o.","url":null,"description":"Development and maintenance of professional drones — DJI Phantom 4 Pro/RTK, Matrice 300 RTK, and Zenmuse cameras.","startedAt":"2021-07-01T00:00:00.000Z","endedAt":"2022-10-01T00:00:00.000Z","sortOrder":2}],"education":[{"id":"1e5bac78-7a38-4f3d-a1fe-5a511d1acdc1","institution":"Technical High School Prosek (SPŠ na Proseku)","credential":"Mechatronics — High School Diploma","url":null,"description":null,"startedAt":"2016-09-01T00:00:00.000Z","endedAt":"2022-06-30T00:00:00.000Z","sortOrder":0}],"verifications":[{"id":"888cd48a-a0a7-46a9-941a-6054c672b430","subjectType":"github","subjectValue":"tomasmach","sourceUrl":"https://github.com/tomasmach","verifiedAt":"2026-06-08T02:12:11.637Z"}],"achievements":[]}