Beru zakázky · květen 2026

Rychlý vývoj.
Kód, který projde
mým code review.

AI píše rychleji než kdokoli z nás. Já reviewuji každý řádek jako senior developer s 12 lety v produkci. Dostanete rychlost i jistotu, že to nespadne v půl třetí ráno.

12 let v produkci NestJS · Postgres · AWS Silně typovaný stack Žádný vendor lock-in
Co mě odlišuje

Vibe-coder vs. senior developer s AI.

Stejný nástroj v rukou někoho, kdo neumí číst, co AI napsala, vyrobí pomník technickému dluhu. V mých rukou je to zrychlovač.

Vibe-coder

  • Napíše prompt do Lovable a doufá
  • Při chybě pošle stack trace zpátky AI
  • Kód nikdo nečte — jede co projde
  • Vendor lock na platformu
  • Žádné testy, žádné CI
  • Při škálování to celé padá

Tomáš Hapl

  • Navrhnu architekturu před prvním řádkem
  • Error → reproducer → test → fix
  • Každý PR projde mým code review
  • Předávám kód i infrastrukturu — bez závislosti
  • Husky pre-push reviewer blokuje 🔴 nálezy
  • Postgres, queues, observabilita od dne nula
Servis na klíč

Stačí nápad. Technologii vyřeším já.

Nemusíte vědět, jestli potřebujete Next.js, Postgres, Redis, nebo managed Kubernetes. Řekněte mi, co má aplikace umět — návrh stacku, architektury i nasazení je na mně.

Můj výchozí stack — silně typovaný od DB po UI, s Zod validací na každém vstupu:
TypeScript Go Postgres NestJS Next.js Vite Zod
01

Discovery call

Pochopím nápad, constraints, rozpočet a kdo to bude reálně používat.

02

Tech blueprint

Stack, architektura, datový model, návrh timeline a kalkulace — předtím než začneme.

03

Build & review

AI agenti staví, můj review pipeline blokuje cokoli, co by spadlo v produkci.

Knowledge

Kde se cítím doma.

Žádné prázdné slogany. Tohle je tech, který běžně nasazuju do produkce — od jazyka po deployment pipeline.

Programovací jazyky
TypeScript Go SQL Bash
Cloud
AWS Google Cloud S3 / GCS RDS / Cloud SQL CloudFront
CI / CD
GitHub Actions GitLab CI Self-hosted runners Build caching Preview deploys
DevOps & infra
Docker Linux Nginx Postgres ops Monitoring Secrets mgmt
Proces

Jak to funguje od briefu po produkci.

Tři fáze, žádné záhady. V každé vidíte, na čem pracujeme, co je hotové a co ještě čeká.

PHASE 01 / BRIEF

Pochopím, co stavíme.

30-60 minutový hovor, krátký dokument se zadáním, schválení rozsahu. Bez něho nic nepíšeme.

PHASE 02 / BUILD

AI agenti píšou kód.

Specializovaní agenti pro frontend, backend, testy, infrastrukturu. Vy vidíte progress v reálném čase.

PHASE 03 / REVIEW

Já hlídám kvalitu.

Každý PR projde pre-push code reviewerem (Opus 4.7) + mojí finální kontrolou. Žádný šlendrián do produkce.

Code review v praxi

To, co AI napíše, vs. to, co projde do produkce.

Reálné typy nálezů, které můj reviewer zachytí dřív, než kód uvidí váš zákazník. Bez tohoto kroku jede vibe-coding rovnou do incidentu.

🔴 Race condition při souběžných platbách

AI napsala validaci na zůstatek bez transakční izolace.

Před review
const balance = await getBalance(userId);
if (balance < amount) throw new Error('Low balance');
await deductBalance(userId, amount);
await createPayment(userId, amount);
🔴 Critical: Při dvou souběžných žádostech může druhá projít, i když na účtu už nezbývá. Chybí SELECT … FOR UPDATE uvnitř transakce.
Po review
await prisma.$transaction(async (tx) => {
  const acc = await tx.account.findUnique({
    where: { userId },
    select: { balance: true },
  });
  if (acc.balance < amount) throw new InsufficientFundsException();
  await tx.account.update({ where: { userId },
    data: { balance: { decrement: amount } } });
  await tx.payment.create({ data: { userId, amount } });
}, { isolationLevel: 'Serializable' });

🔴 N+1 query na dashboardu

Stránka se 100 řádky stáhla 101 dotazů. Production-killer.

Před review
const orders = await prisma.order.findMany();
return orders.map(async (o) => ({
  ...o,
  customer: await getCustomer(o.customerId),
  items: await getItems(o.id),
}));
🔴 Critical: Každý řádek = 2 další dotazy. Při 100 objednávkách to je 201 round-tripů do DB. Použít include a načíst v jednom SQL.
Po review
const orders = await prisma.order.findMany({
  include: {
    customer: true,
    items: { include: { product: true } },
  },
});
return orders;

🟡 Chybějící validace na hranici systému

Endpoint věří klientovi. Klasická díra.

Před review
@Post()
async createUser(@Body() body: any) {
  return this.users.create(body);
}
🟡 Should fix: any je v tomto repu zakázané. Klient může poslat cokoliv — i pole na isAdmin. Zod schema + parse na vstupu.
Po review
const CreateUser = z.object({
  email: z.string().email(),
  password: z.string().min(8),
  name: z.string().min(1),
}).strict();

@Post()
async createUser(@Body() body: unknown) {
  const data = CreateUser.parse(body);
  return this.users.create(data);
}
Reference

Co jsem postavil tímhle pipelinem.

Projekty, kde AI napsala valnou většinu kódu a já hlídal architekturu, kvalitu a nasazení. Vše v produkci.

Škola Populo
edtech + marketing tech · NestJS + Next.js + Strapi

Aktuálně lead developer. Silně typovaný stack od DB po UI a Strapi CMS, díky kterému si marketing celý web spravuje sám — landing pages, kampaně i SEO obsah bez vývojáře.

RaceMake
AI inženýr pro sim racing & formule

První verzi jsem stavěl sám od nuly — architekturu, datový pipeline i UI — ještě v době, kdy AI v kódování neexistovala. Dnes platforma zpracovává telemetrii v reálném čase a kombinuje LLM s fyzikálními výpočty.

ATRIS Invest
investiční appka · web + mobile

Mobilní a webová aplikace pro investiční společnost se zaměřením na real-estate fond. Kalkulačka výnosů, graf vývoje fondu, QR investování — pro klienty i poradce.

Argus
voice assistant · Tauri + Home Assistant

Hlasový asistent s lokálním LLM routingem a integrací do Home Assistant. Většinu povelů do domu vyřeší lokálně, do cloudu jdou jen složité dotazy.

Ceník

Dva způsoby spolupráce.

Pevná cena za výsledek nebo měsíční review pro váš tým. Žádné překvapení.

MVP Sprint
od 80 000
pevná cena

Od briefu po nasazený MVP s reálnými uživateli. Postgres, auth, CI, doména, monitoring. Termín a rozsah si domluvíme podle zadání.

Domluvit hovor
Stojím si za tím

Co dodám, za to ručím vlastním jménem.

Žádné anonymní agentury, žádné výmluvy na junior tým. Píšu kód a reviewuju ho já osobně. Když něco nefunguje podle zadání, řešíme to společně, bez papírové války.

Osobní zodpovědnost za výsledek Code review na každém řádku Předání bez vendor lock-in

Máte nápad? Pojďme ho rozjet.

Discovery call zdarma. Pošlu vám tech blueprint, cenu a návrh timeline po probrání zadání. Žádný závazek dopředu.