Desktop Applications
Full GUI applications built with tkinter — data entry forms, dashboards, reporting tools, and workflow managers. Designed for end users who need something that just works without any technical setup.
Python Developer
Freelance Python Developer & Business Automation Specialist
I build Python applications that replace manual workflows — invoicing systems, monitoring tools, document automation, and API integrations. Self-taught, production-deployed, and built to last.
I’ve been writing Python for roughly four years — entirely self-taught, driven by real problems that needed real solutions. Everything I’ve built has been deployed and used in a production environment, from solar farm control centers monitoring a 42-site, ~250 MW portfolio to a construction company’s project management workflow.
My focus is on practical automation: desktop applications with GUIs, REST API integrations, database-backed tools, and document generation pipelines. I care about building software that non-technical users can actually use without friction.
4 yr
Python Development
🐍
Intermediate Python
GUI
Desktop App Dev
API
REST Integration
Full GUI applications built with tkinter — data entry forms, dashboards, reporting tools, and workflow managers. Designed for end users who need something that just works without any technical setup.
Automated generation of Word documents, Excel spreadsheets, and PDF exports from templates and database records. Includes printing workflows and file naming conventions using regex for consistent output.
Integrating third-party APIs and connecting disparate data systems. Experience with REST APIs, Google Sheets API, and bridging legacy databases (Access, SQL Server) with modern tooling and cloud services.
Replacing manual, error-prone workflows with reliable automated systems. From scheduled data syncs to triggered notifications to batch processing — identifying the bottleneck and eliminating it.
A full-featured Python desktop application built for CCC to replace a fragmented manual workflow. The platform handles the complete document lifecycle for a construction project management office: from purchase orders and invoices through to change orders and subcontracts — with automated generation, printing, and filing.
Python application integrating the Also Energies API with a SQL Server database. Provides real-time solar farm performance data and sends tailored automated alerts to O&M field teams based on contract-specific thresholds — cutting daily Control Center analysis labor from 6 hours to 1 hour.
Rewrote the company’s legacy Excel/VBA analysis tool in Python. Connects directly to Google Sheets via API for live collaborative reporting — cutting the full multi-site reporting cycle from 8–16 hours to 30–60 minutes.
A tkinter desktop GUI that pulls and displays real-time wind speed and direction from weather APIs for solar farm sites. Later extended into a weather-aware daily scheduling planner — cutting scheduling-check time from about an hour to under 5 minutes.
A Python bridge keeping a legacy Microsoft Access database synchronised with a Google Sheet, giving a customer a real-time view of their data and fully automating a Control Center task that previously took 30 minutes per update.
An automated pipeline for a company work-order system: a Gmail API integration retrieves a scheduled Excel export, Python re-analyzes and re-saves the data, and a scheduled job statically regenerates a searchable HTML dashboard with embedded charts — covering roughly 10,000 work orders/year and cutting administrative staffing for work-order tracking from 3 people to 1, a 66% reduction.
A config-driven Python system (dataclasses defining per-plant parameters) covering 7 solar sites, pulling from an Access database via pyodbc and generating branded Excel forecast reports distributed by automated email.
Additional scripts, experiments, and open-source tools on my GitHub profile.
View GitHub →Got a workflow that’s still running on Excel and manual copy-paste? A database that needs a front-end? A report that should generate itself? Let’s talk.