Join our team and build your career with us
Dwelleo is building an intelligent real-estate marketplace: listings and search at the core, with a layer of AI on top — LLM-driven sales agents that qualify and call leads, financing intelligence on the mortgage calculator, and market-insight models for price prediction and investment scoring. You’ll work across the whole stack, from the Next.js front end through our PHP/Laravel services, plus a standalone NestJS application, backed by a containerized, queue-driven infrastructure.
This is a hands-on senior role. You’ll own features end to end, make architectural calls, and set the quality bar for engineers around you. Because we operate in the Gulf, correctness around regulatory and data-protection boundaries (PDPL, SAMA lending rules) is a first-class engineering concern, not an afterthought.
About our stack
The core platform is built on PHP/Laravel in a microservices setup, with a Next.js/React front end (bilingual Arabic/English, full RTL support). Alongside it we run a smaller standalone full-stack application built on NestJS with server-side Handlebars templating. Data lives across MySQL and PostgreSQL, with Redis for caching and RabbitMQ for queue and async job management. Services run in Docker containers deployed through CI/CD pipelines. AI capabilities are delivered through OpenAI/LLM integrations and a Retell-based outbound calling agent, with Odoo and BITEP as our CRM/lead systems.
Responsibilities
Full-stack feature delivery
Design, build, and ship features across the stack — Next.js front end, PHP/Laravel services, and a standalone NestJS/Handlebars application — owning them from spec to production.
Translate product and business requirements (user stories, acceptance criteria) into well-architected, testable implementations.
Build responsive, accessible, bilingual (English/Arabic) interfaces with correct RTL behavior.
Backend & services architecture
Develop and maintain PHP/Laravel services in a microservices architecture, including proxy/trust-boundary layers that handle auth, caching, and data-protection filtering before persistence.
Build and maintain a standalone NestJS full-stack application with server-rendered Handlebars views.
Build stateless, idempotent services with clean separation between pure business/domain logic and framework/I-O layers.
Design and operate asynchronous, event-driven workflows using RabbitMQ — producers, consumers, retries, dead-letter handling, and idempotent processing.
Design robust API contracts, consistent response envelopes, and graceful degradation so intelligence features never block core listing CRUD or page render.
Data layer
Model, query, and optimize relational schemas across MySQL and PostgreSQL; manage migrations, indexing, and query performance.
Use Redis effectively for caching, rate limiting, and hot-path performance.
Handle effective-dated, versioned configuration rather than hardcoded constants.
Infrastructure, DevOps & reliability
Containerize services with Docker and maintain reproducible local and deployed environments.
Build and maintain CI/CD pipelines (build, lint, test, deploy) with fast, reliable feedback.
Own production observability — structured logging with request/lead/call correlation, metrics, alerting — and graceful fallback paths.
AI / Intelligence integration
Integrate LLM capabilities (OpenAI/ChatGPT API) and third-party AI services (e.g. Retell voice agents) behind provider-agnostic interfaces so vendors can be swapped via config.
Build the reliability guards that make automated loops safe in production: concurrency control, retries, idempotency, webhook verification, kill switches, and observability.
Integrations & compliance
Integrate with CRM and lead systems (Odoo) and outbound calling providers (Voiso, Retell).
Enforce data-protection boundaries (PDPL): keep sensitive fields (income, national ID, DOB, exact obligations) transient, persist only derived bands/brackets, and stamp consent/filter versions on persisted artifacts.
Implement domain logic that respects regulatory rules (e.g. SAMA DBR/LTV caps) and market conventions (Sharia-compliant “profit rate” framing over “interest”).
Quality & collaboration
Write meaningful tests (unit, contract, edge-case) and hold a high bar on core logic and code quality.
Review PRs against architectural contracts and mentor mid-level engineers.
Work closely with the Architect, product, and other engineers; contribute to technical specs and sequencing, break large initiatives into parallelizable workstreams, and communicate trade-offs clearly.
Required qualifications
5+ years of professional full-stack engineering experience, with production ownership of non-trivial systems.
Strong PHP experience (Laravel) building production APIs and services.
Node.js experience, ideally with NestJS, including server-side rendering with a templating engine such as Handlebars.
Strong JavaScript/TypeScript with Next.js and React for production front ends.
Solid server-side / DevOps fundamentals: Docker and CI/CD pipelines.
Strong relational database skills across MySQL and PostgreSQL — schema design, migrations, and query optimization.
Hands-on experience with Redis for caching and RabbitMQ (or a comparable message broker) for queue/async processing.
Experience designing and consuming REST APIs, webhooks, and third-party integrations.
A rigorous approach to testing, code quality, and production debugging.
Nice to have
Experience integrating LLMs / the OpenAI API into production products.
Experience with voice/telephony or conversational AI providers (e.g. Retell, Vapi, Twilio).
Experience with cloud platforms (AWS/GCP/Azure) and container orchestration (Kubernetes).
Experience building bilingual/RTL (Arabic) interfaces or i18n at scale.
Exposure to regulated domains — fintech, lending, real estate — and data-protection regimes (PDPL/GDPR).
Familiarity with CRM/ERP integrations (Odoo) and lead pipelines.
Prior experience in proptech, marketplaces, or the MENA/Gulf market.
What we look for
Someone who takes ownership end to end, cares about correctness where it matters (money, compliance, user data), writes code others can build on, and moves pragmatically without cutting the corners that bite later.