# Necati Doğrul — Software Engineer and iOS Developer

> Necati Doğrul: end-to-end, frontend-leaning software engineer at Atmosware (Turkcell Group); React, Next.js, TypeScript, Node.js, LLM features and agent design. 10 self-published iOS apps on the App Store. Antalya, Türkiye.

- Website: https://necatidogrul.dev/en
- Email: necatidogrul7@gmail.com
- App Store: https://apps.apple.com/developer/necati-dogrul/id1830290971
- GitHub: https://github.com/necatidogrul · LinkedIn: https://www.linkedin.com/in/necatidogrul/
- Location: Antalya, Türkiye
- Name disambiguation: I am often confused with the writer and journalist Necati Doğru. We are different people; my surname is Doğrul and I write software.

## In numbers

- 10 iOS apps · 3 web products live · 2 Apple Watch · 19 store languages

## iOS apps (App Store)

- **Wakora** (Alarm, 2026-07) — The alarm you can't skip: it stops when the task is done. Math, shake, steps, barcode. Tech: SwiftUI, RevenueCat, Widgets. App Store: https://apps.apple.com/app/id6761144895 · Site: https://wakora.app
- **Kaloro** (Health, 2026-09) — Calories from a photo. It counts the oil too: fix cooking oil and portion in one tap. Tech: SwiftUI, Gemini Vision, Cloudflare Workers. App Store: https://apps.apple.com/app/id6808956115 · Site: https://necatidogrul.github.io/kaloro-site/
- **Ebb** (Health, 2026-07, Apple Watch) — Perimenopause tracker: symptoms, HRT dose and site rotation, one-tap doctor report. Tech: SwiftUI, Apple Watch, Widgets. App Store: https://apps.apple.com/app/id6790369342 · Site: https://necatidogrul.github.io/ebb-site/
- **Maya: AI Şef** (Food, 2025-09) — Snap your fridge or say what you have; a recipe for your taste in 30 seconds. Tech: Swift, OpenAI, Supabase. App Store: https://apps.apple.com/app/id6749386118 · Site: https://necatidogrul.github.io/maya-site/
- **LensLoop** (Health, 2026-07, Apple Watch) — Contact lens reminder: left and right separately, daily comfort log, countdown on your wrist. Tech: SwiftUI, SwiftData, Apple Watch. App Store: https://apps.apple.com/app/id6790209362 · Site: https://necatidogrul.github.io/lensloop-site/
- **Manifesta** (Lifestyle, 2026-07) — A wish ritual with an obstacle step, your own voice, and a galaxy that changes when it comes true. Tech: SwiftUI, StoreKit 2, App Intents. App Store: https://apps.apple.com/app/id6784444090 · Site: https://necatidogrul.github.io/manifesta-site/
- **CarPassport** (Utilities, 2026-07) — Your car's passport: inspection, tax and insurance reminders, expenses, bodywork map, PDF. Tech: SwiftUI, SwiftData, PDFKit. App Store: https://apps.apple.com/app/id6794941441 · Site: https://necatidogrul.github.io/carpassport-site/
- **TRT Log** (Health, 2026-08) — Injection and dose log for testosterone therapy, with site rotation and reminders. Tech: SwiftUI, RevenueCat. App Store: https://apps.apple.com/app/id6795310402
- **Peptily** (Health, 2026-08) — Peptide calculator and tracker: reconstitution, dose, schedule. Tech: SwiftUI, RevenueCat. App Store: https://apps.apple.com/app/id6802390508
- **Iridis** (Game, 2026-03) — Colour-merge puzzle: 75 handcrafted levels, combos, bombs, a daily global leaderboard. Tech: Swift, SpriteKit, Game Center. App Store: https://apps.apple.com/app/id6759670783 · Site: https://necatidogrul.github.io/iridis-site/

## Web products and open source

- **EnoRandevu** (SaaS · booking) — Commission-free booking and business management for salons and barbers. Next.js 15, Supabase (47 tables, 102 migrations), iyzico. https://enorandevu.com
- **EnoMenu** (SaaS · QR menu) — QR menu platform for restaurants and cafés; subscriptions, multilingual. Next.js 15, Supabase, Zustand, iyzico. https://enomenu.com
- **Raporla** (Web · team reporting) — Report creation and sharing for teams. Next.js, TypeScript, Firebase. https://raporapp.vercel.app
- **DevDNA** (Open source · AI agent) — An agent that learns a team's engineering memory: decisions, standards, habits. Node 20; OpenAI, Anthropic or Gemini. https://github.com/necatidogrul/devdna

## Work (case studies)

- [An alarm that rings through Silent Mode](https://necatidogrul.dev/en/work/wakora) — The notification-based alarm went quiet under Focus. A system-level alarm with protected background audio that keeps ringing until the task is done; then a trademark dispute and a rename. (https://necatidogrul.dev/work/wakora.en.md)
- [A photo can't see the oil](https://necatidogrul.dev/en/work/kaloro) — Vision models undercount home cooking by 20 to 50 percent. The fix is not a better model but an interface that shows its assumptions and lets you correct them in one tap: cooking-oil and portion chips. (https://necatidogrul.dev/work/kaloro.en.md)
- [An honest range, not a prediction](https://necatidogrul.dev/en/work/ebb) — Perimenopause does not keep a schedule; period apps print a date anyway. Ebb shows a range, models HRT with dose and site rotation, and found the cause of zero installs in a screenshot. (https://necatidogrul.dev/work/ebb.en.md)

## Experience

- 2024-08 → present: Software Engineer · Atmosware (Turkcell Group). Enterprise web applications with React and Next.js; TypeScript, design system, performance. Antalya.
- 2025-09 → present: Independent iOS developer · App Store. 10 apps on the App Store. Swift/SwiftUI, StoreKit 2 and RevenueCat, Apple Watch, widgets, App Store Connect API automation, ASO and Apple Ads.
- 2024-03 → 2024-07: Frontend Bootcamp · Turkcell Geleceği Yazanlar. JavaScript and React; project-based programme.
- 2023-07 → 2023-10: Data Science Intern · OptiWisdom. Explainable AI and data analysis; Python.
- 2020-09 → 2024-06: B.Sc. Computer Engineering · Akdeniz Üniversitesi. Antalya.

## Notes

- 2026-09-13 [Why photo calorie counting runs 40 percent low, and the chip fix](https://necatidogrul.dev/en/notes/photo-calorie-undercount) — A vision model cannot see oil or plate size. A bigger model is not the cure; an interface that shows its assumptions and lets you fix them in one tap is. (https://necatidogrul.dev/notes/photo-calorie-undercount.en.md)
- 2026-09-13 [A .md twin for every page, and llms.txt: a site for AI engines](https://necatidogrul.dev/en/notes/markdown-twins-llms-txt) — Google, ChatGPT and Perplexity read the same page differently. The method I put on eight sites: a Markdown twin of every page, one llms.txt, and schema generated from the same data. What it does, and what it does not. (https://necatidogrul.dev/notes/markdown-twins-llms-txt.en.md)
- 2026-09-13 [How an alarm app rings through Silent Mode](https://necatidogrul.dev/en/notes/alarm-silent-mode) — A local notification is not an alarm. Ringing through Silent Mode and Focus takes an owned audio session, a layered fallback, and an honest "scheduling was interrupted" warning. (https://necatidogrul.dev/notes/alarm-silent-mode.en.md)
- 2026-09-13 [Agent loops: plan, tool, verify, repeat](https://necatidogrul.dev/en/notes/agent-loops) — Whether an AI agent works is decided by the loop, not the model. What I learned about loop design shipping ten apps solo and writing DevDNA. (https://necatidogrul.dev/notes/agent-loops.en.md)
- 2026-08-30 [App Store rejection lessons from ten apps](https://necatidogrul.dev/en/notes/app-store-rejections) — 3.1.2, 2.1, 4.3 and the cart lock. Most rejections live in metadata, not code; you get one appeal per submission, so build the gate before you submit. (https://necatidogrul.dev/notes/app-store-rejections.en.md)
- 2026-08-20 [Why revenue shows zero in RevenueCat observer mode](https://necatidogrul.dev/en/notes/revenuecat-observer-mode) — With StoreKit 2 in observer mode, purchases never appear unless you call recordPurchase. Notes from a bug I chased for a week thinking revenue was zero. (https://necatidogrul.dev/notes/revenuecat-observer-mode.en.md)

## About

Necati Doğrul is a software engineer based in Antalya, Türkiye. B.Sc. Computer Engineering, Akdeniz University, 2024. Days at Atmosware (Turkcell Group) building web with React and Next.js; evenings shipping his own iOS apps in Swift.

How I work: measure first, then decide. Every app has funnel counters and App Store Connect API automation; the same person writes the store copy and runs the ads.

## FAQ

**Who is Necati Doğrul?** Necati Doğrul is a software engineer and independent iOS developer based in Antalya, Türkiye. He builds web applications with React and Next.js at Atmosware (Turkcell Group) and has 10 apps on the App Store written in Swift.

**Is Necati Doğrul the same person as Necati Doğru?** No. Necati Doğru is a writer and journalist. Necati Doğrul (surname ending in -l) is a software engineer; this site is his.

**Which apps did Necati Doğrul build?** Wakora, Kaloro, Ebb, Maya, LensLoop, Manifesta, CarPassport, TRT Log, Peptily and Iridis, all on the App Store; on the web, EnoRandevu, EnoMenu and Raporla.

**Where does Necati Doğrul work?** Software engineer at Atmosware, a Turkcell Group company, since August 2024. He lives in Antalya.

## Ship log

- 2026-09-13 necatidogrul.dev · apps section (live)
- 2026-09-12 7 marketing sites · GEO/SEO set (live)
- 2026-09-11 kaloro 1.0 → App Store (approved)
- 2026-08-25 peptily 1.3 (released)
- 2026-08-12 trt log 1.0 → App Store (approved)
- 2026-07-29 carpassport 1.0 → App Store (approved)
- 2026-07-27 wakeguard → wakora rename (live)
- 2026-07-25 lensloop 1.0 · apple watch (approved)
- 2026-07-23 ebb 1.0 · perimenopause tracker (approved)
- 2026-07-09 manifesta 1.0 → App Store (approved)
- 2026-03-12 iridis 1.0 → App Store (approved)
- 2025-09-23 maya 1.0 → App Store (approved)

---
Necati Doğrul · https://necatidogrul.dev/en · This file is the Markdown twin of the site.
