vladislav@rajtik: ~/about

vladislav@rajtik:~$ whoami

Vladislav Rajtmajer

Senior PHP / Laravel Engineer

Plzeň, Czech Republic · remote · contract (IČO)

available now for new contracts

vladislav@rajtik:~$ cat about.md

12+ years building web applications and backend systems. I work mostly in Laravel: REST and user-facing API design, PostgreSQL, and the boring reliability work that keeps APIs predictable.

Before the web I spent years in embedded and IoT: binary protocols between hardware and servers, telemetry data pipelines, even banknote-validator firmware in C on Atmel AVR. That low-level background still shapes how I design data interfaces.

# Open to long-term remote contracts on a modern PHP/Laravel stack.

vladislav@rajtik:~$ ls projects/

CaptchaAPI

privacy CAPTCHA · EU

Proof-of-work CAPTCHA, GDPR-first. No tracking, no Google. Ships with its own Laravel package and WordPress plugin.

Billify

invoicing API · CZ

Issue invoices over a clean REST API. Built for developers who'd rather call an endpoint than click through accounting software.

POE2 Toolkit

game tooling · OSS

Passive-tree & build-diff tooling for Path of Exile 2. GGPK parsing published as npm packages under @poe2-toolkit.

laravel-blog.cz

writing · CZ

A Czech-language blog where I write about Laravel and day-to-day backend engineering.

vladislav@rajtik:~$ cat packages.json --published

captchaapi/laravel Composer · Packagist
captchaapi WordPress.org · reviewed plugin
poe2-toolkit · @poe2-toolkit/ggpk npm · GitHub

ships across 3 ecosystems: Composer · WordPress.org · npm

vladislav@rajtik:~$ cat captchaapi/laravel src/Rules/ValidCaptcha.php

final class ValidCaptcha implements ValidationRule
{
    public function validate(string $attribute, mixed $value, Closure $fail): void
    {
        // Fortify runs the validator twice in one request. The response is
        // single-use server-side, so the second verify would reject a visitor
        // who already passed. Memoize a success per request, short-circuit it.
        if ($this->isMemoized($memoKey)) {
            return;
        }

        try {
            $response = Http::asJson()->withToken($secret)
                ->timeout(Captchaapi::verifyTimeout())
                ->post(Captchaapi::verifyUrl(), ['response' => $value]);
        } catch (ConnectionException) {
            $this->whenUnavailable($fail);   // outage -> fail policy, no retry
            return;
        }

        if ($response->serverError()) {      // a 5xx is our fault, not the user's
            $this->whenUnavailable($fail);
            return;
        }

        $response->json('success') === true
            ? $this->memoize($memoKey)
            : $fail($this->rejectionMessage());
    }
}

Excerpt from captchaapi/laravel, my open-source Laravel SDK (Composer · MIT). The small, unglamorous edge cases - handled, and documented for whoever reads it next.

vladislav@rajtik:~$ git log --oneline --career

2022 - now PHP Developer · Freelance (OSVČ) Web apps, REST + user-facing APIs, Livewire, Vue.js, PostgreSQL.
2021 - 2022 PHP Developer · UBK s.r.o. Laravel development across multiple client products.
2018 - 2021 Developer · Freelance CMS for an international company. SCRUM, English-only daily comms. PHP 8, Nette, MariaDB.
2016 - 2018 Developer · MySolutions s.r.o. Dating platforms across 12 countries. SCRUM, English-only standups. PHP, Nette, MySQL.
earlier Embedded, IoT & systems engineering Firmware in C (AVR/PIC), telemetry APIs, Linux/Windows servers; Delphi/FoxPro business apps.

vladislav@rajtik:~$ cat stack.txt

PHPLaravelREST API designPostgreSQLPest / PHPUnitLivewireVue.jsNetteElasticSearchIoT / LoRaWANembedded CLinux

English: working proficiency, years of English-only daily standups. Czech: native.

vladislav@rajtik:~$ contact --now

vladislav@rajtik:~$ cv --download

vladislav@rajtik:~$