Portfolios

Ayar+ | عياربلاس

→
Production cross-platform .NET MAUI client for gold and jewelry businesses — invoicing, inventory, receipts, analytics, and multi-workspace operations. Live on Google Play; iOS, Mac Catalyst, and Windows from one codebase.
.NET MAUI C# XAML MVVM SkiaSharp Ably Sentry OneSignal GitHub Actions Android iOS REST APIs Localization

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.

Notification Service

→
Backend notification service with async Redis queue dispatch, email delivery, health checks, and integration tests.
ASP.NET Core Clean Architecture MediatR PostgreSQL Redis EF Core Docker Serilog xUnit Testcontainers MailKit

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

→
Cross-platform meetup app — Flutter client with an ASP.NET Core API and PostgreSQL. In active development.
Flutter ASP.NET Core PostgreSQL JWT Docker

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

→
Vehicle access system for sequential gate passage — barrier control, rule-based filtering, and license plate workflows.
C# WPF SQL Server Entity Framework Fluent UI YOLO

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)

→
Real-time image processing for city-wide speed cameras over an offline wired network.
C# C++ .NET YOLOv4 OpenVINO Windows Service

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

→
WPF rewrites of legacy traffic utilities — live RTSP detection, YOLO annotation export, remote updater, and calibration tools.
C# WPF MVVM Emgu.CV OpenCV RTSP CommunityToolkit.Mvvm YOLO

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

→
WinForms violation reporting tool for patrol vehicles with dual-camera setup and offline sync.
C# WinForms SQLite

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

→
Reusable detection engines for vehicle and license plate analysis across traffic systems.
C# C++ TensorFlow OpenCV OpenVINO

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

→
ML.NET classifier for 140+ vehicle types, scaled from 1k to 59k samples via semi-supervised capture.
C# ML.NET

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

→
Offline queue layer sending encrypted violation JSON to remote ASP.NET panels.
C# .NET SQLite

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

→
Calibration UI and update service for dual-channel camera deployments.
C# WPF Windows Services

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.

Web & full-stack

ASP.NET Core Razor Pages EF Core SQL Server React Vite Bootstrap ASP.NET Identity Framer Motion

Multi-site Razor MVPs

ASP.NET Core 10 Area routing In-memory catalogs Session state Bootstrap JavaScript

E-commerce APIs

ASP.NET Core 8 OpenAPI Swagger Google OAuth REST