Data Platform Console for an Istanbul Home Textiles Brand
Designed and built a clickable operations console for a direct-to-consumer home textiles brand's cloud data platform: freshness against SLAs per domain, every pipeline run with retries and a suggested fix, lineage from raw tables to marts, and column-level PII tagging with masking by default under KVKK and GDPR.
Most of our work is under NDA. Per agreement, we can share the work but not the company details - all names and identifying information shown here have been changed.
Dashboard, runs, run detail with a Gantt of every attempt, models and lineage, and PII and classification. Retry, cancel, rebuild, confirm and reclassify all respond on local state.
9 raw tables, 7 staging, 3 intermediate and 6 marts in one left-to-right graph. Selecting a model lights up everything upstream and downstream of it.
Name, email, phone, address, national ID (TCKN), IP address, payment reference, free text and date of birth each map to a default masking policy that is applied when a tag is confirmed.
Storefronts, marketplaces, payments, ad platforms, ERP, e-Fatura, two 3PLs and Zendesk, feeding 16 pipelines, 78 runs since yesterday 17:00, 3 incidents and 10 staff users.
Mavikoru grew from one Istanbul storefront to two storefronts, two marketplaces and two currencies in three years. Every report was a spreadsheet stitched together by hand from Shopify exports, the ERP, iyzico and Stripe statements and ad dashboards. Finance and marketing disagreed on revenue every month, a few cron scripts broke silently when an API field changed, and nobody knew which tables held customers' names, phone numbers or addresses, or who could see them.
Dokuma pulls every source system into one cloud warehouse, models it in layers with full lineage, and gives the small data team one console to run it: freshness against SLAs, runs with retries and a suggested next step, the model graph from raw tables to marts, and PII tagging down to the column with masking applied in the warehouse.
Mavikoru sells in Türkiye and, through its Dutch subsidiary Mavikoru Home B.V., in the EU. Its data comes from fourteen systems hosted in Türkiye, the EU and the US, and lands in one warehouse that has to answer to KVKK and the GDPR at the same time.
Cron scripts loaded some data, stopped when a credential expired or an API field changed, and nobody noticed until a report looked wrong. The team needed to see every run, why it failed and what to do next, before the business asked.
Finance and marketing counted returns, VAT and marketplace commission differently. Without shared models and lineage, nobody could show which source a figure came from or which marts a broken source would affect.
Customer names, phones, addresses and Turkish ID numbers arrive from storefronts, marketplaces, 3PLs, e-invoices and support tickets, sometimes hidden in free text. KVKK and GDPR both expect the brand to know where that data sits and who can see it.
The warehouse and several SaaS sources sit outside Türkiye, and EU customer data flows to Türkiye. Each source has to record its hosting region and the transfer mechanism relied on, for counsel to confirm.
Mapped 8 user roles, from data engineer and analytics engineer to the data protection officer and source owners, 39 screens across the console and the Data hub, and the data model for sources, pipelines, runs, models, contracts, PII columns, masking policies, grants and retention rules. Wrote down the rules the design follows: KVKK and its 2024 cross-border transfer amendments, VERBIS, KVKK retention and destruction, the GDPR including Article 30 records, and GİB e-Fatura and e-Arşiv invoice data.
Built 5 key screens on a production dashboard kit: the dashboard with freshness KPIs, a freshness board per domain, today's runs on a timeline and My work by role, the runs table with status counts and filters, run detail with the failed step, error class, suggested next step and linked incident, the lineage graph with a model quick view, and PII review with confirm, change classification and not personal actions that require a reason.
Integration with Shopify, Trendyol, Hepsiburada, iyzico, Stripe, the ad platforms, Logo Tiger, a GİB-licensed e-invoice integrator, both 3PLs and Zendesk through Fivetran or Airbyte, a Snowflake or BigQuery warehouse in the EU, dbt and Dagster or Airflow. Single sign-on with roles, masking enforced in the warehouse, an append-only audit log, Slack and PagerDuty alerts, and the remaining screens: sources, schema changes, backfills, contracts, access requests, retention, catalogue, cost and the Data hub.
The dashboard opens on whether today's data can be trusted: a tile per domain with its last load and SLA target, such as Finance by 07:30, in green, amber or red, and every run since midnight on one timeline coloured by result.
A failed run shows the step, the error class and the raw message, then a suggested next step, such as rotating an expired e-Fatura token. Retries follow a back-off of 5, 15 and 45 minutes, and the operator can retry from the failed step or the whole run.
Every model carries a status dot and a lock when it holds masked PII. Selecting a failing mart highlights the staging and raw tables behind it, so a stale invoice sync is traced to the revenue numbers it blocks.
Columns are suggested from name patterns and value sampling, with a confidence score and a masked sample. Confirming applies the default masking policy, and changing a classification or marking a column not personal needs a reason that is audited.

Designed and built a clickable regulatory reporting pipeline for a Great Britain electricity and gas supplier: pinned source extracts, versioned transformation rules, reconciliations between systems, validation of every filled return and maker-checker sign-off, with every figure traceable back to the rows that produced it.

Designed and built a clickable executive dashboard portal for a Canary Islands hotel and restaurant group: one governed definition of RevPAR, ADR, occupancy, covers, food cost and labour cost, a daily pulse per region, a property scorecard against targets, drill-down to each hotel and restaurant, and variance commentary before the numbers reach the board.
Enterprise Software Engineering - Human + AI
Contact Us
© 2026 - Copyright. All Rights reserved Oceanlab
Location
Global Headquarters
21 Merchant Road, 3rd Floor, Singapore 058267
Main corporate office and leadership operations
North America Office
548 Market Street, PMB 12345, San Francisco, CA 94104
Client operations and business development
India Office
402 Shivalik Shilp II, SG Highway, Ahmedabad 380015
Engineering and delivery center
Enterprise Software Engineering - Human + AI
Contact Us
Locations
Global Headquarters
21 Merchant Road, 3rd Floor, Singapore 058267
Main corporate office and leadership operations
North America Office
548 Market Street, PMB 12345, San Francisco, CA 94104
Client operations and business development
India Office
402 Shivalik Shilp II, SG Highway, Ahmedabad 380015
Engineering and delivery center
© 2026 - Copyright. All Rights reserved Oceanlab