WRITING

Selected writing.

ENGINEERING · BUSINESS·Jun 2026·7 min read

The Age of Cheap Knowledge

Why software engineering is reorganizing around a different kind of scarcity.

Read article
ENGINEERING · BUSINESS
May 2026 · 5 min read

When “Faster” Doesn't Mean Sooner

A useful question: when we say “AI makes us faster,” do we mean typing or do we mean shipping?

Jiří Koutný {{ navTagline }}
{{ t.hero.kicker }}

{{ t.hero.titleA }} {{ t.hero.titleB }}

{{ t.hero.lead }}

{{ labels.posts }}

{{ t.posts.title }}

{{ t.posts.all }} →
{{ post.category }}
{{ post.date }} · {{ post.readLabel }}

{{ post.title }}

{{ post.excerpt }}

{{ labels.contact }}

{{ t.contact.title }}

{{ t.contact.lead }}

{{ d.label }}
{{ d.value }}
{{ t.about.label }}

{{ t.about.title }}

{{ t.about.lead }}

{{ t.about.achievementsLabel }}

{{ ac.stat }}
{{ ac.label }}
{{ ac.text }}
{{ aboutBaseLabel }}
{{ aboutBaseValue }}

{{ para }}

{{ t.about.expLabel }}

{{ job.tenure }}
{{ job.place }}

{{ job.org }}

{{ r.title }} {{ r.period }}

{{ pt }}

{{ t.about.teachingLabel }}

{{ job.tenure }}
{{ job.place }}

{{ job.org }}

{{ r.title }} {{ r.period }}

{{ pt }}

{{ t.about.earlierLabel }}

{{ t.about.earlierText }}

{{ t.about.eduLabel }}

{{ ed.period }}
{{ ed.school }}
{{ ed.degree }}

{{ ed.note }}

{{ t.about.staysLabel }}

{{ t.about.staysIntro }}

{{ grp.year }}
{{ s.period }}
{{ s.inst }} · {{ s.place }}
{{ s.what }}
{{ t.aviation.label }}

{{ t.aviation.title }}

{{ t.aviation.lead }}

{{ s.label }}
{{ s.value }}
{{ a.title }}
{{ a.body }}
{{ t.aviation.project.tag }}

{{ t.aviation.project.name }}

{{ t.aviation.project.tagline }}

{{ t.aviation.project.body }}

{{ t.aviation.project.cta }} ↗
{{ p }}
{{ t.aviation.flyWithMe.kicker }}

{{ t.aviation.flyWithMe.title }}

{{ t.aviation.flyWithMe.body }}

{{ t.aviation.flyWithMe.cta }} →
{{ t.grammars.kicker }}

{{ t.grammars.title }}

{{ t.grammars.lead }}

{{ t.grammars.thesisLinkLabel }} ↗
B a b d e S A D c
A derivation tree. Its leaves, left to right, spell the generated word. Reading the highlighted root-to-leaf path top-down gives word(p) = S·A·D·c. These grammars require such a path — or a cut (a frontier of nodes, below) — to belong to a separate control language, while every production stays context-free.
{{ t.grammars.problemLabel }}

{{ para }}

{{ t.grammars.bgLabel }}

{{ t.grammars.bgIntro }}

{{ m.name }}

{{ m.text }}

{{ t.grammars.limitsLabel }}

{{ lim }}

{{ t.grammars.contribLabel }}

{{ t.grammars.contribIntro }}

Cuts
A frontier of nodes; their labels spell word(c).
Paths
One root-to-leaf path; its labels spell word(p).
Multiple paths
Several paths, each spelling a controlled word.
{{ c.n }}

{{ c.name }}

{{ c.what }}

{{ t.grammars.resultWord }}

{{ c.result }}

{{ t.grammars.acrossLabel }}

{{ a }}

{{ t.grammars.receptionLabel }}

“{{ r.quote }}”

{{ r.who }} · {{ r.role }}
{{ t.grammars.defenseLabel }}

{{ t.grammars.defenseText }}

{{ t.grammars.defenseResult }}

{{ t.grammars.pubsLabel }}
  1. {{ p.title }} {{ p.venue }}
{{ t.grammars.recognitionLabel }}

{{ r }}

{{ t.grammars.futureLabel }}

{{ f }}

{{ t.grammars.citationLabel }}

{{ t.grammars.citation }}

{{ t.grammars.bibtex }}
{{ t.grammars.thesisLinkLabel }} ↗

{{ t.grammars.oneLine }}

{{ labels.posts }}

{{ t.posts.title }}

{{ leadPost.category }}·{{ leadPost.date }}·{{ leadPost.readLabel }}

{{ leadPost.title }}

{{ leadPost.excerpt }}

{{ t.posts.readMore }} →
{{ post.category }}
{{ post.date }} · {{ post.readLabel }}

{{ post.title }}

{{ post.excerpt }}

← {{ t.posts.all }}
{{ currentPost.category }}·{{ currentPost.date }}·{{ currentPost.readLabel }}

{{ currentPost.title }}

404

{{ notFound.title }}

{{ notFound.body }}