Portfolios
Ayar+ | عياربلاس
→Overview
Ayar+ is a full-featured .NET MAUI client for jewelry and precious-metals businesses. It connects to a Laravel REST API and gives shop owners and accountants one app to manage invoices, bills, receipts, contacts, inventory, warehouses, currencies, financial reports, and user permissions — scoped per workspace (store/branch). The app ships in 6 UI languages with full RTL layout for Arabic and Persian, and integrates Civil ID card readers, barcode/QR login, realtime Ably events, PDF/Excel export, and OneSignal push notifications.
Objective
Deliver a reliable, multilingual, permission-aware client that lets jewelry traders create complex gold-weight documents with live gold rates, supports multi-workspace tenancy with correct API scoping, works on phones/tablets/desktop (TabBar on mobile, Flyout on Windows/Mac), and integrates with hardware ecosystems including Civil ID readers and barcode scanners.
Challenges and Solutions
Challenge: Multi-tenant workspace scoping evolved from company_id to workspace UUIDs with three identifier types coexisting. Solution: Centralized preference keys, AuthenticationHandler auto-attach of X-Workspace header, legacy migration at startup, and documented API drift for backend coordination. Challenge: Complex jewelry document calculations (gold weight, karat conversion, stone weight, wage percent, live rates). Solution: Dedicated ViewModels per document flow, AyarConversionService, CachedGoldRateService with stale-on-error fallback, and DocumentDraftSessionStore for in-progress drafts. Challenge: Cross-platform PDF preview/export with RTL Arabic text and custom fonts. Solution: PdfSharpCore + SkiaSharp font rendering with platform-specific rasterizers and custom Android WebView PDF facades. Challenge: Realtime Civil ID card reader integration between Windows desktop and mobile invoice flows. Solution: Ably channel subscription with debounced CivilIdScannerService and typed payload mapping for contact/invoice prefill. Challenge: Permission-aware navigation at scale (40+ routes, role hierarchy). Solution: PermissionGuardService, PermissionKeys synced with backend, and AppShellViewModel visibility properties per tab/route.
Role and Takeaways
Lead developer on the MAUI client — architecture from the HTTP pipeline (named HttpClient, Bearer auth, tenant headers) through Shell navigation to PDF/Excel export. Built 20+ typed API service integrations with 80+ DTOs, 45+ ViewModels, and 42+ pages. Ship Android releases via GitHub Actions (AAB/APK with Sentry monitoring) and maintain localization/RTL standards across the UI.
App Gallery
Notification Service
→Overview
ASP.NET Core service structured in Clean Architecture layers: domain rules, MediatR application commands, EF Core + PostgreSQL persistence, Redis queue for async processing, background worker with retry logic, and MailKit SMTP email delivery.
Objective
Reliable async notification dispatch with an extensible channel design and testable infrastructure.
Challenges and Solutions
Challenge: Async delivery with retries without blocking the API. Solution: Redis-backed queue, background worker, and domain status rules. Challenge: Infrastructure testing without a full production stack. Solution: Unit tests plus integration tests with in-memory EF and Testcontainers for Redis.
Role and Takeaways
Built the service end-to-end — API, worker, persistence, and test suite.
Matcha
→Overview
Mobile and desktop Flutter front end talking to a .NET backend. Map-based venue browsing, user accounts, and event flows.
Objective
Full-stack social app with a maintainable API and shared auth.
Challenges and Solutions
Challenge: Multiple client platforms hitting one API during development. Solution: Configurable base URL, Docker Compose for Postgres, and seeded test accounts.
Role and Takeaways
Designed the Flutter UI and ASP.NET Core backend with JWT auth and EF Core.
Gate Access Manager
→Overview
Independent software for license plate reading and traffic management with logging, rule-based filters, and detailed record handling on a normalized SQL Server schema.
Objective
Controlled access with high configurability and maintainable data operations.
Challenges and Solutions
Challenge: Complex, dynamic database structures and custom request rules. Solution: Normalized relational models with robust filtering and validation logic.
Role and Takeaways
Implemented the software layer and database structure independently.
SpeedCam Dispatcher (VSD Package)
→Overview
Watchdog, transmitter, updater, and ViolationSystemDetector modules — each processing two camera feeds using darknet-based YOLOv4 under CPU-only constraints.
Objective
Capture, detect, and transmit traffic violations on limited hardware.
Challenges and Solutions
Challenge: Real-time detection on weak CPUs with YOLOv4 embedded in C++. Solution: Custom darknet integration and OpenVINO optimization — ~10 FPS on a 7th-gen Core i5 without GPU.
Role and Takeaways
Built and optimized detector and transmission modules; designed preprocessing for field deployment limits.
TivaTools — WPF Modernization
→Overview
TivaVehicleDetector.Wpf: live/video/RTSP detection and semi-supervised YOLO export. TivaUpdater.Wpf: remote deploy, config crypto, and VSD calibration over TCP.
Objective
Modernize field tools with shared Core libraries, DI, and MVVM while keeping protocol compatibility.
Challenges and Solutions
Challenge: x64 native OpenCV/Darknet DLL deployment. Solution: Explicit x64 builds with native binaries beside executables. Challenge: RTSP latency on weak hardware. Solution: RtspClientSharp with a tuned detection pipeline in the Core library.
Role and Takeaways
Led WPF migration; Core libraries now shared across updater and detector apps.
Mobile Traffic Enforcer
→Overview
Captured and transmitted parking violations through SIM-connected networks with SQLite caching.
Objective
Mobile enforcement with an offline-capable field interface.
Challenges and Solutions
Challenge: Slow wireless links. Solution: SQLite queue and JSON export with background upload.
Role and Takeaways
Built the UI, data logic, and transmission flow.
Vehicle & OCR Module
→Overview
OpenVINO-accelerated YOLO for full-frame detection; TensorFlow/OpenCV OCR on cropped plate regions — CPU-only.
Objective
Lightweight embedded modules for detection and OCR.
Challenges and Solutions
Challenge: Usable performance without GPU. Solution: CPU inference tuning and dynamic region-of-interest filtering.
Role and Takeaways
Developed and maintained modules reused across major traffic deployments.
Vehicle Classifier Engine
→Overview
Self-augmenting pipeline fed by production VSD data to grow the training set without manual labeling at scale.
Objective
Real-time vehicle type classification for violation analytics.
Challenges and Solutions
Challenge: Limited labeled data. Solution: Semi-supervised feedback loop from live captures.
Role and Takeaways
Built dataset, training pipeline, and production integration.
Data Transmitter
→Overview
Stores payloads locally, retries failures, and logs transmission state under unstable networks.
Objective
Reliable data transfer from field systems to central servers.
Challenges and Solutions
Challenge: Duplicates and failed sends. Solution: SQLite queue with directory-based log separation.
Role and Takeaways
Refined transmission logic for production traffic infrastructure.
Camera Calibration + Updater
→Overview
Generates calibration files, aligns detection zones across B&W and RGB inputs, and pushes remote software updates.
Objective
Keep camera-linked systems aligned across wide deployments.
Challenges and Solutions
Challenge: Dual-channel differences and remote updates. Solution: Calibration UI plus lightweight update services on each node.
Role and Takeaways
Deployed both tools across VSD-linked machines.
More experience
Additional work not listed above — skills and stack only.