Practical Python, websites
and writing for small teams.
I'm Kirk Davies, a freelancer in Ottawa. I build scripts, scrapers, automations and simple websites, and I write clear docs and copy.
See working samplesServices
Python scripts
Small, readable tools that do one job well.
Web scrapers
Collect public data into CSV or spreadsheets, respecting site rules.
Small websites
Fast, responsive pages for a business, event or project.
Automations
Invoices, reports, file renaming, moving data between tools.
Data cleanup
De-duplicate, standardize and validate messy spreadsheets.
Writing
Clear explainers, docs and web copy.
Working samples
Real, runnable projects built for this portfolio (not client work). Each page shows the output and full source.

CSV Contact Cleanup
PythonData cleanupStandardizes names, emails, phones and dates; drops blank and duplicate rows; flags anything a person should check, including ambiguous dates.
View project & code →
Polite Web Scraper
PythonScrapingCollects 100 book listings (title, price, rating, stock) from books.toscrape.com, a sandbox site made for scraping practice, with a delay between requests.
View project & code →
Data Report with Charts
PythonReportingTurns the scraper's CSV into a one-page HTML report: summary stats, a table and two charts.
View project & code →
Invoice PDF Generator
PythonAutomationBuilds a clean PDF invoice, HST included, from a simple JSON file. Sample data only.
View project & code →
Small Business Landing Page
HTML/CSSWebsitesA responsive single-file landing page for a fictional bakery: hero, feature cards and a demo signup form. No frameworks.
View project & code →
Writing Sample: Explainer Article
WritingA plain-language article for small business owners on which chores are worth automating.
View project & code →
Excel Report Automation
PythonExcel/SheetsTurns a raw sales CSV into a formatted Excel workbook: styled data sheet, live-formula summary by region, and a chart. Fictional data.
View project & code →
PDF to CSV Extraction
PythonData extractionPulls line items out of PDF statements (including a two-page one) into a single CSV, and checks each PDF's printed total against the extracted rows.
View project & code →
Shopify Product CSV Importer
PythonE-commerceCleans a messy supplier sheet into Shopify's product-import CSV format, grouping size variants and sending bad rows to a rejects file instead of guessing.
View project & code →
Weekly Report Email Automation
PythonAutomationSummarizes a week of orders (revenue, change vs last week, refunds, top products) and writes a ready-to-review email file with the CSV attached. Sends nothing.
View project & code →How I work
1. Scope
We agree on what "done" looks like, in writing.
2. Build & review
AI-assisted drafting, then human testing and review.
3. Hand-off
Readable code, plain-English instructions, and a revision round.
Contact
Got a repetitive task or a small site in mind? Contact details coming soon.