Product & Leadership
Owning the product lifecycle — roadmap, prioritisation and architecture — and leading internal and external teams to delivery.
AVAILABLE FOR WORK
HEAD OF DEVELOPMENT & PRODUCT OWNER
I lead the strategic and technical direction of a SaaS lead-generation platform, owning the product lifecycle end to end — from architecture to delivery.
[ PROFILE / 01 ]KOSOVO[ CORE VALUES ]
Four principles behind every platform I lead, from the first architecture decision to the release.
01 / 04UPTIME MINDSET
99.99%
Systems that run around the clock. I build infrastructure that simply stays up.
A decade across engineering, DevOps and product — building reliable systems and leading teams.
Owning the product lifecycle — roadmap, prioritisation and architecture — and leading internal and external teams to delivery.
Laravel, PHP and Python services with solid CI/CD, Docker and infrastructure that stays reliable under load.
Applying machine learning, RAG and automation to turn raw data into business intelligence and faster decisions.
[ OPEN SOURCE · v1.0.3 ]
An elegant, type-safe SDK for Hetzner Cloud: servers, DNS, networks, load balancers and every other resource the API exposes. Now with Laravel 13 and multiple projects.
$ composer require boci/hetzner-laraveluse Boci\HetznerLaravel\Facades\HetznerLaravel;
$response = HetznerLaravel::servers()->create([
'name' => 'my-server',
'server_type' => 'cpx22',
'image' => 'ubuntu-24.04',
'location' => 'nbg1',
]);
$server = $response->server();
echo $server->name(); // my-server
echo $server->status(); // initializinguse Boci\HetznerLaravel\Facades\HetznerLaravel;
// The default project, from HETZNER_TOKEN
$servers = HetznerLaravel::servers()->list();
// Another project from config/hetzner-laravel.php
$staging = HetznerLaravel::project('staging')->servers()->list();
// A token only known at runtime, e.g. one per team
$theirs = HetznerLaravel::withToken($team->hetzner_token)
->servers()
->list();use Boci\HetznerLaravel\Facades\HetznerLaravel;
HetznerLaravel::dnsZones()->create([
'name' => 'example.com',
'mode' => 'primary',
'ttl' => 3600,
]);
HetznerLaravel::dnsZones()->rrsets()->create('example.com', [
'name' => 'www',
'type' => 'A',
'ttl' => 3600,
'records' => [['value' => '192.168.1.1']],
]);use Boci\HetznerLaravel\Testing\ClientFake;
use Boci\HetznerLaravel\Responses\Servers\CreateResponse;
$client = new ClientFake([
CreateResponse::fake(['name' => 'test-server']),
]);
$response = $client->servers()->create(['name' => 'test-server']);
expect($response->server()->name())->toBe('test-server');
// No real server was created
$client->assertSent(Servers::class, fn ($method) => $method === 'create');3 ARTICLES

An elegant, type-safe Laravel SDK for Hetzner Cloud — servers, DNS, networks, load balancers and the rest of the API.
READ ARTICLE →
A market heading for trillions, and roughly a third of the programmes that chase it actually work. What separates the two.
READ ARTICLE →
The language behind WordPress and Magento is also the pragmatic choice for a business that needs to move now.
READ ARTICLE →