Everything below is also a shell. Type, press Tab to complete, ↑ for history.
guest@savenkov.site
Kyrylo Savenkov
full-stack developer based in Kyiv, Ukraine.
- backend PHP · Laravel · REST & JSON APIs · Queues · Redis
- frontend Vue.js · TypeScript · Inertia.js · Tailwind CSS · Vite
- data MySQL · PostgreSQL · Eloquent ORM
- tooling Docker · Git · CI/CD · PHPUnit · Pest
- workflow Cursor · Claude · Antigravity
guest@savenkov.site:~$ help
Available commands:
about who I am and how I work
stack languages, frameworks and tools
experience what I have been building
projects selected work
contact how to reach me
theme toggle light / dark
lang switch English / Українська
clear clear the screen
Résumé
About
- I am a full-stack web developer.
- I design and ship maintainable backends in PHP/Laravel and polished,
- reactive interfaces in Vue.js. I care about clean architecture, fast
- load times, and code that the next developer can read without a map.
Tech stack
- Backend : PHP · Laravel · REST & JSON APIs · queues · Redis
- Frontend : Vue.js · TypeScript · Inertia.js · Tailwind CSS · Vite
- Data : MySQL · PostgreSQL · Eloquent ORM
- Tooling : Docker · Git · CI/CD · PHPUnit · Pest
- Workflow : Cursor · Claude · Antigravity (AI-assisted development)
Experience
- Full-stack Developer — building production web applications.
- • Architected Laravel APIs and Vue.js SPAs / Inertia apps end to end.
- • Optimised database queries and caching for faster response times.
- • Shipped features with tests, code review and CI from day one.
Projects
- project-1/ — Laravel + Vue.js web application (placeholder).
- project-2/ — REST API with queues and Redis caching (placeholder).
- project-3/ — Inertia.js + Tailwind dashboard (placeholder).
- Replace these in src/i18n/content.ts — run 'contact' to reach me.
Contact
- Telegram : @Leoxpw — t.me/Leoxpw
- Phone : +380 63 308 98 81
- Email : savenkov.kyrylo@gmail.com
- Or hit the 'Work with me' button. I reply fast.
Most teams hand a feature from backend to frontend and lose something at the seam. I write both sides, so the seam is where I do my best work.
server routes/api.php
// routes/api.php
Route::get('/projects', function (Request $request) {
return ProjectResource::collection(
Project::query()
->with('client')
->when($request->search, fn ($q, $term) =>
$q->where('name', 'like', "%{$term}%"))
->latest()
->paginate(12)
);
}); GET /api/projects?search=… 200
{
"data": [
{ "id": 128, "name": "Kiln booking",
"client": "Studio Kiln", "status": "live" },
{ "id": 131, "name": "Relay API",
"client": "Relay", "status": "review" },
{ "id": 140, "name": "Atlas CRM",
"client": "Atlas", "status": "build" }
],
"meta": { "current_page": 1, "total": 3 }
} server
Drag the seam
Full-stack Developer — building production web applications.
- Architected Laravel APIs and Vue.js SPAs / Inertia apps end to end. both halves
- Optimised database queries and caching for faster response times. server
- Built reactive Vue.js interfaces with typed components and Inertia routing. client
- Shipped features with tests, code review and CI from day one. both halves
Case studies coming soon — ask me about them directly.
- project-1 Laravel + Vue.js web application.
- project-2 REST API with queues and Redis caching.
- project-3 Inertia.js + Tailwind dashboard.
Elsewhere