<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Ahmed Elsayed&apos;s Portfolio</title>
    <link>https://ahmedalsayed.work</link>
    <description>Full-stack product builder specializing in production software, desktop automation, Django and .NET backends, and engineering workflow optimization.</description>
    <language>en</language>
    <lastBuildDate>Thu, 02 Jul 2026 00:58:09 GMT</lastBuildDate>
    <atom:link href="https://ahmedalsayed.work/rss.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>FireForge: Prepare Architectural Drawings for Fire Sprinkler Design</title>
      <link>https://ahmedalsayed.work/blog/fireforge-user-guide</link>
      <guid isPermaLink="true">https://ahmedalsayed.work/blog/fireforge-user-guide</guid>
      <description>Separate every architectural layer into its own review workspace inside AutoCAD — without touching your original drawing.</description>
      <dc:creator>Ahmed Elsayed</dc:creator>
      <pubDate>Fri, 26 Jun 2026 00:00:00 GMT</pubDate>
      <category>Desktop Automation &amp; CAD</category>
      <content:encoded><![CDATA[<p>Separate every architectural layer into its own review workspace inside AutoCAD — without touching your original drawing.</p><p># FireForge: Prepare Architectural Drawings for Fire Sprinkler Design

*Separate every layer into its own review workspace — without touching your original drawing.*
---

## The Problem Every Sprinkler Engineer Knows

You receive a large architectural background DWG: walls, doors, grids, dimensions, furniture, hatches — all stacked on dozens of layers. Before you can lay out sprinklers, you need to work through those layers one at a time: isolate, copy, space them apart, and inspect each group w…</p>]]></content:encoded>
    </item>
    <item>
      <title>Survey Point Manager: The Complete Guide to an AutoCAD Survey Point Plugin (A to Z)</title>
      <link>https://ahmedalsayed.work/blog/survey-points-manager-core-engine</link>
      <guid isPermaLink="true">https://ahmedalsayed.work/blog/survey-points-manager-core-engine</guid>
      <description>An all-in-one coordinate and survey point manager built inside AutoCAD — from field data to finished drawings.</description>
      <dc:creator>Ahmed Elsayed</dc:creator>
      <pubDate>Fri, 19 Jun 2026 00:00:00 GMT</pubDate>
      <category>Desktop Automation &amp; CAD</category>
      <content:encoded><![CDATA[<p>An all-in-one coordinate and survey point manager built inside AutoCAD — from field data to finished drawings.</p><p># Survey Point Manager: The Complete Guide to an AutoCAD Survey Point Plugin (A to Z)

*An all-in-one coordinate and survey point manager built inside AutoCAD — from field data to finished drawings.*
---

## Introduction: The Problem Every Surveyor Knows

If you work in surveying, civil engineering, or CAD production, you have lived this workflow:
1. Collect points in the field with a total station or GNSS receiver.
2. Export them from Leica, Trimble, Sokkia, or Topcon software in *some* format.…</p>]]></content:encoded>
    </item>
    <item>
      <title>Surveyiiing: The Complete Guide to a Browser-First Surveying Tools Platform (A to Z)</title>
      <link>https://ahmedalsayed.work/blog/surveying-core-platform-guide</link>
      <guid isPermaLink="true">https://ahmedalsayed.work/blog/surveying-core-platform-guide</guid>
      <description>Calculators, file converters, and learning content for surveyors — built to run fast in the field, with coordinate files staying on your device.</description>
      <dc:creator>Ahmed Elsayed</dc:creator>
      <pubDate>Fri, 19 Jun 2026 00:00:00 GMT</pubDate>
      <category>Surveying Tools &amp; Field Workflow</category>
      <content:encoded><![CDATA[<p>Calculators, file converters, and learning content for surveyors — built to run fast in the field, with coordinate files staying on your device.</p><p># Surveyiiing: The Complete Guide to a Browser-First Surveying Tools Platform (A to Z)

*Calculators, file converters, and learning content for surveyors — built to run fast in the field, with your data staying on your device.*

---

## Introduction: The Problem Every Surveyor Knows

If you work in surveying, you have lived this split workflow:

1. You need a quick traverse closure or resection calculation in the field — and end up in a spreadsheet or a generic calculator that does not speak sur…</p>]]></content:encoded>
    </item>
    <item>
      <title>Datuma: The Complete Guide to Field Surveying on Mobile (A to Z)</title>
      <link>https://ahmedalsayed.work/blog/datuma-mobile-guide</link>
      <guid isPermaLink="true">https://ahmedalsayed.work/blog/datuma-mobile-guide</guid>
      <description>Import instrument files, manage projects offline, visualize points on the map, and export back to CAD — all from your phone.</description>
      <dc:creator>Ahmed Elsayed</dc:creator>
      <pubDate>Fri, 19 Jun 2026 00:00:00 GMT</pubDate>
      <category>Mobile Field Surveying</category>
      <content:encoded><![CDATA[<p>Import instrument files, manage projects offline, visualize points on the map, and export back to CAD — all from your phone.</p><p># Datuma: The Complete Guide to Field Surveying on Mobile (A to Z)

*Import instrument files, manage projects offline, visualize points on the map, and export back to CAD — all from your phone.*

---

## Introduction: The Problem Every Field Surveyor Knows

If you survey in the field, you have lived this workflow:

1. You collect or receive points from a total station as GSI, SDR, or CSV — and need them on your phone before you get back to the office.
2. You stake out or check coordinates on sit…</p>]]></content:encoded>
    </item>
    <item>
      <title>Rackify: The Complete Guide to Pallet Racking Inspection &amp; Compliance (A to Z)</title>
      <link>https://ahmedalsayed.work/blog/rackify-platform-guide</link>
      <guid isPermaLink="true">https://ahmedalsayed.work/blog/rackify-platform-guide</guid>
      <description>Turn warehouse racking inspections into a structured, visual, auditable workflow — from the floor plan to the signed PDF report.</description>
      <dc:creator>Ahmed Elsayed</dc:creator>
      <pubDate>Fri, 19 Jun 2026 00:00:00 GMT</pubDate>
      <category>Warehouse Safety &amp; Compliance</category>
      <content:encoded><![CDATA[<p>Turn warehouse racking inspections into a structured, visual, auditable workflow — from the floor plan to the signed PDF report.</p><p># Rackify: The Complete Guide to Pallet Racking Inspection &amp; Compliance (A to Z)

*Turn warehouse racking inspections into a structured, visual, auditable workflow — from the floor plan to the PDF report.*

---

## Introduction: The Problem Every Warehouse Team Knows

If you manage or inspect pallet racking, you have lived this workflow:

1. An inspector walks the warehouse with a paper checklist or a generic form app that does not understand racks, bays, or damage severity.
2. Photos end up in …</p>]]></content:encoded>
    </item>
    <item>
      <title>Survey Point Manager (AutoCAD Plugin)</title>
      <link>https://ahmedalsayed.work/projects/survey-points</link>
      <guid isPermaLink="true">https://ahmedalsayed.work/projects/survey-points</guid>
      <description>An all-in-one localized coordinate and survey point manager executing inside the CAD environment (SURVEYPOINTMANAGER).</description>
      <dc:creator>Ahmed Elsayed</dc:creator>
      <pubDate>Thu, 18 Jun 2026 00:00:00 GMT</pubDate>
      <category>Desktop Automation &amp; ObjectARX</category>
      <content:encoded><![CDATA[<p>An all-in-one localized coordinate and survey point manager executing inside the CAD environment (SURVEYPOINTMANAGER).</p>
<p><strong>Operational Impact:</strong> An all-in-one localized coordinate and survey point manager executing inside the CAD environment (SURVEYPOINTMANAGER).</p>
<ul><li>Platform: AutoCAD &amp; Civil 3D (2015–2027)</li><li>Tech Stack: C#, WPF, MVVM, AutoCAD .NET API (AcMgd, AcDbMgd), .NET 8 &amp; .NET Framework 4.8.</li><li>Ingestion Engine: Custom parsers for 14+ industry formats (CSV, GSI, SDR, PNT, HeXML, JobXML, KML, GeoJSON, LandXML) mapped to an immutable 5-field data model.</li><li>Features: Multi-file preview gating, bidirectional entity synchronization, Smart/Auto point extraction, and comprehensive transaction history logging.</li></ul>
<p><strong>Built With:</strong> C#, WPF, MVVM, AutoCAD .NET API, .NET 8, .NET Framework 4.8</p>]]></content:encoded>
    </item>
    <item>
      <title>FireForge (AutoCAD Plugin)</title>
      <link>https://ahmedalsayed.work/projects/fireforge</link>
      <guid isPermaLink="true">https://ahmedalsayed.work/projects/fireforge</guid>
      <description>Separates architectural layers into review workspaces for fire sprinkler background preparation — Safe Mode by default, source drawing preserved.</description>
      <dc:creator>Ahmed Elsayed</dc:creator>
      <pubDate>Thu, 18 Jun 2026 00:00:00 GMT</pubDate>
      <category>Desktop Automation &amp; ObjectARX</category>
      <content:encoded><![CDATA[<p>Separates architectural layers into review workspaces for fire sprinkler background preparation — Safe Mode by default, source drawing preserved.</p>
<p><strong>Operational Impact:</strong> FireForge is an AutoCAD workflow assistant for fire protection engineers. It automates the repetitive process of isolating architectural layers, copying each into a spaced review group with a common registration marker, and opening a clean workspace — without modifying the original deliverable.</p>
<ul><li>Platform: AutoCAD (2015–2027) on Windows — .NET Framework 4.8, .NET 8, and .NET 10 targets.</li><li>Safe Mode (default): creates a separate output DWG with separated layer groups; source drawing never modified.</li><li>Preflight scan: entity counts per layer, file size, risk level, and warnings for xrefs, proxy objects, and heavy geometry.</li><li>Registration marker (FF_LAYER_REFERENCE) replaces manual Layer 0 circle — inserted in every copied group for visual alignment.</li><li>Transparent UI: docked PaletteSet with Process, Settings, Results, and About tabs plus ribbon integration.</li></ul>
<p><strong>Built With:</strong> C#, WPF, MVVM, AutoCAD .NET API, .NET 8, .NET Framework 4.8, .NET 10</p>]]></content:encoded>
    </item>
    <item>
      <title>Datuma — Field Surveying Mobile App</title>
      <link>https://ahmedalsayed.work/projects/datuma</link>
      <guid isPermaLink="true">https://ahmedalsayed.work/projects/datuma</guid>
      <description>Offline-first Flutter field surveying app — 12+ format import/export, SQLite projects, Google Maps visualization, GPS capture, 11 calculators, and bilingual learning — aligned with Survey Point Manager.</description>
      <dc:creator>Ahmed Elsayed</dc:creator>
      <pubDate>Thu, 18 Jun 2026 00:00:00 GMT</pubDate>
      <category>Mobile / Flutter / Field GIS</category>
      <content:encoded><![CDATA[<p>Offline-first Flutter field surveying app — 12+ format import/export, SQLite projects, Google Maps visualization, GPS capture, 11 calculators, and bilingual learning — aligned with Survey Point Manager.</p>
<p><strong>Operational Impact:</strong> Datuma (datuma_mobile) is a production Flutter app for iOS and Android that puts survey point management in the field. Provider + Repository architecture over SQLite (schema v12), isolate-based parsers ported from the Survey Point Manager C# plugin, proj4dart coordinate conversion (WGS84/UTM/State Plane), and Google Maps with shape drawing and advanced measurement. Optional Supabase community, Google Drive backup, and Firebase Crashlytics — core import/export/projects work fully offline without an account.</p>
<ul><li>12+ import parsers and exporters (CSV, GSI, SDR, IDX, DXF, KML, GeoJSON, LandXML, Shapefile, LAS, SPJ) with content-based auto-detection and compute() isolate offload.</li><li>Five-field point model (PN/E/N/Z/Code) aligned with Survey Point Manager AutoCAD plugin — CoordinateService and TXT/IDX parsers ported from C# plugin sources.</li><li>GoRouter StatefulShellRoute with 4-tab shell (Home, Projects, Learn, Tools); map stack split into MapProvider, MapStateManager, MapRenderingService, MapGeometryEngine.</li><li>Versioned .spj project package (datuma.project.package v2) for cross-device sharing; quick-convert workflow with conversion_history table.</li><li>Bilingual Surveyor Career Journey (EN/AR) with 36+ test files covering parsers, export round-trips, measurement geometry, and localization validation.</li></ul>
<p><strong>Built With:</strong> Flutter 3.38+, Dart 3.10, Provider, GoRouter, SQLite (sqflite), Google Maps, proj4dart, Supabase, Firebase Crashlytics</p>]]></content:encoded>
    </item>
    <item>
      <title>Scaling Relational Schemas Beyond the Standard ORM</title>
      <link>https://ahmedalsayed.work/blog/pg-schemas</link>
      <guid isPermaLink="true">https://ahmedalsayed.work/blog/pg-schemas</guid>
      <description>ORMs are exceptional for fast development but often yield disastrous SQL under enterprise datasets. Understanding how to model indices, triggers, and constraints inside PostgreSQL directly turns sluggish pages into sub-millisecond API endpoints.</description>
      <dc:creator>Ahmed Elsayed</dc:creator>
      <pubDate>Thu, 14 May 2026 00:00:00 GMT</pubDate>
      <category>PostgreSQL &amp; Database Design</category>
      <content:encoded><![CDATA[<p>ORMs are exceptional for fast development but often yield disastrous SQL under enterprise datasets. Understanding how to model indices, triggers, and constraints inside PostgreSQL directly turns sluggish pages into sub-millisecond API endpoints.</p>
<p><strong>Core Technical Takeaway:</strong> Insulate complex data constraints within the database database schema rather than delegating them entire to fragile application code.</p>
<p><strong>Architecture:</strong> High-performance PostgreSQL systems use Partial Indexes to ignore nulls, preventing massive bloated indices, combined with CHECK constraints that enforce complex statuses at the database engine level.</p>
<p><strong>Implementation:</strong> A common mistake in large databases is querying timestamp statuses by default table scans, causing full disk seeks. Building targeted indices containing exact Boolean flags addresses this bottleneck.</p>]]></content:encoded>
    </item>
    <item>
      <title>Drafting with Code: Lessons from AutoCAD API Development</title>
      <link>https://ahmedalsayed.work/blog/autocad-net</link>
      <guid isPermaLink="true">https://ahmedalsayed.work/blog/autocad-net</guid>
      <description>Automating high-precision structural blueprints requires an architectural mindset. Working directly in the AutoCAD ObjectARX runtime reveals critical patterns for managing memory leaks, ensuring coordinates alignment, and committing thread-safe design drawings.</description>
      <dc:creator>Ahmed Elsayed</dc:creator>
      <pubDate>Thu, 02 Apr 2026 00:00:00 GMT</pubDate>
      <category>C# &amp; Engineering CAD</category>
      <content:encoded><![CDATA[<p>Automating high-precision structural blueprints requires an architectural mindset. Working directly in the AutoCAD ObjectARX runtime reveals critical patterns for managing memory leaks, ensuring coordinates alignment, and committing thread-safe design drawings.</p>
<p><strong>Core Technical Takeaway:</strong> Always treat COM interop resources as fragile, explicit memory containers that must be disposed of before application execution terminates.</p>
<p><strong>Architecture:</strong> Developing automation for desktop CAD demands absolute synchronization between C# managed structures and the native AutoCAD engine. Transactions ensure if drawing creation crashes midway, the viewport rolls back entirely.</p>
<p><strong>Implementation:</strong> To safely interact with native geometry APIs, developers must lock document structures, write safely within boundaries, and execute targeted disposals to prevent software lockups.</p>]]></content:encoded>
    </item>
    <item>
      <title>Connecting Python FastAPI Services to robust ASP.NET Cores</title>
      <link>https://ahmedalsayed.work/blog/api-architectures</link>
      <guid isPermaLink="true">https://ahmedalsayed.work/blog/api-architectures</guid>
      <description>Combining Python’s rich mathematical and AI packages with C#’s rock-solid throughput capabilities can yield incredible business benefits. Here is a guide on routing high-speed inter-service requests with zero serialization overhead.</description>
      <dc:creator>Ahmed Elsayed</dc:creator>
      <pubDate>Wed, 18 Mar 2026 00:00:00 GMT</pubDate>
      <category>API Gateways &amp; Microservices</category>
      <content:encoded><![CDATA[<p>Combining Python’s rich mathematical and AI packages with C#’s rock-solid throughput capabilities can yield incredible business benefits. Here is a guide on routing high-speed inter-service requests with zero serialization overhead.</p>
<p><strong>Core Technical Takeaway:</strong> Bridge backend ecosystems via binary communication layers like gRPC or message queues to completely bypass slow HTTP parsers.</p>
<p><strong>Architecture:</strong> High-throughput enterprise API setups route user requests into an ultra-fast .NET engine which processes credentials and schemas, before throwing raw mathematical matrixes directly into optimized Python processes over gRPC.</p>
<p><strong>Implementation:</strong> Routing data packets across C# and Python requires shared contract layouts (Protobuf) and robust error middleware to catch timeouts on either assembly during live runs.</p>]]></content:encoded>
    </item>
    <item>
      <title>Rackify — Pallet Racking Inspection SaaS</title>
      <link>https://ahmedalsayed.work/projects/rackify</link>
      <guid isPermaLink="true">https://ahmedalsayed.work/projects/rackify</guid>
      <description>Multi-tenant pallet racking inspection platform — ASP.NET Core API, Nuxt dashboard, native iOS/Android field apps, PostGIS blueprints, offline sync, and compliance PDF pipeline.</description>
      <dc:creator>Ahmed Elsayed</dc:creator>
      <pubDate>Sun, 01 Dec 2024 00:00:00 GMT</pubDate>
      <category>Multi-Tenant SaaS / Field Operations</category>
      <content:encoded><![CDATA[<p>Multi-tenant pallet racking inspection platform — ASP.NET Core API, Nuxt dashboard, native iOS/Android field apps, PostGIS blueprints, offline sync, and compliance PDF pipeline.</p>
<p><strong>Operational Impact:</strong> A production multi-tenant SaaS for pallet racking safety inspections serving inspection companies and self-inspecting warehouse operators. Web dashboard for org/site management, Fabric.js blueprint designer, schedule windows, action remediation, and analytics. Native Swift and Kotlin mobile apps with offline-first sync, QR scanning, photo annotation, and digital signatures. Completed inspections are archive-only for regulatory compliance.</p>
<ul><li>Five-level tenant hierarchy: tenant → organisation → site → warehouse → area → rack — supports inspection firms managing many client orgs on one account.</li><li>ASP.NET Core 8 REST API (CQRS/MediatR) with JWT multi-tenant middleware, SignalR live blueprint updates, and Hangfire background jobs for PDF generation.</li><li>Nuxt 3 + Vue 3 web dashboard with Pinia auth, shadcn-vue UI, and Fabric.js floor-plan designer persisting JSONB + PostGIS geometry.</li><li>Native iOS (SwiftUI/CoreData) and Android (Jetpack Compose/Room) with offline write queues, conflict modals, and secure Keychain/Keystore token storage.</li><li>Three inspection types (standard full, partial, isolated damage) with mandatory digital signature, action lifecycle, and QuestPDF report generation.</li></ul>
<p><strong>Built With:</strong> ASP.NET Core 8, Nuxt 3, Vue 3, PostgreSQL 15, PostGIS, Redis 7, SignalR, Hangfire, Swift/SwiftUI, Kotlin/Compose</p>]]></content:encoded>
    </item>
    <item>
      <title>Surveyiiing (surveyiiing.com)</title>
      <link>https://ahmedalsayed.work/projects/surveying-core</link>
      <guid isPermaLink="true">https://ahmedalsayed.work/projects/surveying-core</guid>
      <description>Field calculators, private file converters, and paired learning content for surveyors — runs in any browser, coordinate files never leave your device.</description>
      <dc:creator>Ahmed Elsayed</dc:creator>
      <pubDate>Thu, 01 Jun 2023 00:00:00 GMT</pubDate>
      <category>Surveying Tools &amp; Field Workflow</category>
      <content:encoded><![CDATA[<p>Field calculators, private file converters, and paired learning content for surveyors — runs in any browser, coordinate files never leave your device.</p>
<p><strong>Operational Impact:</strong> A web platform built for surveying professionals who need quick field math and trustworthy format conversion without uploading coordinate files. Six calculators work instantly with no account. Three converters handle GSI, CSV, and DXF entirely in your browser, with Learn articles and reference guides tied to each tool.</p>
<ul><li>Six public calculators — bearing/distance, traverse closure, Bowditch adjustment, Tienstra resection, column center, and polygon area — usable on phone or laptop with no sign-in.</li><li>GSI ↔ CSV and CSV → DXF converters process files on your device; only file size and point count are sent to check credits, never the coordinates themselves.</li><li>Fair credit billing: 30 free conversions per month, charged only after a successful download, with a five-minute window to re-export the same job to another format at no extra cost.</li><li>Learn articles and GSI format reference paired to every calculator and converter — read the method, then run the tool on the same site.</li></ul>
<p><strong>Built With:</strong> Traverse &amp; Bowditch, Tienstra Resection, GSI-8 / GSI-16, CSV (ENZ / PNEZD), DXF Point Export, Leica Workflows</p>]]></content:encoded>
    </item>
  </channel>
</rss>
