Tüm pozisyonlar
KARİYER

Backend Developer (Laravel)

  • Fully remote (Türkiye)
  • Full-time
  • Early career · 0–3 years

About Ulvi

Ulvi is a character-based AI app that people talk to every day. Every character has a voice, an environment, and a capability of their own: one reads dreams, one pulls tarot, one runs breathing sessions, one helps you sort a messy decision, and new characters bring new capabilities. We launched in August 2026 and we are building for a global audience, with Türkiye and Brazil as our first focus markets. The team is small, so what you ship goes live quickly and you get to watch people actually use it.

About the role

You will own the services behind Ulvi: identity, billing, tokens, the store, the conversation API. Real users, real money moving through it, from your first month.

Three things are true about this backend, and we would rather you heard them here than in production. Work does not finish inside the request that started it; it goes into a queue and happens later. Events arrive more than once, and that is ordinary traffic rather than an edge case. And when something goes wrong on the billing side, the cost is somebody's actual money.

What you will do

  • Build and maintain Laravel services that the app and the website both depend on.
  • Design REST APIs that are straightforward to consume, and write the contract down before anyone has to ask for it.
  • Work on billing, subscriptions and the token wallet: the payment provider on one side, our own ledger on the other. Balances are never overwritten here; every movement is recorded with the balance before and after it.
  • Handle messages the way they actually move: the send endpoint answers “queued”, the reply arrives seconds later over a WebSocket, and everything between the two is an event.
  • Take incoming webhooks seriously: signature, timing window, events that arrive out of order, and the same event arriving twice.
  • Follow your own code in production and close the issues it raises.

The ground you will be standing on

This is not a list of things you must already have done. It is the shape of the system you would be joining, written out so you can tell whether it sounds like a year you want.

Queues and background jobs (Redis, Horizon) · retries, backoff and idempotency · webhooks and signature verification (Stripe) · real-time events (Reverb) · transactions, row locks and race conditions · ledger-style accounting behind the token wallet · subscription and payment flows (Cashier) · OpenAPI and API versioning · token auth, 2FA and social login (Sanctum) · rate limiting · caching, and clearing it at the right moment · PostgreSQL, N+1 and cursor pagination · three languages and four markets, which reach every layer · tests (Pest) and CI checks · Sentry.

You will not arrive knowing all of that, and nobody joining at this level does. Roughly half of it is what the job teaches you. What matters is that the list reads as interesting rather than intimidating.

What we need

  • Laravel. This one is not negotiable; it is the stack, and you will be in it daily. A personal project counts.
  • PHP you are comfortable in, and SQL you can work in confidently.
  • Version control. Git is how the team works; branches, pull requests and review are daily habits, not occasional ones.
  • Software fundamentals. Data structures, error handling, and code someone else can read six months later.
  • How the web actually works. TCP/IP, HTTP, status codes, headers, caching. Not trivia: you will debug all of it.
  • The habit of writing tests. We are not asking for a testing specialist, only for someone who already writes them unprompted. Nothing ships here until tests and the API contract check have passed.
  • Written English. The team talks in Turkish; documents, API contracts and technical threads are in English. Fluent speech is not the requirement, clear writing is.
  • The reflex to ask “what happens if this runs twice?” Of everything on this page, this is the one we cannot teach quickly.

Nice, not required

  • Docker.
  • Payment integrations.
  • A repository you would be willing to walk us through.
  • Experience with systems where events arrived out of order.

How we work

  • Fully remote, from anywhere in Türkiye.
  • Full-time. Working hours are 10:00–18:00 (TR).
  • Turkish and English day to day.
  • Written-first: short status notes, decisions in documents, few meetings.
  • Bring your own device: we do not provide hardware.
  • Communication runs on Discord.

How hiring works

  • We care about what you can do more than where you learned it. Nobody here will ask which university you went to, or whether you went at all.
  • We read everything that comes in and shortlist from CVs and portfolios.
  • We share the salary range, based on your CV and experience, before the first interview.
  • If we shortlist you, we reach out with a small task. It is short, it looks like the actual work of the role, and it is different for each role.
  • Depending on the task, we will ask you either to send it in ahead or to present it in the interview. If your portfolio already covers the same ground, that can count too.

Nasıl başvurulur

Başvurunu hello@ulvi.ai adresine gönder ve şunları ekle:

  • Your CV
  • A cover letter
Başvur
Backend Developer (Laravel) · Ulvi