Welcome

I’m James Hansen, a software developer near Vancouver with over fifteen years of professional experience in data analytics, video processing, cloud platforms and database systems, most of it in security software. At Fortinet I work full-stack across a networked-security product line, from a C#/WPF desktop client and C recorder firmware to a Docker-based, multi-region cloud platform with a Python/Flask backend and an Angular/TypeScript frontend. I hold a Master of Arts in Public Policy, with training in statistics, program evaluation and data governance.

Projects

All projects →
“A dedicated, experienced software professional… friendly and kind to anyone in the group, which makes him a great team leader. I learned a lot from James. Definitely would want to work with him again.”
Sean L. Senior Software Developer, former colleague More on Work History →
Work History 15+ years, security & cloud Skills The stack, data & AI Community Civic tech in Langley About My background & story
Contact

Current Technical Skills

TypeScript

Typed JavaScript for building robust, maintainable front-end and full-stack web applications.

Python

Data analysis, automation, and backend services using Pandas, NumPy, and Flask.

Strong data-structures and algorithms foundation: hash maps, sets, heaps (heapq), stacks, linked lists and 2D grids; two-pointer, sliding-window, greedy and hashing techniques.

Comfortable designing custom data structures from scratch (O(1) min-stack, randomized set, hash set with collision buckets) with attention to time/space complexity and edge cases.

Docker & Cloud

Containerized, Docker-based cloud services with Node.js, Flask, and nginx.

Visual C# .NET

Commercial .NET applications and DLLs, including WPF desktop apps.

Object-oriented design with classes, interfaces and inheritance; data querying and transformation with LINQ.

Database modelling and data access with Entity Framework; dependency injection with Microsoft Unity for testable, loosely-coupled services.

Visual C++

Native development including video capture and computer vision work with OpenCV.

PHP & Javascript

Commercial websites and web-based applications, with Laravel, jQuery and Node.js.

Angular

Single-page web applications built with the Angular framework.

MySQL & Microsoft SQL Server

Database design and queries across MySQL and MSSQL, with experience in MySQL and T-SQL commands and scripts.

AI & Automation

AI-Assisted Development

Daily use of Claude Code (on non-sensitive code) to speed delivery, always with review and oversight, so I spend more time on architecture and less on boilerplate.

Local & Cloud LLMs

Self-hosted and cloud-hosted language models set up for private AI workflows, including the small model behind the "Ask AI" feature on this site.

AI Workflows & Agents

Automated document and transcript summaries with the Google Gemini API, including the Langley council meeting summaries, and voice agents wired to real systems, as in my Grocy voice agent.

Computer Vision (OpenCV)

Object and face detection video-processing modules built with OpenCV and detection models, including a privacy filter that blurs and erases detected people (see VeBeGe).

Analytical Skills

MA, Public Policy

A Master of Arts in Public Policy completed alongside full-time work, sharpening the privacy, data-governance and compliance side of building software, with training in statistics, program evaluation, public finance and law.

Data Analysis

Statistical methods, regression, survey design, and descriptive analytics.

Data Engineering & Visualization

Reproducible analysis pipelines, dashboard development, and geospatial analysis.

Program Evaluation

Theory of change, logic models, indicator development, and formative and summative evaluation.

Qualitative Research

Interview design, thematic analysis, and mixed-methods integration.

Public Finance & Microeconomics

Applied to municipal and policy contexts.

Technical & Analytical Writing

Policy briefs, evaluation reports, and stakeholder communication.

Legacy Skills

Borland/Codegear Delphi

Developed own project and limited commercial programs in Delphi.

GrafX Visual Objects

Maintained and ported functions from legacy commercial applications written in GrafX Visual Objects, which uses similar syntax to Delphi.

Scripting

Familiar with various scripting languages including BASH scripting on Linux, and LUA and PAWN game scripting languages.

Community & Giving Back

Langley Urbanist Society

Leading the annual Langley Jane's Walk, 2026 (Photo Credit: Jonny Ray)
Leading the annual Langley Jane's Walk, 2026 (Photo Credit: Jonny Ray)

Giving back to my community matters to me. Outside of work I co-founded and direct the Langley Urbanist Society, a registered British Columbia non-profit, where I build civic-technology tools that make public information open and accessible, the same open-knowledge spirit I value in software. I lead the technical side alongside the other directors: the website, email newsletters, automation scripts, and analytical tools.

I also lead the annual Jane's Walk in Langley, a free community walking tour exploring how our neighbourhoods work and how they could work better.

This runs alongside my engineering career rather than apart from it. The projects are a chance to keep practising my craft on real-world problems, particularly data analysis and visualization, in service of my own community.

Langley Urbanist Society Projects

Value per Acre

Value per Acre

A fiscal analysis tool that examines municipal land productivity and tax revenue patterns, mapping how much value each parcel of land generates per acre. Built for the Langley Urbanist Society to support evidence-based conversations about land use and municipal finance. Programmed in Python, it outputs an interactive HTML page that uses Leaflet and JavaScript; clicking any property reveals detailed information about it.
The live demo is the Township of Langley map, generated from the project's _GenerateLangleyMap.bat on GitHub and based on 2024 property data.
Built withPythonJavaScript

Council Meeting Summaries

Automated, plain-language summaries of Township and City of Langley council meetings, generated from the official agendas and minutes with the Google Gemini API so residents can follow local decisions without reading hundreds of pages. Published on the Langley Urbanist Society website and refreshed as new meetings are posted.
A Community Data Project

The Telraam Traffic Counter

Our Telraam counter, the first installed in British Columbia
Our Telraam counter, the first installed in British Columbia

One project I am especially fond of is a Telraam traffic counter: a small device that mounts inside a window and automatically counts the pedestrians, cyclists, cars, and larger vehicles passing by, publishing the totals as open data anyone can view.

It began with a simple question, whether removing the gates on a local trail would change how many people walked and cycled there. Counting by hand was not practical, so we ran a fundraiser, the community covered the cost within a day, and after some door-knocking a resident with a clear view offered to host it. It now runs from a weatherproof box beside the trail, the first Telraam installed in British Columbia, with live counts anyone can follow over time.

Fortinet

Fortinet

June 2017 – Present (Burnaby, BC · Hybrid)
Full-Stack Developer
I joined as the fourth member of the FortiCentral developer team, the C#/WPF client for managing networked security cameras and recorders, brought on to work directly with the Product Manager on the overall user experience of the application.
FortiCentral & FortiRecorder
- Built and improved features across the client, including a 3D floorplan editor, a configurable dashboard widget engine, a theming engine with a visual theme editor, and a video privacy filter.
- Added SSL certificate-change detection to warn operators about potential man-in-the-middle attacks on managed devices.
- Worked with the OpenCV library on facial recognition and object detection algorithms.
- Worked on the FortiRecorder firmware in C, adding API endpoints consumed by FortiCentral.
FortiCamera Cloud
- Joined the Docker-based, multi-region cloud video platform in 2024 alongside the Ottawa development team, collaborating daily across the time-zone offset.
- Developed the analytics feature within the platform team, from a Python/Flask backend serving chart data to an Angular/TypeScript frontend presenting occupancy, footfall, demographics, heatmaps, path overlays, and data exports.
Privacy & Data Governance
- Worked across the stack on privacy-sensitive detection and video data, balancing technical capability with data governance and data-residency considerations.
Inchol Solutions

Inchol Solutions

February 2015 – June 2017 (Coquitlam, BC)
Tech Lead, .NET Software Developer
- Worked directly with the CEO on the flagship products DanceCompGenie and CheerCompGenie, C# ASP.NET applications for registering, scheduling, and scoring dance and cheer competitions.
- Selected Angular for the CheerCompGenie frontend and built a complete registration builder: multiple teams and athletes per registration with no page refreshes, a framework continued across the rest of the application including the admin panel, backed by MSSQL.
- Worked with DirectShow and Media Foundation for video capture software.
- Promoted to Tech Lead: delegated tasks, reviewed code and approaches, and was directly involved in hiring.
What coworkers say
Sean L.
“James is a dedicated, experienced, software professional with vast experience in all aspects of software engineering. He is friendly and kind to anyone in the group which makes him a great team leader. I learned a lot of things from James. Definitely would want to work with him again! Highly Recommended.”
Sean L.Senior Software Developer
Viji Alagappan
“James is very passionate and has great vision for his work. His focus keeps everything moving smoothly, he makes sure all the deadlines are met, and working with him in the same Project as a QA, am sure that whatever project he is working on meets the highest standards.”
Viji AlagappanSoftware QA Tester at Inchol Solutions
Ali Mardani
“I found James to be creative in terms of software development. He can see the whole picture, understand interrelation of system components and make decisions based on every detail. James is also an independent and customer focused strategist. He always comes up with long term solutions for small problems to avoid any repetitious reworking.”
Ali MardaniLead .Net Developer
Zoombucks

Zoombucks

August 2012 – February 2015 (Surrey, BC · Remote)
Web Developer
- Worked with the CEO and CTO of this online-rewards startup, developing the PHP site and optimizing it for thousands of daily visitors.
- Built custom PHP reports monitoring lead tracking, usage, performance, and profitability, with user profiles and report data managed in MySQL.
- Integrated with third-party APIs such as Facebook.
CompuMAX Systems Corporation

CompuMAX Systems Corporation

September 2009 – July 2012 (Richmond, BC)
Software Developer
- Hired to build the company website promoting its accounting software, then became lead developer of the flagship product, Multi Express Business & Accounting.
- Programmed A/R, A/P, General Ledger, Inventory, and Reporting components in the Visual Objects language, working directly with clients on bug fixes and feature improvements.
- Began migrating components to C#, integrated into the Visual Objects codebase as DLLs, and built a Consignment Manager end to end in C#.

← All projects

VeBeGe

Real-time webcam privacy filter
Built with.NET C#OpenCV

A webcam privacy filter for the remote-work era. When you appear on camera in a shared space, from a coffee shop to a living room, other people can end up on video without having consented, which matters even more when the meeting is recorded. Rather than blurring the whole background, VeBeGe uses face detection to selectively detect and blur and even erase other people while keeping your surroundings visible. The processed feed is relayed to other applications through a virtual webcam.

Built as a Visual Studio 2019 C++ and C# solution, it is an experiment in applying AI to privacy and consent in a positive, user-controlled way, with all facial data processed and retained locally.

Demo

Get In Touch

Send me a message and I will get back to you. I’m always glad to hear about interesting work and problems worth solving. You can also find me on GitHub and LinkedIn.

About Me

An Acorn Archimedes computer at a BBC BASIC prompt
Acorn Archimedes

I was born in the mid-1980s and grew up during the peak era of accessible programming on personal computers, when switching a machine on dropped you straight into a BASIC prompt. Being born in the UK, my first language was BBC BASIC, which I started writing at eight years old on the Acorn Archimedes.

When the World Wide Web arrived I moved into HTML and CSS, and later PHP. I built increasingly complex PHP websites for various passion projects, and that hands-on experimentation became the foundation of everything that followed.

Sheet music and a composition workspace
The composition workspace

I put programming on pause to study Music Composition at university in London. After graduating I returned to it properly, turning years of self-taught experience into a career in software development.

Over the next fifteen years that career centred on security software, building analytics dashboards, customizable charting tools, camera metadata and detection analytics, access control systems, and Docker-based cloud video infrastructure. You can see some of this in my software projects and work history.

Following the Covid pandemic I found myself drawn to the policy and decision making around technology and governance. The work I was doing sat at the overlap of analytics, privacy, and regulation, and it raised questions I could not stop thinking about, about how detection and video data should be handled, what privacy protections need to be designed in from the start, and how regulation shapes what these products can and cannot do. Those questions led me to complete a Master of Arts in Public Policy online, studying alongside full-time work, with training in statistics, program evaluation, public finance, economics, governance, and law.

Outside of work I volunteer on civic-technology and open-data projects in my local community, applying the same engineering and analytical skills I use in software. You can read about that work on my Community page.

A Raspberry Pi 400 keyboard computer set up for the family
The family Raspberry Pi 400

My life has benefitted from the belief that computing should be open and within everyone's reach. I like to think I'm keeping that tradition alive with my love of Raspberry Pi machines, which are sort of a spiritual successor to those old BBC Micros. While my son likes it mainly for Minecraft right now, it's simple, friendly nature invites the whole family to tinker and experiment with computing.