val vahidgarousi = developer {
about {
name = "Vahid Garousi"
role = "Senior Android Engineer"
company = "Negah Bank"
experience = 8.years
domains = listOf("Banking", "Fintech", "Travel")
}
stack {
languages = listOf("Kotlin", "Java")
android = listOf("Jetpack Compose", "Coroutines", "Flow", "Multi-module")
architecture = listOf("Clean Architecture", "MVVM", "MVI", "TDD")
realtime = listOf("WebSockets", "Lightstreamer", "gRPC")
tooling = listOf("Gradle Convention Plugins", "GitHub Actions", "Internal CLI tooling")
}
links {
website = "https://vahidgarousi.ir"
linkedin = "https://linkedin.com/in/vahidgarousi"
medium = "https://vahidgarousi.medium.com"
telegram = "https://t.me/GarousiVahid"
twitter = "@vahidgarousi_"
}
}This repository also hosts my personal site — portfolio, writing and resume.
Built with Next.js as a static export, so it deploys to GitHub Pages today and moves to any host without a rewrite.
Requires Node 22+.
npm install
npm run sync # optional: pulls Medium, Telegram and GitHub data
npm run dev # http://localhost:3000npm run sync reaches out to Medium, Telegram and the GitHub API. Skip it and
the site still runs — those sections are just hidden. Run npm run sync:ensure
instead to create empty placeholders without any network access.
Other commands:
npm run build # static export into ./out
npm run typecheck # tsc --noEmit
npx serve out # preview the production build- All personal content →
content/:site.config.tsfor identity, links and service keys;data/for experience and skills; MDX for projects and blog posts. - Setup, DNS and deployment →
DEPLOYMENT.md - Design tokens →
src/styles/globals.css



