<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Tom Cardaro</title>
    <description>The latest articles on DEV Community by Tom Cardaro (@tom_cardaro).</description>
    <link>https://dev.to/tom_cardaro</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4085418%2Ffe09250a-fffc-4087-b9ad-1f31cbab83e6.png</url>
      <title>DEV Community: Tom Cardaro</title>
      <link>https://dev.to/tom_cardaro</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tom_cardaro"/>
    <language>en</language>
    <item>
      <title>Building Drift Asset: A Local Windows Utility for Release Asset Management</title>
      <dc:creator>Tom Cardaro</dc:creator>
      <pubDate>Wed, 19 Aug 2026 17:18:44 +0000</pubDate>
      <link>https://dev.to/tom_cardaro/building-drift-asset-a-local-windows-utility-for-release-asset-management-41oi</link>
      <guid>https://dev.to/tom_cardaro/building-drift-asset-a-local-windows-utility-for-release-asset-management-41oi</guid>
      <description>&lt;p&gt;When managing local builds, codebases, and release assets on Windows, things get cluttered fast. I needed something fast, reliable, and completely local-first—meaning zero cloud dependencies and total privacy over file structures. &lt;/p&gt;

&lt;p&gt;Instead of dealing with bloated software or setting up manual scripts every time, I built a dedicated solution: &lt;strong&gt;Drift Asset&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Engineering Problem: Local Asset Clutter
&lt;/h2&gt;

&lt;p&gt;Managing software release assets locally often means dealing with orphaned files, broken references, and messy package directories. Existing tools usually require heavy cloud syncing or lack the granular local control needed for fast developer workflows.&lt;/p&gt;

&lt;p&gt;I needed a tool that could:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Scan and audit local directories and release packages rapidly on Windows.&lt;/li&gt;
&lt;li&gt;Maintain strict privacy with a 100% local-first execution model.&lt;/li&gt;
&lt;li&gt;Handle asset packaging and commercial licensing seamlessly.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Technical Stack &amp;amp; Implementation
&lt;/h2&gt;

&lt;p&gt;To build and package Drift Asset effectively, the project relies on a modern desktop and local utility architecture:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Core Runtime &amp;amp; Layout:&lt;/strong&gt; Built using a high-performance Tauri + Rust backend paired with a Python layer for robust local file system processing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Asset Quarantining &amp;amp; Management:&lt;/strong&gt; Features automated scanning, safe quarantine flows for orphaned or broken references, and clean installer generation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Licensing &amp;amp; Distribution:&lt;/strong&gt; Integrated commercial lifetime licensing via Freemius to handle deployment without open-source restrictions.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Key Lessons Learned
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Local-First Performance:&lt;/strong&gt; Offloading everything to a local Tauri/Rust/Python stack keeps file scanning instantaneous compared to web-heavy wrappers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Seamless Installers:&lt;/strong&gt; Getting end-user packaging right from the start saves a massive amount of distribution headaches down the road.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Have you built custom utilities to manage your local build pipelines or release assets? How do you keep your workspace organized? Let me know in the comments below!&lt;/p&gt;

</description>
      <category>automation</category>
      <category>software</category>
      <category>softwaredevelopment</category>
      <category>tools</category>
    </item>
    <item>
      <title>How I Built a Frictionless Data-Cleaning Utility to Solve Broken CSVs</title>
      <dc:creator>Tom Cardaro</dc:creator>
      <pubDate>Wed, 19 Aug 2026 17:12:47 +0000</pubDate>
      <link>https://dev.to/tom_cardaro/how-i-built-a-frictionless-data-cleaning-utility-to-solve-broken-csvs-bn1</link>
      <guid>https://dev.to/tom_cardaro/how-i-built-a-frictionless-data-cleaning-utility-to-solve-broken-csvs-bn1</guid>
      <description>&lt;p&gt;If you’ve ever built an app that accepts user-uploaded spreadsheets or data feeds, you know the inevitable pain: malformed rows, broken delimiters, mismatched columns, and strange character encodings. &lt;/p&gt;

&lt;p&gt;Instead of writing another one-off script to parse a messy file, I decided to build a dedicated, production-ready web utility to handle it: &lt;strong&gt;CSV Hospital&lt;/strong&gt; (&lt;a href="https://csvhospital.com" rel="noopener noreferrer"&gt;csvhospital.com&lt;/a&gt;). &lt;/p&gt;

&lt;p&gt;Here is a look at the technical architecture and the problems solved along the way.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Engineering Problem: Fragile Data Ingestion
&lt;/h2&gt;

&lt;p&gt;Standard spreadsheet software often crashes, throws cryptic error codes, or silently corrupts data when encountering a poorly formatted CSV. Writing custom Python or JavaScript parsing scripts for every unique file format is a massive time sink. &lt;/p&gt;

&lt;p&gt;I needed a tool that could:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Safely inspect and ingest malformed data structures.&lt;/li&gt;
&lt;li&gt;Provide a lightning-fast web interface to diagnose structure issues.&lt;/li&gt;
&lt;li&gt;Output clean, standardized data ready for downstream applications.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Technical Stack &amp;amp; Implementation
&lt;/h2&gt;

&lt;p&gt;To keep the application fast and reliable, I focused on a modern web stack:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frontend &amp;amp; Processing:&lt;/strong&gt; Built for instant feedback loops, allowing users to drop files and see immediate structural diagnostics without heavy server overhead.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deployment Pipeline:&lt;/strong&gt; Automated builds and deployments hosted seamlessly via Vercel to ensure zero downtime and fast global delivery.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Licensing &amp;amp; Access Control:&lt;/strong&gt; Integrated commercial access tiers using Freemius to manage credit passes and secure payments effortlessly.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Key Lessons Learned
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fail Gracefully:&lt;/strong&gt; When dealing with corrupted user data, error handling has to be bulletproof. Clear feedback on &lt;em&gt;why&lt;/em&gt; a row failed saves hours of debugging.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Frictionless UX Wins:&lt;/strong&gt; Developers and analysts don't want a complex dashboard just to fix a spreadsheet. Keeping the core tool to a streamlined "upload, fix, export" loop makes it infinitely more usable.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Have you built custom tooling to handle messy data ingestion in your own apps? How do you approach data sanitization? Let me know in the comments below!&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>softwaredevelopment</category>
      <category>tools</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
