[[project]]
name = "rakentaja.fi"
role = "Technical Lead"
stack = ["Wagtail", "Django", "Next.js", "AWS", "Kubernetes"]
scope = "7+ sivuston Wagtail/Django-tuoteperhe; monoliitti → pilviarkkitehtuuri"
url = "https://rakentaja.fi"[identity]
name = "Risto Holappa"
role = "Senior Full-Stack Engineer / Architect"
location = "Oulu, FI"
status = "open to engagements"
contact = "risto@willit.fi"
[stack]
primary = ["Rails 8", "Next.js", "Python", "Wagtail/Django"]
ops = ["AWS", "Kubernetes", "Terraform", "GitHub Actions"]
ai = ["Claude Code", "evals", "guardrails"]
[receipts]
years_in_prod = 10
peak_users = "2.0M" # banking chat via Pepron
sites_modernized = 7 # Rakentaja.fi family
companies = ["Willit Oy", "Viher IT Oy"] $ stat reipas.io → page: 3 KB · js: 0 KB · built: 6efbac3 · 2026-05-15T06:24:52Z
## portfolio
[[project]]
name = "willit.fi"
role = "Founder / Sole Engineer"
stack = ["Rails 8", "Hotwire", "PostgreSQL"]
scope = "Paikallisten elintarvikkeiden markkinapaikka; speksistä tuotantoon"
url = "https://willit.fi"[[project]]
name = "lykky.co"
role = "Maintainer"
stack = ["open source", "GTM", "founders"]
scope = "Avoin GTM-playbook Oulusta startanneille founderille"
url = "https://www.lykky.co"[[project]]
name = "skoutti.com"
role = "Co-builder"
stack = ["Next.js", "AI", "B2B"]
scope = "Automaattiset B2B-liidiraportit tekoälyllä"
url = "https://skoutti.com"[[project]]
name = "viher-it.com"
role = "Founder"
stack = ["consulting", "architecture", "senior engineering"]
scope = "Toimeksiantojen operointiyhtiö; senior full-stack -konsultointi"
url = "https://viher-it.com"[[project]]
name = "sinun.ai"
role = "Founder"
stack = ["local LLMs", "open models", "privacy-first"]
scope = "Paikallisesti pyörivä henkilökohtainen tekoälyassistentti; data omalla koneella"
url = "https://sinun.ai"## tietoa
Asun Oulussa. Pyöritän kahta yhtiötä — Willit Oy (oma tuote) ja Viher IT Oy (toimeksiannot). Työtapa: speksi ennen koodia, tuotantokestävyys ennen lisäominaisuuksia, AI-avusteinen kehitys arviointiharnesseilla ja turvareunaehdoilla.
Kun en koodaa, olen luonnossa tai poikieni kanssa → henkilökohtainen