01 Current post
Lead, Information Systems and Knowledge Management
Fraser Health Authority · August 2024 to present · Surrey, BC
Client Partner / software development, December 2022 to August 2024
Twelve-plus years building software, net of a 2021 to 2022 parenting break
Several weeks a year I cover for my manager. I interview and recommend who we hire.
I help keep 15-plus apps and systems in production. Power Apps, .NET, Power Automate, SSIS, SSRS, automations, and scripts. I still write production code. When something breaks, I jump in or coordinate a fix with the developers on it. I own several projects end to end from spec to production. I work alongside data analysts and business analysts.
How the team actually works
I pair with developers. I do not dismiss odd behaviour. We find the root cause. I advise and pair with developers on the team. I recommend how we manage code, in reviews and in pairing. I coordinate our knowledge-sharing sessions. I walked the team through a plain-English HTML page of our AI workflow so colleagues can run it without me.
I make build-versus-defer calls against client need, security risk, and capacity. Current concurrent load includes two automations, an HR web app with data analysts and one developer, and on-prem web-app and database server migrations to Azure. I work with technical architects. Privacy and Security work runs in parallel.
I treat Privacy and Security assessment questions as requirements for new apps, so they are built to those rules from the start, not patched after review. I advise on Power Platform licensing. A model-driven Dataverse app I built is in the premium-licence class for a smaller audience. A separate SharePoint-backed app I helped deliver is for 500-plus users who do not need premium licences.
02 Shipped systems
AI delivery pipeline
I designed a pipeline that turns Teams meeting transcripts into documented requirements and Azure DevOps work items through MCP. Security and privacy go into those docs from the start. User-flow mock-ups are produced with AI prompts and iterated with the client until they are satisfied. GitHub Copilot implements the work items. I still scan the files, the pull requests, and the work-item updates. Another AI Agent in a fresh session does a code-review pass, and sometimes more than one. I ask it to check security and privacy vulnerabilities as well. Work items update through MCP as the code lands.
Each project keeps a running log. Meeting notes fold into it through reusable prompts. A scheduled daily prompt in Microsoft 365 Copilot tracks work completed and next steps. A single prompt sets up a new project folder and pulls in a reusable workflow repo. Privacy and security questions have templates. Skills fill those templates from project requirements and code. A person still reviews the answers. Word docs go to governance, the team, and clients. Optional database DDL when the project needs the data structure.
When GitHub Copilot costs jumped, I moved project management and documentation onto per-seat Microsoft 365 Copilot Premium and kept GitHub Copilot for coding only. When a script is more reliable than a model, I use the script.
Specialty training tracker
I replaced MS Access and spreadsheet tracking with a governed Dataverse model-driven Power App. Several HR teams had been sharing one spreadsheet to coordinate nurses in specialty training. The app was built in phases. It pulls data from the talent system and other HR databases. Seats, cohorts, learner progress, automated emails to managers and learners.
A business analyst wrote the initial wireframes. I wrote the data model and the operational guide, implemented from those specs, then took full ownership from design through shipping. Later phases added approvals and handoffs so more of the training process runs in the same app.
Career-access program tracker
I owned a program-progress app end to end. Data model, UI, and UX. It tracks participants through a provincial health-career program. It pulls from the talent system and other HR databases. It automates import of Fraser Health employees in the program. It also loads a Ministry of Health file of people who are not Fraser Health employees. Hours of manual entry became a governed import through restricted SharePoint, Power Automate, and Dataverse. I prepared the Privacy Impact Assessment. The load went live after Privacy and Security review.
Workforce scheduler cutover
I coordinated several apps off a legacy scheduler onto new workforce data sources. The web apps still used the old system's data. We changed them to use the new system's data and structure. I personally updated the call-out tracker, which records vacancies such as illness. Reusable patterns. Old and new data sources at once during a gradual cutover of departments.
I assigned developer ownership, ran weekly scrums, managed cross-application dependencies, and reported percent-complete to the larger workforce project team. Requirements, testing, deploy. We shipped in phases so workforce operations stayed up.
Statutory holiday pay approvals
I built a statutory-holiday pay approval system end to end. SSRS reports for manager review and approval. SQL for validation and KPI tracking. Automated email. One hundred-plus bi-weekly emails to managers who still have items pending. It became the standard process. It replaced a spreadsheet.
Mentor pairing app
Built by two developers, including me, and a business analyst. Mentor and mentee pairing and progress tracking. Privacy review set the requirements, and they had to pass before anyone could use it. Access was provisioned only after that sign-off.
Data lineage
Team members used to ask which source fills a given SQL table. The answers lived in SSIS files. I first searched those files with GitHub Copilot, then built a Python web app over SSIS packages and table metadata so the team can find lineage themselves.
Manager-delegate coverage
I improved delegate logic so manager and delegate relationships in the vendor employee portal matched how the business actually assigns coverage. I sit in vendor sessions for the workforce scheduler and the talent system as a technical lead.
Payroll-critical incident
When a payroll-critical Microsoft service failed, I coordinated the response across ten-plus people in security, infrastructure, cloud, database, and HR tech. I kept one Microsoft ticket so the work did not fragment, translated their requests into internal steps, validated the fixes, and wrote the knowledge-base article for next time.
Staff conversation dates
SSRS report for managers recording staff conversations. The system defaulted to today. I added a calendar override so the true discussion date is what gets reported.
Automations that stay up
Those 15-plus apps and systems include 24 robotic processes that update 10,000-plus employee schedules five times a week. They write extra-pay lines into a legacy scheduler through the web UI, because there is no API.
04 Earlier
Interface 48 Systems, Software Developer
April 2015 to June 2021 · Vancouver, BC
React and .NET in a team of three for a bulk shipping terminal. Workflow for landing trains and loading cargo, including real-time visualization of material and data that populated operator timesheets. Train-landing simulator on Leaflet and OpenStreetMap so superintendents could train foremen. Project-budgeting app for 100-plus projects. Winning proposals with mock-ups. DriveBC highway cameras. Secondary-school credit transfer app. Daily scrum. Test plans. User manuals at rollout.
Career break, full-time parenting
June 2021 to December 2022 · Vancouver, BC
SAP, Assembly Project Lead
March 2012 to March 2015 · Vancouver, BC
I coordinated software releases across 100-plus mobile and on-premise applications. I developed release processes for new build environments (Git, TFS, iOS, Android) and ran continuous-improvement work across those teams. Junior build automation intern immediately before this role, January to March 2012, building internal tools to visualize build issues and notify the people who needed to know.
Simon Fraser University, Research Associate
September 2009 to December 2011 · Surrey, BC
I worked on CZSaw's scripting engine, which enables replay of a user's analysis of unstructured text. Our team received two IEEE VAST 2010 Challenge awards. I presented and demonstrated CZSaw to industry and research personnel.
PBA Engineering, Junior .NET Developer
January 2009 to June 2009 · Vancouver, BC
Web control system for emergency SMS to West Coast Express passengers. ASP.NET, SQL Server, REST. Requirements, design, implementation, testing, and documentation with other contractors.