<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Hassan Ansari — changelog</title>
    <link>https://hassanansari.dev/</link>
    <description>What&apos;s shipped, what&apos;s in flight from Hassan Ansari.</description>
    <language>en</language>
    <atom:link href="https://hassanansari.dev/feed.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>file_saver — v0.4.0 ships SPM, streaming, Wasm cleanup</title>
      <link>https://hassanansari.dev/?theme=changelog#case:file_saver</link>
      <guid isPermaLink="false">https://hassanansari.dev/changelog/case:file_saver</guid>
      <pubDate>Fri, 01 May 2026 12:00:00 GMT</pubDate>
      <description>file_saver is an open-source Dart package that saves files cross-platform from Flutter apps — web, mobile, and desktop. I built it in 2021 for a personal project when no existing package handled the web-vs-mobile platform fork cleanly. Added: Swift Package Manager support (iOS, macOS); Streaming writes — saveAsStream + saveLinkAsStream; downloadLink for web + Android DownloadManager (no Dart memory copies); Conditional imports — clean Web/Wasm analysis; Native file-path copying (iOS, macOS, Windows) — saveAs avoids loading bytes; Android path-traversal hardening + writes off the main thread. Stack: Dart, pub.dev, cross-platform (web + mobile + desktop). Status: SHIPPED.</description>
    </item>
    <item>
      <title>Senior Product Manager @ Enso Webworks</title>
      <link>https://hassanansari.dev/?theme=changelog#role:0:Enso Webworks</link>
      <guid isPermaLink="false">https://hassanansari.dev/changelog/role:0:Enso Webworks</guid>
      <pubDate>Sun, 01 Feb 2026 12:00:00 GMT</pubDate>
      <description>Senior Product Manager on two Enso products. Cross-functional across both — engineering, design, and stakeholder communication. Status: WIP.</description>
    </item>
    <item>
      <title>InfoPhone — native rebuild in testing</title>
      <link>https://hassanansari.dev/?theme=changelog#case:infophone</link>
      <guid isPermaLink="false">https://hassanansari.dev/changelog/case:infophone</guid>
      <pubDate>Thu, 01 May 2025 12:00:00 GMT</pubDate>
      <description>Real-time chat + voice/video at Enso Webworks. We shipped a Flutter + MirrorFly build, used it in production, and made the call to scrap it and rebuild native — raw ejabberd for chat, LiveKit for calls, NestJS for the rest. Added: Native iOS (Swift) shell; Native Android (Kotlin) shell; Self-hosted ejabberd for chat; LiveKit integration for calls; NestJS + Drizzle backend. Removed: MirrorFly SDK; Method-channel glue layer; Flutter PiP workarounds. Stack: Native iOS (Swift) + Native Android (Kotlin) + raw ejabberd + LiveKit + NestJS + Drizzle. Status: WIP.</description>
    </item>
    <item>
      <title>Product Manager @ Enso Webworks</title>
      <link>https://hassanansari.dev/?theme=changelog#role:1:Enso Webworks</link>
      <guid isPermaLink="false">https://hassanansari.dev/changelog/role:1:Enso Webworks</guid>
      <pubDate>Thu, 01 May 2025 12:00:00 GMT</pubDate>
      <description>Product Manager on InfoPhone — owning the architectural rebuild from a wrapped-vendor SDK to native iOS/Android + raw ejabberd + LiveKit + NestJS. Promoted to Senior Product Manager in Feb 2026 when InfoToDo was added to my portfolio. Status: SHIPPED.</description>
    </item>
    <item>
      <title>Senior Software Developer @ Enso Webworks</title>
      <link>https://hassanansari.dev/?theme=changelog#role:2:Enso Webworks</link>
      <guid isPermaLink="false">https://hassanansari.dev/changelog/role:2:Enso Webworks</guid>
      <pubDate>Tue, 01 Oct 2024 12:00:00 GMT</pubDate>
      <description>Built InfoProfile from scratch with a 4-developer team. Owned core services — BLoC wrapper, API handler, environment flavors, Firebase integration, auth, notifications, and media flows. Helped shape the team&apos;s architectural conventions early. Built and maintained backend APIs in Node.js/TypeScript with Hapi. Status: SHIPPED.</description>
    </item>
    <item>
      <title>Full-Stack Developer @ Trubary Technologies Pvt. Ltd.</title>
      <link>https://hassanansari.dev/?theme=changelog#role:3:Trubary Technologies Pvt. Ltd.</link>
      <guid isPermaLink="false">https://hassanansari.dev/changelog/role:3:Trubary Technologies Pvt. Ltd.</guid>
      <pubDate>Sun, 01 Oct 2023 12:00:00 GMT</pubDate>
      <description>Maintained and extended Pappyon: a Flutter mobile app, Vue 2/Vuetify business portal, and Firebase Cloud Functions. Worked across Firestore, Auth, Storage, messaging, payments, QR/link preview flows, and cross-platform workflow automation. Status: SHIPPED.</description>
    </item>
    <item>
      <title>Clickked — v2 paywall pivot in development</title>
      <link>https://hassanansari.dev/?theme=changelog#case:clickked</link>
      <guid isPermaLink="false">https://hassanansari.dev/changelog/case:clickked</guid>
      <pubDate>Wed, 01 Mar 2023 12:00:00 GMT</pubDate>
      <description>Clickked is a two-sided dating + consultant marketplace. The marketplace shape was a stakeholder vision from inception, completed during 2021–2023. Added: Paywall trigger moved to post-first-swipe; Consultant flow updates; NestJS + TypeORM consultant backend. Removed: Mid-profile paywall trigger (v1). Stack: Flutter user app + Flutter web consultant/admin apps + Supabase dating backend + Firebase chat/notifications + GetStream video + NestJS/TypeORM consultant backend on Supabase Postgres. Status: WIP.</description>
    </item>
    <item>
      <title>Senior Software Engineer @ Exceptions</title>
      <link>https://hassanansari.dev/?theme=changelog#role:4:Exceptions</link>
      <guid isPermaLink="false">https://hassanansari.dev/changelog/role:4:Exceptions</guid>
      <pubDate>Sun, 01 Jan 2023 12:00:00 GMT</pubDate>
      <description>End-to-end ownership across Flutter + Firebase client projects including Fin Moto Corp, ServYou 24, and GharTak. Client-facing on requirements, team-facing on code review and delivery quality. Where I learned to translate vague client asks into concrete development plans. Status: SHIPPED.</description>
    </item>
    <item>
      <title>Senior Software Engineer @ Pegasus InfoCorp</title>
      <link>https://hassanansari.dev/?theme=changelog#role:5:Pegasus InfoCorp</link>
      <guid isPermaLink="false">https://hassanansari.dev/changelog/role:5:Pegasus InfoCorp</guid>
      <pubDate>Thu, 01 Sep 2022 12:00:00 GMT</pubDate>
      <description>Worked on Caratlane&apos;s internal Digital QC app in Flutter. Wrote the test suite that took coverage from 0 to 80%, enforced linting/code standards, and made one small Ruby-side dropdown value change when the workflow needed it. Status: SHIPPED.</description>
    </item>
    <item>
      <title>Software Associate @ Capgemini</title>
      <link>https://hassanansari.dev/?theme=changelog#role:6:Capgemini</link>
      <guid isPermaLink="false">https://hassanansari.dev/changelog/role:6:Capgemini</guid>
      <pubDate>Mon, 01 Mar 2021 12:00:00 GMT</pubDate>
      <description>.NET / C# shadow project alongside senior engineers. Server operations, UAT data migrations, user-ticket triage. First exposure to enterprise-scale process — the slow, structured kind that&apos;s the opposite of startup chaos. Status: SHIPPED.</description>
    </item>
    <item>
      <title>Senior Consultant / Software Developer @ Swift Media Labs</title>
      <link>https://hassanansari.dev/?theme=changelog#role:7:Swift Media Labs</link>
      <guid isPermaLink="false">https://hassanansari.dev/changelog/role:7:Swift Media Labs</guid>
      <pubDate>Wed, 01 Jan 2020 12:00:00 GMT</pubDate>
      <description>Service-based Flutter app work with a 3-developer team. Architected frontend/backend boundaries with the backend team. Led 2 junior developers through requirements interpretation and project planning — first taste of being responsible for someone else&apos;s output. Status: SHIPPED.</description>
    </item>
    <item>
      <title>Lead Software Developer @ Frynds &amp; Co</title>
      <link>https://hassanansari.dev/?theme=changelog#role:8:Frynds & Co</link>
      <guid isPermaLink="false">https://hassanansari.dev/changelog/role:8:Frynds & Co</guid>
      <pubDate>Sun, 01 Dec 2019 12:00:00 GMT</pubDate>
      <description>Built Hungry, a food delivery system, from scratch — Flutter app, Firebase backend services, and TypeScript/Node.js Cloud Functions. On-site at the client&apos;s office, with every change reviewed in person. End-to-end ownership of architecture, build, and deployment. Status: SHIPPED.</description>
    </item>
  </channel>
</rss>
