00Vancouver, BC
Hi, I'm David.
I build software, blog about it, and deploy tools for investing.
Software developer with eight years across startups, insurance, construction data and the public service. I like data pipelines, AI-assisted tools and interfaces that make complicated work feel simple.
> initializing environment...
> loading core_skills.sh
[OK] Advanced LLM usage & prompting
[OK] Data pipelines, OCR & automation
[OK] Front-end architecture
[OK] Robust back-end systems
> ready
01Foundations2018 – 2021
Blueprints first.
Software Developer · Stealth Startup
Computer engineering at UVic, then a fintech startup building mortgage questionnaires, integrations and mobile apps.
- B.Eng. Computer Engineering, University of Victoria (class of 2019), with industry co-op terms.
- Built a branching online mortgage questionnaire in React and Next.js.
- Integrated third-party REST APIs, extended a Laravel API and wrote Postgres migrations.
- Shipped React Native updates and tested Node.js services with Postman and Jest.
02Marketplace2021 – 2023
Search that moves.
Software Engineer · carSHAiR · Remote, BC
Led the web team of a peer-to-peer car sharing marketplace, from search and maps to booking flows.
- Rebuilt map-based search in Next.js and TypeScript with URL state and modern data fetching.
- Modelled booking and trip-extension flows as XState state machines.
- Built REST endpoints in TypeScript and shipped React Native features for iOS and Android.
- Reviewed pull requests and coordinated releases as web team lead.
03Construction data2023 – present
Turning permits into data.
Software Engineer · Yellowsheet Construction Data · Remote, BC
Modernizing a construction-intelligence platform and automating how permits and tenders become searchable listings.
- Built a Python and FastAPI ingestion service for 20+ BC municipalities: pdfplumber parsers, OCRmyPDF on Cloud Run, and Gemini for the hardest reports.
- Automated tender and permit collection from 20+ public sources on scheduled GitHub Actions, with AI project-type classification and alerts.
- Modernized a legacy PHP codebase with Docker, centralized logging, Playwright tests and Stripe billing.
- Added SSO and data sync with a companion permits app, plus Typst-generated building-permit reports.
04Claims AI2024
Documents, unfolded.
Software Engineer · Royal Claims · Vancouver, BC
Built AI document analysis and internal tools for insurance claims.
- Integrated OpenAI to parse and analyze claim documents and pre-fill forms from email.
- Built claim forms, report generation with python-docx, and SOAP integrations with Zeep.
- Ran Django migrations and SQL Server analysis; deployed Azure Functions and Blob Storage.
05Public service2025 – present
Software for the public service.
Software Developer (IT-02) · Canada School of Public Service · Vancouver, BC
Building and modernizing internal tools, from Vue and Laravel apps to AI search and chat.
- Migrated Laravel + Vue 2 applications to Vue 3 and Element Plus, and upgraded a Quasar app to v2 with French search.
- Worked on a LangChain chatbot on Azure OpenAI and an Azure AI Search index of federal regulations.
- Ported a scraper to a C#/.NET API published through Azure API Management.
- Maintain Power Apps tools and keep dependencies and security fixes current with GitHub Copilot.
06Writing & tools556 posts
Hundreds of posts, one sky.
Each star is a post on this blog, grouped by topic. Hover or focus a topic to light up its constellation.
Latest posts
- Rebuilding FriendlyUser: A Three.js Homepage and a Starlight Blog
- Beyond the Whale: The Architecture, Trade-Offs, and Implementation of Post-Docker Container Frameworks
- Revolutionizing Web Performance: Using Gemini 3.1-Pro-Preview for AI-Generated SVGs
- Advanced Git - Cherry-picking, Merge Strategies, and Release Management
- Replicating Laravel's Crypt::decryptString Logic in Python
- AI Training Platforms Compared: Outlier vs. Appen vs. Aligner - Why the Newcomer Wins in 2025
Investing tools dli-invest
- halts_and_news trading halts & news to Discord
- fdrtt live transcription of YouTube livestreams
- conscrap Yahoo Finance & CEO.ca conversation scraper (C#)
- price-prediction Prophet forecasts on GitHub Pages
- cse_file_downloader SEDAR filings downloader
- earnings-ipos-stock-calendar earnings & IPO calendars
- stock_parser TSX ticker parser
- reccomendation-engine stock recommendation engine
- finreddit finance subreddit tracker (Go)
- stonk_updates periodic ticker updates to Discord
Projects
- LaTeX DiagramsDiagrams generated for university work and collected from around the internet.
- vuepress-theme-coolA starter theme for VuePress, originally named vuepress-theme-school.
- Flipp flyer parserScrapes grocery flyers to track deals.
- Financial news NLPNatural-language processing over financial news headlines.
07Contact
Let's build something.
Open to interesting problems in data, AI tooling and web development.
Skills
- Languages
- Python · PHP · TypeScript · JavaScript · C# · SQL · Go · Rust · Java · Kotlin · Dart · C++ · TeX
- Frontend
- Vue 3 · Quasar · React · Next.js · React Native · Flutter · Astro · Tailwind CSS · Sass
- Backend
- Laravel · FastAPI · Django · Flask · .NET Web API · Node.js · Spring Boot · REST & OpenAPI · SOAP
- AI & data
- Gemini · OpenAI / Azure OpenAI · LangChain · Azure AI Search · pandas · spaCy · NLTK · pdfplumber · OCRmyPDF · Streamlit
- Automation
- Browser automation · BeautifulSoup · GitHub Actions · Scheduled pipelines · Discord alerts
- Data stores
- MySQL / MariaDB · SQL Server · PostgreSQL · Cosmos DB · MongoDB · Elasticsearch
- Cloud & DevOps
- Azure · Google Cloud Run · AWS · Docker · IIS · Linux · Railway
- Testing
- pytest · Playwright · PHPUnit · Jest
- Low-code
- Power Apps · Microsoft Lists · Dataverse
- AI-assisted dev
- Claude Code · GitHub Copilot · Prompt engineering