Six projects, from large systems to my own. Clients and details stay confidential.
3+
sales sites fed from one product database
Catalogue and online sales for a large system
Large company · team project
ChallengeProducts with package prices, promotions, stock and pre-orders, and the same product sold on several sites from one central database.
SolutionAn admin module for the whole catalogue with import and export, listing and product pages with filters that remember their state, package and instalment selection, comparison and PDF export, plus product feeds for Google and Facebook.
ResultOne database feeds 3+ sales sites, and a product shows as available if any of them has it.
- PHP
- Custom MVC
- Enterprise database
- JavaScript
100k+
enquiries checked and sent to the CRM
Forms, availability checks and CRM
Large company · team project
ChallengeEnquiries from home and business customers had to be validated on the server and checked against an external, nationwide address database before reaching the CRM.
SolutionForms with validation (tax ID, phone number), captcha and token checks, an availability check through the integration layer, and a scheduled job that rechecks enquiries not checked for two weeks, in batches of 500, and updates the CRM.
ResultHundreds of thousands of enquiries came in through these forms.
134k+
companies from a public registry, with a CRM layer
Firma Finder
Personal project · Laravel
ChallengeSyncing 134,000+ companies from an open-data API, qualifying them in a CRM layer and checking their websites in the background.
SolutionLaravel 13 and PHP 8.5 in Docker, Redis queues with Horizon that retry only connection failures, layered timeouts, and a collation chosen by measuring search in Latin and Cyrillic on real data.
Result79 automated tests on a dedicated test database, with a guard that stops the suite before it can touch any other database. Decisions recorded as ADRs.
- Laravel
- MySQL
- Redis
- Horizon
- Docker
10 min
lockout after 5 wrong PIN attempts
Accounts and security
Large company · team project
ChallengeProtected pages and customer accounts with no weak spot in sign-in, activation or password reset.
SolutionPIN sign-in with email verification, brute-force protection, rate limiting by IP and captcha. The password is saved only after activation is confirmed, with password history.
ResultSign-in, activation and password reset all follow the same security rules.
- PHP
- SOAP
- PHPMailer
- reCAPTCHA
4×+
more orders than the year before
Online bookings and payments
Small business · online store
ChallengeA site taken over from another developer, on an unsupported theme that broke after updates, with no proper booking and payment flow.
SolutionPer-person pricing that updates instantly, a simpler checkout, card payments and an automatic alert when an order gets stuck.
ResultOrders went from 20–100 to 400+ a year later.
- WooCommerce
- PHP
- AJAX
- WP-Cron
10+
new sites from one collaboration
Long-term work with an agency
Agency · WordPress
ChallengeAn existing agency site taken over to keep developing as new needs came up.
SolutionA testimonials plugin (custom post type, taxonomy, meta box, nonce and capability checks), a table of contents (H2–H5), horizontal service scrolling, a scroll text reveal and a canvas hero, built into Bricks with ARIA, keyboard support and reduced motion.
ResultThe collaboration grew from one site to 10+ more.
- WordPress
- Bricks
- Custom plugins
- Accessibility