I build payment, invoicing and integration infrastructure.
Backend developer since 2019. My work sits where money and data have to
move between systems without error: payment gateways and card flows,
government e-invoicing (UBL-TR), marketplace integrations and
the ERP / accounting systems built on top of them.
Open to new roles
Istanbul · Remote / Hybrid / On-site
Turkish + Bulgarian (EU) dual citizenship
iyzico, PayTR, Moka United. 3-D Secure flows, webhooks, authorisation reversal, card vaulting and recurring billing. Switching provider is a single setting.
Government e-Invoicing
UBL-TR 1.2 XML generation, SOAP submission, taxpayer lookup against the Turkish revenue administration, duplicate-UUID protection and polling-based status tracking.
Marketplaces & Logistics
Trendyol, Hepsiburada, Sahibinden and Teknosa integrations; carrier SOAP integration, barcoded label generation and delivery-status tracking.
142 migrations76 models58 controllers40 service classes14 scheduled jobs90+ React screens
Architecture and infrastructure
Headless architecture separating a Laravel 12 REST API from a React 19 SPA; token-based authentication with Laravel Sanctum.
Payment, e-invoicing, shipping, SMS and identity services all abstracted behind an interface + driver + manager pattern; swapping a provider is a single setting.
Integration credentials are loaded from the database into Laravel's config at runtime: switching between test and production without touching .env in production, with secrets stored encrypted and returned masked through the API.
Role and permission system on Spatie/Laravel-Permission; authorisation middleware at route level, permission-aware menus and route guards in the UI.
A server-side table standard (trait + shared React component) giving every table identical sorting, filtering, search, pagination and Excel export behaviour.
Payments and card acquiring
iyzico, PayTR and Moka United drivers built on a common PaymentGateway interface, with a resolver selecting the primary provider chosen in the admin panel.
Redirect-based 3-D Secure flow, per-provider callback/webhook endpoints and authorisation state transitions.
Raw card forms removed in favour of a hosted/redirect flow, eliminating PCI scope risk.
A dedicated refund service for authorisation reversal and partial/full refunds; card vaulting with recurring billing.
e-Invoicing (eLogo private integrator)
Integration written from scratch that generates UBL-TR 1.2 XML in-app (zip + MD5 packaging) and submits it to the eLogo PostboxService over SOAP.
The service offers no webhooks, so status tracking was solved with polling: submission every 5 minutes, status sync every 15 minutes, inbound invoice fetch hourly.
Automatic e-Invoice / e-Archive routing based on a taxpayer lookup against the revenue administration; delivery method, carrier and payment-method codes filled in line with regulation.
Idempotent submission through duplicate-UUID (ETTN) protection; invoice creation wrapped fault-tolerantly so it can never break the payment flow.
Accounting module: outbound/inbound invoices, orders awaiting invoicing, error detail, manual invoicing with preview, plus a diagnostic command for the production environment.
Logistics integration (Yurtiçi Kargo — KOPS SOAP)
SOAP integration for shipment creation, tracking and cancellation with separate test/production WSDL endpoints.
A4 shipping label PDF generation with an embedded Code128 barcode (barcode generator + dompdf).
Solved the carrier's refusal to reuse a cancelled shipment key by generating attempt-counted keys and retaining every attempt in history.
A pre-validation layer for records the carrier rejects (name, address, 10-digit phone normalisation, city/district) and meaningful error messages derived from the service response.
A delivery-status poller advancing the order through its shipping stages automatically via cron.
Order lifecycle, subscriptions and billing
A flexible order state machine built by moving the parent/child status hierarchy into FK lookup tables; every transition is written to an audit table with the acting user.
A subscription module with dynamic periods and a monthly automatic billing cron; double charging permanently prevented by a uniqueness constraint at database level.
A dunning flow (SMS reminders) for failed payments, an upcoming-payments calendar for customers and a payment schedule report for staff.
An early-return penalty engine (cap amount, gross/net penalty, post-payment verification) and an extension request/approval process.
Returns vertical: order-independent return screen, return shipping code generation, authorisation reversal and real refunds through the payment gateway.
Identity verification, KYC and data protection
Real national ID verification through the civil registry SOAP service (NVİ / KPS), with a safe fallback that routes failures to manual review.
A manual credit assessment workflow (Findeks): work queue, score + note + decision in a single action, decision history and actor logging.
Encryption + blind index + masking for national ID numbers, duplicate-record detection and documents served from private storage through signed URLs.
Google social login (Socialite), profile-completion onboarding, OTP over SMS/e-mail and a two-step password reset flow.
Procurement, ledgers, buy box and inventory
A current-account module in which every movement is written through a single ledger service running under a row lock (lockForUpdate).
Automatic IMEI-level device creation from purchase invoices: one transaction, bulk import that reports conflicts instead of throwing, and reversing ledger entries on cancellation.
A multi-supplier buy box offer pool (cheapest → fastest delivery → newest) and a virtual stock engine computed as "own stock + buy box − open positions".
A matcher that turns inbound e-invoices into purchase records by mapping tax number to account, IMEI in the description to device and product name to variant.
React 19 + TypeScript front end with Zustand stores, Axios interceptors, centralised error handling and a React Query server-state pattern; route-level code splitting cut initial load time.
A server-searched, infinite-scroll select component, an image component with retry/cache-busting and a skeleton-based loading standard.
A legal-text CMS, contract acceptance and e-mailing of the signed contract PDF to the customer; blog, FAQ, corporate enquiry and support ticket modules.
Dynamic sitemap.xml, robots.txt, per-page meta management and GA4 measurement wired to cookie consent.
Security hardening (security headers, CORS, correct client IP via trusted proxies, rate limiting), error tracking with Sentry and a fix to test isolation.
Automated deployment on Plesk with a bare repo + post-receive hook (composer install, migrations, cache); Let's Encrypt SSL and a cron inventory.
A deals marketplace where sellers run their own stores and several
sellers can list the same product. Storefront, seller panel and admin
panel are three separate React applications on a single Laravel API.
Orders are split into per-seller packages (Order → OrderSeller → OrderItem); each package has its own shipping, status and payout track.
Buy box: offers sharing a barcode are grouped onto one product card, and the winning offer is chosen by a score computed from price, seller rating and delivery time.
Losing offers are removed from listings and shown as "other sellers" on the product page, with the canonical URL pointing at the winner.
The commission rate is snapshotted at order time — changing it later cannot corrupt historical payouts.
Seller payouts are managed in a separate module that releases funds once the hold period expires.
Payments, stock and integrations
A shared interface over iyzico, Moka United and PayTR; 3-D Secure redirection and per-provider callback endpoints.
Stock is not deducted before payment: no reservation is made when an order opens (abandoned carts were locking popular products), but availability is re-verified immediately before hitting the gateway — so a customer is never charged for something out of stock.
An interrupted payment does not lose the order; the customer can return to the same order from their order list and complete payment.
Carrier, SMS and e-invoicing integrations with API keys entered from the admin panel, stored encrypted and layered onto the config at runtime.
Reporting, SEO and infrastructure
Revenue, rhythm, settlement, customer and fulfilment reports; revenue counts only paid, non-cancelled orders (cancellations were previously inflating it and were separated into their own scope).
Empty days inside a date range are zero-filled, so charts cannot hide no-sale days and imply a trend that is not there.
Server-generated per-page meta text, Product / FAQPage / BreadcrumbList schemas, dynamic sitemap and robots.
Version-keyed caching on Redis, a queue worker under Supervisor, automated deployment on Plesk and Let's Encrypt SSL.
Delta Servis
2022 — 2026 · Istanbul
Backend Developer
Delta Servis ERP Pure PHP · MySQL
An in-house ERP where the entire operational flow — from device and
parts procurement through sales to returns — was planned and coded.
Details
Built the control and management processes for marketplace sales.
Connected to invoicing systems (İşNet – QNB) so marketplace invoices are issued automatically.
Reworked the cron and queue systems; long-running jobs moved onto queues, removing operational downtime.
Optimised heavy SQL queries; handled relational database design and table planning.
Built statistical reporting pages for sales, accounting and employee performance.
Delta Entegra — Marketplace Integration Service Laravel · Redis · REST API
An integration layer managing order, stock and approval flows for five
marketplaces from a single service.
HepsiburadaTrendyolSahibindenAlışgidişTeknosa
Details
All five marketplace services written from scratch.
Cron endpoints pulling new orders, auto-approving them where permitted, checking cancellations and pushing current stock to every marketplace.
Authorisation with Sanctum and Spatie/Laravel-Permission, plus a dedicated permission layer for the ERP.
Set up Redis and a project-specific Redis database separation.
Permission-aware statistics pages broken down by day/month/year, per marketplace or across all sales.
Designed a separate database for integration data so that only the necessary records reach the ERP.
Delta Pay — Multi-Gateway Payment Broker Laravel
A broker platform that accepts payment from any originating platform,
records it against the user and routes it to the most suitable
gateway.
Details
Routes each transaction to the most suitable gateway based on the incoming user data and instalment option, once the request passes authentication.
After 3-D Secure, the result is returned to a feedback URL with a unique key; platforms can query the current payment status through that key.
Delta Finance — Accounting and Finance Management Laravel
The finance platform tracking all of the company's accounting
processes, with bank movements integrated through Finekra.
Details
Incoming payments are grouped automatically into categories such as card payments, standing orders, device payments, procurement, debt collection and cheques/notes.
Manual and off-record transaction modules plus a current-account module covering cheques/notes, cards, bank accounts and both integrated and non-integrated accounts.
Incoming and outgoing payments from every project are checked by cron and posted to the ledger as debit/credit through a unique key; every movement, negative balances included, is traceable line by line with a timestamp.
Delta İota — Central Monitoring and Reporting Laravel
A central monitoring platform integrated with every project while
keeping its own authorisation and user system.
Details
Card transactions and successful/failed payments made traceable from a single screen.
Sales statistics, sellable/sold device counts and reports segmented by brand, model, colour and capacity.
Delta CDN — Internal Media Service Laravel
A company-specific CDN storing photos and videos coming from the ERP,
served according to the authorisation system.
Zanga Media
2019 — 2022 · Istanbul
Web Developer / Digital Marketing
SMS Panel Pure PHP · MySQL
A system sending scheduled SMS — under a national telecoms
authority licence — to hearing-aid users due for repair,
maintenance or device renewal.
Details
A complete tracking system covering the current-account module, device records and purchases of registered devices.
Websites and E-Commerce Development OpenCart · WordPress · Pure PHP
Dozens of custom PHP websites built to client requirements — some
e-commerce platforms with marketplace connections, others corporate
sites still live today.
Digital Advertising Google Ads · Facebook Business
Planning and running campaigns and handling their technical
integration with the existing websites.