GARY STARR
Systems Integration & Automation
SANITIZED — PORTFOLIO COPY
Drawing Set — Index Sheet

I connect the systems a business already owns, so people stop reconciling them by hand.

Over the past year I ran IT for a small distribution operation with no in-house dev team. Everything below shipped and runs in production — spreadsheets talking to accounting software, e-commerce catalogs staying in sync overnight, dashboards built because the stock ones didn't answer the actual question. Details below are genericized; the systems are real.

None of this came from a formal engineering background — it came from treating AI platforms as a working partner: pairing with them to design architecture, write and debug production code, and move from "we have a problem" to a shipped system far faster than doing it alone.

All company names, data, and domains have been removed or replaced with generic placeholders. Architecture, tooling, and approach are described as built.

SOURCE OF TRUTH SYNC / ETL MONITORING DASHBOARDS ALERTING API BRIDGE SCHEDULING DOWNSTREAM SYSTEMS
FIG. 0 — GENERALIZED SHAPE OF THE WORK ACROSS ALL SIX SHEETS BELOW
6
Production Systems Shipped
Nightly
Sync & Monitoring Cadence
0 → 1
Built Solo, AI-Assisted
Python
Primary Tool, By Choice
Sheets 01–06 / Detailed Drawings
SHEET 01 / 06

Multi-Channel Inventory & Catalog Sync

Spreadsheet source-of-truth → e-commerce storefront + accounting platform
ROLE: SOLE DEVELOPER
STATUS: IN PRODUCTION
Challenge
A single spreadsheet served as the master record for product data — pricing, stock levels, descriptions — but two downstream systems, an online storefront and an accounting platform, regularly drifted out of sync. That drift meant wrong prices online and hours of manual reconciliation every week.
Approach
Built a set of Python services that read the master sheet on a nightly schedule via a service account, diffed it against each downstream system's REST API, and pushed only what changed. Added a cached SKU-mapping layer to stay under API rate limits, a naming convention to distinguish sellable unit types, and automatic email reporting so a failed run surfaces immediately instead of quietly compounding.
Result
Manual copy-paste between systems went away. Pricing discrepancies dropped to near zero, and the business gained one predictable nightly checkpoint instead of ad hoc firefighting.
PythonREST APIsSheets APIcronSMTP alerting
MASTER SHEET STOREFRONT SYNC ACCOUNTING SYNC EMAIL REPORT ON FAILURE
SHEET 02 / 06

Competitive Price Intelligence Dashboard

Automated scraping → normalized dataset → internal dashboard
ROLE: SOLE DEVELOPER
STATUS: IN PRODUCTION
Challenge
Pricing decisions were being made blind to what competitors were charging, across several competitor storefronts that changed prices frequently and had no shared data source.
Approach
Wrote a scraper that checks a defined set of competitor product pages nightly, normalizes the pricing data into a common structure, and serves it through a lightweight internal Flask dashboard the team checks each morning.
Result
Turned an information gap into a daily, structured view — pricing decisions now start from data instead of guesswork.
PythonWeb scrapingFlaskcron
COMPETITOR A COMPETITOR B COMPETITOR C SCRAPE + NORMALIZE DASHBOARD
SHEET 03 / 06

Regulatory Recall Monitoring

Public recall feed → inventory cross-reference → automated alerting
ROLE: SOLE DEVELOPER
STATUS: IN PRODUCTION
Challenge
Regulatory recall notices for products in this industry are published continuously by a public database. Manually checking whether any recalled item was sitting in active inventory was slow, easy to skip, and carried real compliance risk.
Approach
Built an automated job that pulls the public recall feed on a schedule, cross-references it against current inventory records, and emails an alert to the relevant staff the moment a match is found.
Result
Converted a manual, easy-to-forget compliance check into an automatic daily safeguard with no ongoing effort required.
PythonPublic regulatory APIpandasSMTP alerting
PUBLIC RECALL FEED INVENTORY RECORDS MATCH CHECK ALERT SENT
SHEET 04 / 06

CRM Sales Analytics Dashboard

OAuth2 + REST integration → custom Flask reporting layer
ROLE: SOLE DEVELOPER
STATUS: IN PRODUCTION
Challenge
Sales data lived inside a CRM platform's native reporting tools, which were slow to load and didn't offer the specific breakdowns leadership actually wanted to check day to day.
Approach
Built a Flask dashboard that authenticates to the CRM via OAuth2, pulls data through its REST API, and renders exactly the views leadership asked for, refreshed on demand rather than waiting on a batch report.
Result
Faster, more relevant visibility into sales performance without depending on the CRM's native reporting.
PythonFlaskOAuth2REST API
CRM PLATFORM (OAuth2) FLASK DASHBOARD LEADERSHIP VIEW
SHEET 05 / 06

ERP Implementation & Custom App Development

Open-source ERP rollout with historical data migration and role-based customization
ROLE: LEAD IMPLEMENTER
STATUS: SHIPPED
Challenge
The business needed to move core operations onto an open-source ERP platform, carrying years of historical transaction data along, without stopping daily operations to do it.
Approach
Led the end-to-end implementation: cleaned and migrated historical sales, purchasing, and stock data; built several custom apps to adjust UI behavior, restrict workspace access by role, and apply custom pricing logic; and stood up a small print-bridge service so warehouse staff could trigger physical document printing directly from the ERP instead of a separate manual step.
Result
A working ERP environment carrying real historical data, appropriately scoped role access, and a warehouse printing workflow that no longer requires a manual detour.
Frappe / ERPNextPythonSQLFlaskCUPS
HISTORICAL DATA ROLE POLICIES PRINT BRIDGE ERP ENVIRONMENT
SHEET 06 / 06

Infrastructure & Ops Automation

Self-hosted backup, remote access, and device policy for a small AD-less environment
ROLE: SOLE ADMINISTRATOR
STATUS: IN PRODUCTION
Challenge
A small, Active-Directory-free mixed Windows/Linux environment needed reliable backups, secure remote access, and consistent device policy — without the cost or overhead of an enterprise management suite.
Approach
Set up scheduled container backups across the Linux servers, a WireGuard VPN with internal DNS resolution for remote access, browser policy management to keep working files on managed cloud storage instead of local drives, and standardized retention rules for compliance-relevant email and documents.
Result
A lean, self-hosted infrastructure stack covering backup, remote access, and policy enforcement — no enterprise licensing required.
DockerWireGuardLinuxChrome Browser Cloud MgmtRetention policy
LINUX HOSTS BACKUPS VPN + DNS POLICY LEAN, SELF-HOSTED