James Hansen
Canada (Metro Vancouver)
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. In my current role I work 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.
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.”
Skills
Current Technical Skills
TypeScript
Typed JavaScript across large front-end and full-stack applications, keeping components, state, and API integration maintainable as a codebase grows.
Strong typing with interfaces and generics to catch errors at compile time and keep refactors safe.
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.
Backend Systems, Docker & Cloud
Design and development of containerized microservice architectures with Docker and docker-compose, fronted by a reverse proxy, using Python web frameworks (Flask and Django) served under gunicorn.
Integration across service boundaries and async workflows: Redis caching, Celery background workers and scheduled jobs, and OpenSearch for search and log analytics, including hardening service-to-service permission checks and building REST APIs that span multiple services.
Real-time media infrastructure, including WebRTC video streaming with a RabbitMQ/STOMP signaling layer and TURN relays for NAT traversal.
Visual C# .NET
Commercial .NET applications and DLLs, spanning standalone WinForms and WPF desktop apps to .NET MVC web platforms.
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.
C & C++
Native C and C++ development, including camera-side firmware and daemons.
Video capture and computer-vision modules built with OpenCV.
PHP & Javascript
Commercial websites and web applications with PHP and Laravel: server-side application logic, routing, and database-backed features.
Front-end interactivity with JavaScript, jQuery, and Node.js.
Angular
Single-page applications in Angular and TypeScript, including data-heavy dashboards and charting and visualization UIs.
Component-based architecture with reactive data flows, API integration, and attention to performance in large views.
Relational Databases (MySQL & SQL Server)
Data modelling and schema design across MySQL and Microsoft SQL Server, hand-written SQL and T-SQL scripts, and ORM-based access with Entity Framework (.NET) and SQLAlchemy (Python).
Managed schema evolution in production through versioned Alembic migrations, and designed a database, caching layer, and API for an access-control system.
Built analytics queries over large metadata datasets, with attention to indexing and query performance.
AI & Automation
AI-Assisted Development
Daily use of Claude Code (on non-sensitive code) and other coding agents with Local/Cloud LLMs to speed delivery, 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.
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.
Analytical Skills
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
Volunteer civic-technology and open-data work in Langley, BC.
Langley Urbanist Society

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
Council Meeting Summaries
The Telraam Traffic Counter

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.
More
Public Policy
Master of Arts in Public Policy
I completed an MA in Public Policy online between April 2025 and April 2026, studying alongside full-time work at Fortinet. I took it because I was genuinely curious about how effective policies, both governmental and within companies, can be formulated, bridging the gap between my political interests in the community and my career.
I completed twelve modules:
- Theories of Public Policy
- Program Design and Evaluation
- Statistical Methods and Data Analysis
- Qualitative Analysis and Survey Design
- Microeconomics
- Macroeconomics
- Public Finance
- Law, Governance and Public Policy
- Democratic Governance and Policymaking
- Complexity and Public Policy
- International Organizations and Policy Regimes
- Urbanization and Development
Auditing, visibility, observability, governance - these terms are used in Enterprise level Software Engineering, but directly parallel theories and frameworks in Public Policy.
Many developers have ran into concepts like Complexity Theory, which applies to policy and systems architecture, particularly with systems at scale. A good example I have ran into is a bug only appeared when hundreds of recorders were connected to the desktop app, and identifying the cause across hundreds of lines of logging and code was a huge challenge.
Developers can follow best practices for complex systems - a targeted approach, making small changes while making observations. Scholars like Jane Jacobs referenced this when it came to city planning and the same applies to development.
The logical framework used in Program Design is a matrix of goals, outcomes, outputs and activities, and for each one an indicator, a means of verification, and the assumptions and risks it depends on. No objective is allowed to exist without a stated way of knowing whether it was met.
The course also focused on theory of change and theory of action. Theory of change states what you believe will happen and why: if we do this, then that follows, leading to this outcome, because of these assumptions. A theory of action is the delivery model that carries it out. This toolkit in development process
The statistics and qualitative methods modules covered the evidence underneath all of that: sampling, significance, regression, coding interview data, and how to write a survey question that does not lead the respondent. Most of it applies directly to reading telemetry and running user research without manufacturing the result you expected.
The thread through all of it is that a system is not only its code. Good systems and good public policy are both centred around people, human nature, and what works effectively.
Music
I took piano lessons when I was younger, and in High School I became very devoted to musical composition, so much so that after completing school I went into Music Technology, learning about song writing, production, mixing, recording and more.
After completing a BTEC in Music Technology, I pursued and completed a BMus in Music Composition at Kingston University in London.
My style ranges from orchestral soundtrack writing to electronic music production. I produced the soundtrack for the web cartoon "Evil Josh and Billy" and continue to make music, though less frequently today.

These tracks are licensed under Creative Commons Attribution-NonCommercial 4.0. Use them in non-commercial projects with attribution, remix or adapt them however you like.
Education
Jindal School of Public Policy
Kingston University
Gloucester College of Arts and Technology
Weston College
Broadoak Community School
Work History
Fortinet
Inchol Solutions

“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.”

“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.”

“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.”
Zoombucks
CompuMAX Systems Corporation
Projects
Open-Source Projects




Smaller Tools

Commercial Projects




Contact & Bio
Get In Touch
Send me a message and I will get back to you. You can also find me on GitHub and LinkedIn.
About Me

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 getting my first PC in 1998 with dialup internet access, I installed the Netscape Suite, which included Netscape Composer. This was my first introduction to making websites using HTML. I made a few websites for programs I had made on the Acorn, as well as about my favourite video game, Sonic the Hedgehog.

This interest in programming and web development continued, particularly as I became involved in online communities. Even while studying Music Composition at university in London, I still kept tinkering with PHP websites and making small utilities, often based around modding video games.
Shortly after graduating I moved to Canada, and I began my first job making websites at CompuMAX, using my knowledge of web development. Working there was a fantastic learning opportunity as I was able to sign the company up to the BizSpark program, and get Visual Studio for free, allowing me to learn C# to work on software.
After several years working in various roles, I landed at Fortinet. 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.
Working at Fortinet has been a wonderful experience, with a great product manager and team. I've had the chance to learn the WPF framework while working in C#, to working on a cloud-based system, to more recently experimenting with AI technologies like Frigate.
Following the Covid pandemic I found myself more interested in policy and decision making, especially as I became more involved in community projects. Additionally, the work I was doing sat at the overlap of analytics, privacy, and regulation.
This 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. The economics module in particular changed how I view the world, while the Program Design module gave me useful tools for project planning.
Alongside work I have built a number of open-source projects, a webcam privacy filter, a Laravel booking platform, a CRT-emulating media player, and a voice agent for my kitchen. You can see the work on my projects page and on GitHub.

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.