Steven Lawler

Full-stack web development, infrastructure, and applied systems

Vancouver, BCAustralian / Canadian citizen15+ years professional software developmentEmail: available on the website at the bottomWebsite: http://stevenlawler.nameGitHub: https://github.com/Slyke

Summary

I'm a full-stack software developer with 15+ years of full-time professional experience, primarily focused on web applications, APIs, infrastructure, and applied systems. Outside of client work, I build and operate my own self-hosted systems, including Docker/Kubernetes services, home automation, local AI tooling, camera/RTSP workflows, and hardware projects using Raspberry Pis, Arduinos, and other embedded devices. I'm also a licensed recreational drone pilot in Canada and the United States, with an interest in aerial photography, photogrammetry, and exploring cities, wilderness, and places I haven't been before.

Skills

Web Technologies

JSON, REST APIs, HTML5, CSS3, Node.js APIs (Express/Fastify), MySQL, PostgreSQL, SQLite, React / Redux, Svelte / SvelteKit, WebSockets, HTML Canvas, Sass / SCSS, Web Accessibility, Chart.js / Data Dashboards, OAuth / API Integrations, Redis / KeyDB

Programming Languages

JavaScript / Node.js, Bash / Shell Scripting, TypeScript, SQL, PHP, Python 3, C, C++

Infrastructure / DevOps

Git / GitFlow, Docker / Docker Compose, Linux, Windows, Kubernetes / k8s, NGINX / Reverse Proxy / TLS, DNS, Networking Protocols, Private Networking (ZeroTier / Tailscale / VPN), Testing (Unit, E2E, Vitest), Atlassian / Jira, AWS / VPS Hosting, Cloudflare Tunnel / Remote Access, iptables / Linux Networking

Applied Systems

Home Automation (Home Assistant, Matter, Thread, MQTT), IoT / Edge Devices (RPis, Zigbee, MCUs, I²C, SPI), Node-RED / Automation Flows, LLM Tooling (Ollama, OpenAI API, MCP), Camera / RTSP / NVR Systems, Computer Vision (OpenCV / MediaPipe), AI/ML Integration, Electronics Prototyping / Basic PCB Design, Drone Operations / Aerial Capture, Photogrammetry / 3D Workflows

Work Experience

Senior Software Engineer

  • Built and delivered SvelteKit, Node.js, and AWS applications for fleet management, operational prototypes, and billing/accounting workflows.
  • Developed Canada-wide fleet management tools for live and historical asset tracking, supporting operational visibility and day-to-day business processes.
  • Prototyped software solutions for AI-assisted image-label workflows, dashboards, integrations, and delivery approaches before production implementation.

Senior / Lead Software Engineer

  • Led delivery of web applications and prototypes for enterprise and high-profile clients, including national telecom projects serving thousands of customers per day.
  • Managed teams of 4-6 engineers from junior to senior levels across planning, implementation, code review, client communication, and developer support.
  • Shipped production launches for new and existing projects across React, Angular, Node.js, APIs, frontend architecture, and integration work.
  • Led rewrites and upgrades of legacy systems, reducing query times, improving maintainability, and lowering operating costs.
  • Translated business requirements from multiple external clients into technical requirements and delivery plans.
  • Built and researched prototypes involving hardware/software integration, BLE/iBeacon, Zigbee, machine learning, and human-machine interaction.

Co-Founder / Director / Software Engineer

  • Co-founded the startup as one of five founders and directors.
  • Designed, built, tested, and implemented a real-time BLE prototype localisation system for Gold Coast University Hospital.
  • Designed and implemented the client-server API and contributed heavily to server-side development.
  • Built Raspberry Pi-based client scanners on Linux using Python, C, C++, and PHP across scanner-system components.
  • Contributed to the product foundation and early delivery work that supported continued company projects.

WordPress / Small Business Websites

  • Delivered WordPress websites for small businesses around the Gold Coast while completing university.
  • Handled practical client work across site setup, content updates, theme and plugin configuration, hosting coordination, and general web support.

Onsite at Google Australia Pty Ltd / Team Lead

  • Managed full life-cycle inventory operations, from procurement through repair, asset destruction, and recycling.
  • Diagnosed, maintained, and repaired Tandberg and Google Video conferencing systems.
  • Coordinated local, regional, and global projects across multiple teams.
  • Promoted to Team Lead during the second year of the contract.
  • Performed system administration, imaging, preparation, and rollout across Windows, Linux, and macOS environments.

Projects

mqttctl / Mosquitto Control Plane

Built a local-first web control plane for running, securing, and troubleshooting Mosquitto without requiring shell access to the broker host.

  • Manage Mosquitto Dynamic Security clients, groups, roles, ACLs, default-role assignments, and effective permissions through a browser UI.
  • Provide raw broker-config pull/push, reload/restart workflows, snapshots, import previews, and append-only audit history with SHA-256 integrity metadata.
  • Include a live MQTT explorer for session-scoped connect, subscribe, publish, latest-topic tracking, and SSE-backed updates.
  • Split the system into a SvelteKit/TypeScript control plane and a Rust broker-agent for broker-local file, DynSec, and lifecycle operations.

Repository: https://github.com/Slyke/mqttctl

Technologies: SvelteKit, Svelte 5, TypeScript, Node.js, Rust, Axum, Mosquitto, MQTT, DynSec, SQLite, PostgreSQL, Docker, Kubernetes, OIDC, RBAC

IOTstack / Raspberry Pi IoT Docker Builder

Public open-source project · Primary maintainer · SensorsIot/IOTstack. A Raspberry Pi docker-compose builder for assembling and maintaining IoT and home automation stacks.

  • Rewrote and modernized the project from the abandoned gcgarner/IOTstack lineage while continuing it under the SensorsIot organization.
  • Build and maintain the menu-driven tooling, service templates, documentation, and compose-generation workflow for Dockerized Raspberry Pi deployments.
  • Support a broad catalog of IoT and home automation services including Home Assistant, Node-RED, Mosquitto, Zigbee2MQTT, Pi-hole, Nextcloud, Grafana, InfluxDB, WireGuard, and more.
  • Continue to submit and review contributor pull requests, triage issues, and steward a community project featured in multiple Andreas Spiess and maker-community videos.

Repository: https://github.com/SensorsIot/IOTstack

Technologies: Python, Bash, Docker, Docker Compose, Raspberry Pi, IoT, Home Automation, Home Assistant, Node-RED, Mosquitto, Zigbee2MQTT, MkDocs, YAML, GitHub Actions

Scene Ledger / Local AI Camera Intelligence

Building a local AI pipeline that turns IP camera observations into a structured text timeline of what changed in each scene.

  • Sample camera frames from local IP camera feeds and proxy services for low-frequency visual analysis.
  • Use local/cloud vision models to describe scene state, track continuity, and record object or activity changes over time.
  • Maintain a text-based scene ledger so events can be searched, summarized, compared, and eventually used for automation triggers.
  • Experiment with constrained prompts, previous-frame state, object consistency rules, and low-cost inference on local hardware.

Repository: https://github.com/Slyke/scene-ledger

Technologies: Node.js, Ollama, OpenAI API, OpenClaw, MCP-style tooling, Docker, RTSP, IP Cameras, SQLite, OpenCV, Home Assistant

Self-Hosted Infrastructure

Designed and operate a Proxmox-backed Kubernetes environment with a multimaster control plane on repaired and secondhand hardware for home automation, private networking, observability, CI/CD, media, and containerized services.

  • Run an Ubuntu Kubernetes cluster with a multimaster control plane and containerd workers inside Proxmox.
  • Host isolated home, AI, CI/CD, monitoring, networking, media, identity, document, health, Matrix, Nextcloud, TeslaMate, and automation services.
  • Operate local-first home automation using Node-RED, MQTT/Mosquitto, Zigbee2MQTT, Z-Wave JS, Envisalink, custom device control interfaces, and private dashboards.
  • Use MetalLB, Flannel, internal DNS, NGINX reverse proxying, TLS automation, Authelia, ZeroTier, WireGuard, and scheduled DNS/certificate jobs to keep systems maintainable and remotely reachable.

Technologies: Proxmox, Kubernetes, Ubuntu, containerd, MetalLB, Flannel, NGINX, Prometheus, Grafana, Gitea, Nexus, PostgreSQL, Redis, Node-RED, MQTT, Matter, Thread, Zigbee2MQTT, Z-Wave JS, MotionEye, RTSP, ZeroTier, WireGuard, Authelia

Gesture Bridge / Hand Gesture Event Bridge

Built a headless hand-gesture detector and event bridge for Raspberry Pi and Linux hosts that turns V4L2 camera input into local state, troubleshooting views, MQTT events, and HTTP callbacks.

  • Use MediaPipe Gesture Recognizer and OpenCV against USB/V4L2 camera input with configurable resolution, FPS, hand count, stability, and palm-orientation settings.
  • Expose a password-protected Flask troubleshooting UI with MJPEG camera stream, latest image, and live JSON detection state.
  • Publish gesture state through optional MQTT with TLS support and optional HTTP POST callbacks for home automation or local service integration.
  • Package deployment through Docker Compose with runtime dependency/model bootstrap, plus systemd units for non-Docker Linux installs.

Repository: https://github.com/Slyke/gesture-bridge

Technologies: Python, MediaPipe, OpenCV, Flask, MQTT, paho-mqtt, HTTP APIs, Docker, Docker Compose, systemd, V4L2, Raspberry Pi

Envisalink DSC Alarm Controller

Built a Node.js controller for Envisalink 4 that bridges DSC alarm panel state and commands into MQTT, REST APIs, and webhooks for home automation.

  • Connect to Envisalink 4 over the DSC TPI protocol and normalize raw panel, keypad, partition, zone, trouble, and command acknowledgement events.
  • Publish retained MQTT state and accept inbound commands for status, keypad input, arming, disarming, panic triggers, output triggers, time broadcasts, and raw panel frames.
  • Expose Fastify REST routes for connection and system state, recent events, panel locks, commands, keypad helpers, partitions, zones, and health checks behind basic auth.
  • Add heartbeat polling, TCP keepalive, structured logging, Kubernetes metadata hooks, Docker deployment, and webhook publishing for operational visibility.

Repository: https://github.com/Slyke/Envisalink

Technologies: Node.js, Fastify, MQTT, Envisalink 4, DSC TPI, REST APIs, Webhooks, Docker, Docker Compose, Kubernetes, Telnet, Home Automation

MorseCodeTrainer

Built a small browser-based Morse code trainer for practicing both listening recognition and keying patterns with configurable timing and local progress tracking.

  • Provide listening mode that plays Morse code sequences and checks keyboard letter or number responses.
  • Provide keying mode that lets users enter dots and dashes with punctuation keys or timed Enter-key holds, with tolerance and timeout checks.
  • Track per-character scores in localStorage and expose configurable training options for modes, answer reveal, replay, delays, dot/dash timing, and tolerance.
  • Publish the trainer as a static GitHub Pages app with a simple local Node.js server for development.

Repository: https://github.com/Slyke/MorseCodeTrainer

Technologies: JavaScript, HTML, CSS, Web Audio, Keyboard Events, localStorage, GitHub Pages, Node.js

oauth-wrapper / OIDC Auth Proxy

Built a reusable Node.js OIDC auth proxy for single upstream apps that owns local sessions, refreshes tokens server-side, injects trusted identity headers, and reverse-proxies HTTP and WebSocket traffic.

  • Run the OIDC authorization-code flow with PKCE, issuer, audience, state, nonce, callback binding, and encrypted server-side refresh token storage.
  • Support SQLite by default with Postgres and Redis session backends behind the same store API.
  • Proxy normal, streaming, and upgraded WebSocket traffic while stripping wrapper-owned auth headers and rejecting spoofed identity headers.
  • Expose optional forward-auth, whoami, session debug, session kill, health, signed identity JWT, and token pass-through workflows.

Repository: https://github.com/Slyke/oauth-wrapper

Technologies: Node.js, OIDC, OAuth 2.0, openid-client, SQLite, PostgreSQL, Redis, Reverse Proxy, WebSockets, Docker, JWT

Licensed Drone Operations / Aerial Capture

Licensed recreational drone pilot in Canada and the United States with experience capturing aerial photography, panoramas, and source material for mapping or photogrammetry workflows.

  • Plan safe recreational flights around airspace, terrain, weather, battery limits, and line-of-sight constraints.
  • Capture aerial stills, video, panoramas, and location-based imagery for documentation and visual exploration.
  • Experiment with automated capture patterns, 360 imagery, and photogrammetry-style reconstruction workflows.
  • Maintain a portfolio of published aerial and travel photography.

Technologies: DJI Mini 4 Pro, Aerial Photography, Panoramic Capture, Photogrammetry, 3D Reconstruction, Geotagged Imagery

Education

Bachelor of Information Technology

  • Runner-up Graduate of the Year. Winner of the Opmantek Best Industry Project Award 2014. Selected for a three-week Huawei cultural exchange and internship in China.

TAFE Information Technology Qualifications

  • Diploma in Web Design Information Technology (Distinction).
  • Certificate IV in Web Design Information Technology (Distinction).
  • Diploma in Systems Administration Information Technology (Distinction).
  • Advanced Double Diploma in Network Engineering and Project Management (Credit).
  • Coursework covered web design, PHP, MySQL, JavaScript, CSS, server tools, systems administration, networking, Linux, Bash, Cisco, Microsoft, Red Hat, and project management.

Awards / Other

Awards & Leadership

  • Duke of Edinburgh Bronze, Silver, and Gold Award recipient.
  • Completed the Kokoda Track expedition in Papua New Guinea.
  • Registered Expedition Instructor for youth camping and hiking expeditions.
  • Kokoda Challenge Youth Program awardee and later leader.
  • Bruce Kingsbury Award recipient and R.S.L. National Scholarship recipient.