Opens in a new tab

Aleksandar GavrilovićFull-stack PHP developerBelgrade

Portfolio.

Websites, online stores and applications.

Freelance · Remote · on-site in Belgrade

aleksandar@thinkpad: ~

aleksandar@thinkpad:~$

Click the terminal and type help or skills

Services

Web Applications

Admin panels, client portals, custom CMS platforms and internal tools. Tasks, statuses and access permissions built around how the team actually works.

Online Stores

Online stores with payments, bookings and custom pricing rules. Product and order management, with alerts when something gets stuck.

Websites

Business and multilingual websites, landing pages and catalogues. Custom design, forms and content editing, without wrestling with the admin panel.

Integrations

ESB/HPMS, Oracle, REST/SOAP/API, CRM, Payments, Email, GTM, PHPMailer, Tyche AC, Web Speech, CSV/XLS, WP-Cron, Scheduler, Redis/Horizon.

AI

AI assistants, content generation, translations and enquiry processing. Connecting AI tools to the content and data you already use.

Speed & SEO

Caching, CDN, image optimisation and technical SEO. Finding what slows the site down and fixing the cause, not just chasing a better test score.

Security

Login protection, data validation and access control. Rate limiting, CSRF protection and OWASP-based checks where an oversight can be costly.

Care & fixes

Updates, PHP upgrades, migrations and backups. Fixing bugs and taking over projects that were left at “just one more thing”.

~/ai

AI for every kind of business.

A few examples of what I can connect to your website.

Companies

Search and answers across your internal documents and knowledge base.

Online stores

Product descriptions, translations and recommendations generated from your catalogue.

Services & agencies

Incoming enquiries sorted, summarised and sent to the right person.

Tourism & hospitality

An assistant that answers guests around the clock and leads them to a booking.

Real estate

Listing descriptions and a first check of which enquiries are serious.

Education

Course assistants and automatic quizzes for checking knowledge.

~/work

Work

Part of what I’ve worked on. The rest, in person.

Featured

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.

  • PHP
  • REST
  • SOAP
  • CRM
  • Cron

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

Some of My Work

In the workshop

  • Firma Finder · in progress
  • Client Portal · GitHub
  • WordPress functions · GitHub

Details in person. Get in touch.

Aleksandar Gavrilović
Aleksandar Gavrilović

~/about

A little about me. I'll try to keep it short. :)

I'm Aleksandar, a full-stack PHP developer. I've been building websites, online stores and web applications since 2017. I also build CMS platforms, admin panels and internal portals that help teams manage content, track tasks and organise their day-to-day work. I work on both the backend and frontend, so I'm comfortable with what it takes to get a project up and running. 

I've worked on a range of projects, including the A1 Srbija e-commerce website through MassVision. I'm skilled with AI tools and use them to explore ideas, develop features, refactor code and track down bugs.

I'm straightforward to work with. I ask when something isn't clear, suggest improvements when I see room for them, and say so when we're making things more complicated than they need to be.

How I work

  • Before we start, we agree on what we're building, what it will cost and when it will be ready.
  • Throughout development, you can follow the progress and try things out.
  • After launch, I'm available for support, updates and further development.

~/process

How a project runs

Four steps, no surprises.

  1. Conversation

    A short call or message: what you need, the deadline and the budget.

  2. Proposal and price

    Written scope, timeline and price before any work starts.

  3. Build on staging

    You follow progress on a staging link before anything goes live.

  4. Launch and care

    Going live, a short handover and, if you want, monthly care.

~/contact

Tell me what you need.

Describe the project in a few sentences. You get a confirmation right away and my answer by email.

The core reacts while you type and sends a pulse when the message is received.

Privacy