The product
IraniLink is a community platform for the Iranian diaspora. It brings businesses, events, classifieds, practical guides and direct messaging into one bilingual experience. Farsi is the product baseline rather than a translation added at the end, so right-to-left behaviour, content operations and cultural context influence the architecture from the outset.
The platform is designed as a shared foundation for multiple markets. Country, language, taxonomy, content and discovery rules are treated as product configuration instead of being scattered through the interface.
My role
As Head of Engineering, I work across technical direction and hands-on delivery. The work is less about owning every line of code and more about ensuring that the system makes sense as a whole: product boundaries are explicit, platform choices match the team’s constraints and engineering decisions stay connected to user value.
That responsibility spans four connected surfaces:
- A Next.js and Supabase web platform covering public discovery, authenticated workflows and administration.
- Shared Kotlin Multiplatform domain and data logic, with Compose on Android and SwiftUI on iOS.
- Cloudflare-fronted delivery and supporting operational services.
- Agent-assisted discovery, enrichment, translation and quality workflows with people retained in the decision loop.
Architecture with a product reason
The web architecture follows clear data and service boundaries around a PostgreSQL source of truth. The mobile architecture deliberately shares business logic without forcing a shared user interface: Kotlin contracts, repositories and use cases sit beneath platform-owned navigation and presentation. That keeps Android and iOS native while reducing duplicated domain work.
The same principle applies to AI. I direct a system of specialised agents that supports repeatable discovery and content operations rather than replacing product judgement. Review queues, explicit states and audit trails keep consequential decisions visible to people.
What this demonstrates
As Head of Engineering, I decide how language, trust, marketplace supply, mobile constraints, data quality and team delivery fit into one operable system. A sound decision in one layer must still be sound when it reaches every other layer.
The result is a platform direction built around clear ownership, native user experience and operational control—not novelty for its own sake.