Available now — taking on new work

Someone has to keep it running.

I'm Jelena, a freelance backend developer in Novi Sad. 20 years of PHP and MySQL: complete custom CRM systems, payment and accounting integrations, and the legacy systems other people are afraid to touch.

Clients · sales · invoicing · direct debit · reports
20 years
PHP & MySQL, still shipping
3,000+
Live subscriptions collected by direct debit
Direct
You talk to me, not a manager
Why me and not an AI?
  • promptsYou don't have to write the perfect prompt. Describe it the way you'd say it out loud to a colleague. I'll understand the first time — and ask where I don't.
  • toolsYou don't have to know the tools. Which library, which API, which server setting — that's my job, not homework for you.
  • thinkingSlower, maybe — but from every angle. I won't answer in three seconds. I'll look at it from every side, ask the awkward question, and we get there together.
  • peopleAt the end of it, there's a person. Someone who's glad it worked, stands behind it, and brings plain common sense to it.
Use the AI for the first draft, by all means — call me when it has to actually run.
The core of it

A complete CRM: clients, sales, invoicing, collection, reports.

Most businesses end up with a CRM here, a spreadsheet there, and an accountant asking why the two don't match. I build one system that carries a customer all the way through — and closes the loop back into the books.

01
Enquiry
Web forms, email and imports land in one inbox, assigned and never lost.
02
Client
Contacts, companies, documents and the full history of what was said.
03
Sale
Pipeline stages, quotes, orders — with your pricing rules, not generic ones.
04
Invoice
Proforma → on hold → issued, VAT applied once, PDF at every step.
05
Collection
Direct debit, card or transfer. Failures, retries and dunning are visible.
06
Reports
Revenue, ageing debt, commission — and a clean feed into accounting.
CLIENTS

Clients & contacts

One record per customer: people, addresses, notes, files, and every invoice and payment attached to it.

SALES

Sales pipeline

Enquiries through stages to won or lost, with owners, follow-up dates and nothing sitting untouched.

QUOTES

Quotes & orders

Line items, discounts, tax rules and versioning — a quote becomes an order becomes an invoice without retyping.

BILLING

Invoicing & PDF

Your document layout, your numbering, generated server-side. Recurring invoices run on a schedule.

PAYMENTS

Collection & direct debit

Mandates, subscriptions and one-off charges via GoCardless or Stripe, with webhook status written back automatically.

DEBT

Dunning & ageing

Who owes what and for how long, automatic reminders, and failed payments that surface instead of disappearing.

REPORTS

Reports & dashboards

Revenue by period, product or salesperson, commission calculations, and exports finance can actually use.

ACCESS

Users, roles & audit

Who can see what, who changed what and when. Sales sees their accounts; the office sees the money.

Whether it's a system from scratch or the missing half of the one you already have — enquiries in, money out, and reports that agree with the bank.

Talk about your CRM
What else I do

Three kinds of problem, and I've seen all of them before

Not websites in general. The part that has to work on a Monday morning when the invoices are due.

01

Custom systems & internal tools

Off-the-shelf software makes you work its way. I build the admin panel your business already runs on — and the parts of it nobody sells ready-made.

  • Enquiry & quote pipelines
  • Invoicing and PDF generation
  • Dashboards and commission reports
02

Integrations & payments

Two systems that need to agree with each other. Money collected has to match money recorded — built so failures are visible, not silent.

  • GoCardless, Stripe, PayPal
  • Xero — payments reconciled into the books
  • AutoTrader, DVLA, Mailchimp
  • Data imports that don't lose rows
03

Legacy rescue

Inherited a codebase nobody wants to open? I take it over, stabilise it, and keep it running while we improve it — no rewrite-from-scratch theatre.

  • Server migrations without downtime
  • Slow queries and broken deploys
  • Ongoing maintenance you can rely on
Stack
  • PHP 8
  • MySQL
  • Laravel
  • REST APIs
  • GoCardless
  • Stripe
  • Xero
  • mPDF
  • Linux / cron
  • Git
Selected work

Systems still in production

Not launches. Things I've kept alive for years.

evsuk.com
UK · maintained since 2019 · evsuk.com

A commercial vehicle sales platform, and mostly a place where other people's systems have to agree. Vehicle data comes from the DVLA, stock goes out to AutoTrader, customers go to Mailchimp, and invoices move proforma → on hold → issued with a PDF generated at every step. I built that workflow, the contact management and the 360° viewer — then moved the whole thing to a new server without losing a listing.

PHP · MySQL · DVLA · AutoTrader · Mailchimp · mPDF
3 external APIsone platform that has to reconcile them
Subscription CRM panel
Direct debit · GoCardless

An admin panel that pulls customers, bank mandates, and subscriptions straight from the GoCardless API, with cursor pagination and cached responses — so the office stopped logging into three places to answer one question.

PHP · GoCardless API · Xero · session caching
3,000+live subscriptions on one screen
Annual renewal engine
Insurance · batch processing

Once a year the whole book of policies has to be repriced against the rate tables that were in force, quoted as a PDF, and reissued. It runs in chunks so it fits in memory, applies tax exactly once, and reports the policies it could not price instead of stopping at the first one.

PHP · MySQL · mPDF · chunked batch processing
3,000+ PDFsgenerated in one run, every year
Limanius
Membership platform · limanius.rs

A paid library of professional handbooks. Registration with email verification, admin-approved accounts, three purchase tiers, and protected in-browser reading — watermarked, no downloads. The content is the product, so the access control had to be the real work.

PHP · MySQL · auth & roles · protected content delivery
32 titlesbehind one access layer
recent work shipped
  • paymentsBank mandates and subscriptions pulled live from GoCardless into one admin screen
  • renewals3,000+ policies repriced and quoted in a single batch run
  • accountingCollected payments reconciled into Xero, so the books match the bank
  • invoicingProforma → on hold → issued, with the PDF generated at each step
  • migrationA live platform moved to a new server — nothing lost, nobody noticed
  • vehiclesStock enriched from DVLA data and pushed to AutoTrader, automatically
Smaller jobs from the last few months. This is what the day-to-day actually looks like.
And when a client needs the whole thing, front to back:
For agencies & studios

The backend half of the work you already won

Most studios are built around design and frontend. Then a client asks for a payment integration, a members' area, or a system that has to talk to their accountant — and there's nobody to hand it to. That's the call I'd like to be on the other end of.

White label, if you want it

Your client never has to know I exist. Your process, your project manager, your invoice. I'm comfortable staying out of the room.

I invoice through my own company

Registered in Serbia, invoicing in GBP or EUR. NDAs and contractor agreements are routine, not an obstacle.

I'll work inside your codebase

Your repo, your conventions, your deployment. I don't arrive with opinions about your stack or a proposal to rewrite it.

Overflow or ongoing

One integration when you're stuck, or the backend you subcontract every time. Both work.

Currently taking on new work. If you have a project that stalled at the backend, tell me what it's supposed to do — start there.
How I work

Fewer surprises than you're used to

I read your code before I judge it

Most of what I do starts in someone else's codebase. I learn how it works before I change it, and I don't propose a rewrite to avoid understanding it.

Production stays clean

No debug output left in the wild, no commented-out experiments, no half-finished branches. What goes live is what I'd want to inherit.

You get one person

No account managers, no handoffs, no team you never meet. You explain the problem once, to the person who fixes it.

Central European time, UK hours

Based in Novi Sad, working mostly with UK and EU clients. Overlapping working day, replies within a day, usually sooner.

Local clients, in Serbian

Manje sajtove, prezentacije i webshopove za klijente iz Srbije radim direktno — pogledajte srpsku stranicu.

Let's talk

Something broken, or something to build?

Tell me what the system is supposed to do and what it's doing instead. I'll tell you honestly whether I'm the right person for it.

hello@jelena.dev