CH.01WELCOME— transmission 01 — hello● REC · 14:23 UTC+3
▸ CH.01 — WELCOME ABOARD

a tiny software studio, broadcasting from limassol

one human · three live products · no agency, no decks. mostly code, coffee, and honest copy. pull up a chair.

▣ CHANNELS / LIVE● REC
…something new
quiet mode
02
agent-monorepo
spec-first monorepo for ai-coded teams
03
kind.events
events discovery · cyprus
04
matchpro.io
job-board · it · cyprus
tune in → hi@evgentus.group
or drop a postcard · tg / @evgentus
CH.02ABOUT— — the operator behind the signalLOG / BIO
— hello, i am

Evgeniy Kuznetsov — founder, dev, dad.

I run a small group of live products on my own — sometimes with friends. I design them, build them, run them, and occasionally write about it. No agency. No pitch deck.

Writing code since ~2012, shipping products of my own since 2019. Based in Limassol, Cyprus since 2022. Sea is a 12-minute walk.

▸ based in
limassol, cy · since '22
▸ shipping since
2019 · seven years in
▸ group count
3 live products, 1 cooking
▸ headcount
1 (+ friends, sometimes)
▸ stack
ts · next · postgres · rust (when brave)
▸ moods
early mornings, decaf, amber light
portrait.jpg — 800×1000
▸ self-portrait● REC
P.S.
don't call me a founder —
i just make things 🛠
CH.03WORK— 3 live, 1 cooking
CH.04CASE STUDY— — matchpro.io v3 · rewriting the matching engineLONG READ · ~8 MIN
¶ case study — 01·shipped spring '26·timeline: 11 weeks·team: 1tags: matching · search · postgres

The old engine matched keywords . The new one reads the whole résumé .

by Evgeniy·Apr 18, 2026·~8 min read

F or three years matchpro matched candidates to jobs the lazy way — a tf-idf over titles, with a sprinkle of rules. It was fine. Not great. Recruiters kept emailing me screenshots of obvious matches it missed. So this spring I sat down and rebuilt the whole thing.

"Matching is not search. Search rewards precision. Matching rewards being interestingly close."
  1. 01
    throw away the ranker
    kept the data, dropped the model. started from a blank ipynb.
  2. 02
    embed everything
    résumé + job text → small multilingual model, cached in pg_vector.
  3. 03
    re-rank with signals
    location, seniority, years-in-stack. boring features still win.
  4. 04
    shadow-run for 3 weeks
    a/b on recruiters' clicks. watched dashboards more than family.
results.diff — 11 weeks later
match-quality (recruiter 👍)41%→ 78%+37 pp
time-to-first-click9.2s→ 3.1s−6.1s
weekly placements12→ 28×2.3
latency (p95)640ms→ 180ms−72%
match-quality / weeks
w01w04w08w11
~/matchpro/bench.sh
bench --cohort=q1-recruiters
running 2,140 matches…
✓ v3 beats v2 on 78% of pairs
! 4 regressions — investigating
deploy prod
BYTES·41kbFIGURES·2FOOTNOTES·6● PUBLISHED
CH.05WRITING— journal · 014 issues
CH.06NOW— — what's on air this weekUPDATED · 3h AGO
▸ NOW PLAYING · WEEK 17

Shipping kind.events v2 — calendar view, email digests, and a cleaner map.

reading
A Philosophy of Software Design
by John Ousterhout · 2nd time
▸ p. 140 / 190
listening
Boards of Canada — on repeat
Music Has the Right to Children
02:14 / 06:18
thinking about
calendar UIs that don't
pretend a week has
8 symmetrical days 🗓
— this week · shipped / broken / learned
monshipped kind.events v2 beta to 80 userstuebroke the ICS export for 40 minutes (sorry, karolis)wedwrote notebook #14 · answered 23 emails·thulearned pg_timetz is a lie · slept on it!friwriting this now · planning to take saturday off
CH.07USES— — stack, tools, deskLAST AUDITED · APR '26
code/
typescript
the default
5.4
next.js
web framework
15
postgres
only database
16
rust
for the risky parts
1.78
tailwind
when lazy
4.x
tools/
neovim
editor · lua config
0.10
ghostty
terminal
1.0
linear
one project board
figma
design, reluctantly
raycast
launcher
1.x
desk/
macbook pro
work machine
m3 · 14”
hhkb pro
clicky keys
hybrid
moleskine
morning notes
pocket
kinto mug
daily driver
330ml
services/
fly.io
hosting
hobby
resend
email
stripe
money
cloudflare
cdn · dns
tailscale
private net
CH.08SIGNAL— — send a transmission● REPLYING · USUALLY <24h

Drop me a line — I read every one.

Best for work inquiries, kind.events partnerships, and folks curious about matchpro.io. Worst for cold sales.

▸ email
hi@evgentus.group
preferred
▸ telegram
@evgentus
fast
▸ github
github.com/evgentus
code
▸ mastodon
@evg@hachyderm.io
social
if it's 3am your time, i might be asleep. otherwise i'll reply within a day.
compose-transmission.form● READY
CH.09BEHIND THE TRANSMISSION— — how this site was madeCOLOPHON · 2 weeks · 1 cat
▸ CH.09 — COLOPHON

the site you're on was designed out loud — here's the transcript.

no framework templates, no Figma-to-code handoff. i sketched everything in the browser, talking to an AI collaborator like a junior designer across the desk. two weeks, ten channels, one ASCII cat that wouldn't sit still.

— timeline · 14 days of signal
d 01–02
tuning the dial
picked the voice (broadcast, warm, honest). chose 4 fonts. drew deploy. ditched 3 directions before locking 'Cozy CRT'.
d 03–06
channels live
hi-fi on every section: hero, about, work, case, writing, now, uses, signal, 404, footer. iterated in-browser, not in a mockup.
d 07–10
paper mode
light theme that isn't just 'dark theme inverted'. re-tuned amber, green, shadows, scanlines so it reads like sun-bleached paper.
d 11–14
handoff & polish
responsive specs, tokens locked, a11y audit, dev handoff notes. wrote this very page. deploy got a nap.
sitemap.map
▸ 10 routes · 3 primary entry-points
/ home · you are here
/about who & why
/work four channels, three live
/work/:slug case study
/writing the journal
/writing/:slug one post at a time
/now what's cooking this week
/uses the stack · right here ↓
/signal say hi
/* the lost channel
the tube, opened up
FRAMEWORK
next.js 15 · app router
RSC by default, static where it fits
STYLING
plain CSS · tokens.css
every value is a var. no Tailwind.
CONTENT
MDX · frontmatter
writes like a notebook, ships like a site
FONTS
Space Grotesk · Fraunces · JetBrains Mono · Caveat
display / serif italic / mono / hand
HOSTING
fly.io · edge · CDN images
fast enough that you don't notice
ANALYTICS
plausible · self-hosted
no cookies, no banner, no tracking
— five rules, taped to the monitor
RULE 01
one signal per screen
red is never decorative. if it's red, tap it.
RULE 02
warm, not cold
dark mode that smells like coffee, not a server rack.
RULE 03
type does the heavy lifting
four typefaces. one job each. no decoration.
RULE 04
motion carries meaning
blink = now. pulse = live. everything else sits still.
RULE 05
deploy everywhere
if a screen felt lonely, the cat moved in.
10
channels
4
breakpoints
47
design tokens
12
section files
1
cat
thinking about building your own weird corner of the internet?
i love talking shop. pick a channel.