Summary

Edward is a seasoned product-focused software developer and a respected technical leader known for his pragmatic approach to design. He excels in simplifying complex problems and progressively building solutions, from early prototypes through to backend systems serving hundreds of millions of users. He particularly enjoys the discovery end of a project: talking to prospective users and putting rough prototypes in front of them early enough to change direction.

Stack

Languages

PythonTypeScript/JavaScriptDartJavaC++

Backend

FastAPIDjangoLitestarFlaskNode/ExpressSQLAlchemyPydanticCeleryRabbitMQNGINX

Data

PostgreSQLSpannerAlloyDBRedisClickHouseElasticsearchPub/SubCloud TasksAirflow

Infrastructure

DockerKubernetesTerraformCDK/CloudFormationAWS/GCPEKS/GKEECS/Fargate/Cloud RunLambdaS3/GCSIAMCloudFrontRoute53

Frontend

ReactNext.jsFlutterCSS/Sass/SCSS

Other

Claude Code and agentic workflowsOpenTelemetryOpenWrtArduinoProcessinggstreamer

Recent Roles

Staff Software Developer / Aampe (acquired by MoEngage in June 2026)

April 2024 - Present / Remote

Aampe provides agentic content personalization as a service. I work primarily on the Composer team, building out the application that our customers use to configure their agents and content catalog, as well as parts of the backend systems which handle content generation. My responsibilities span system design, application development, infrastructure, technical mentorship and (lots of) documentation. Most recently I led the redesign of our message assignment system, moving it from a nightly batch process to on-demand resolution at the point of delivery. I also built Patches, an autonomous coding workflow which puts designers and customer success folks in the driver's seat when it comes to fixing frontend issues, while preserving the engineering team's ability to maintain code quality.

Cloud Engineer / Development Seed

June 2021 - April 2024 / Remote

At Development Seed, I primarily worked on projects for the NASA IMPACT team. I served as the development team lead on the Commercial SmallSat Data Acquisition project, which involved a combination of system design, software development and technical mentorship. On the development side, I worked on web backends (mainly FastAPI), frontends (React/Next.js) and data pipelines (Step Functions, Airflow), as well as managing the corresponding infrastructure with infrastructure-as-code tools.

VP Engineering / Curv Health

March 2020 - June 2021 / Halifax, NS

This health-tech startup was building an application for providing remote paramedical services. The project covered a wide range of technical disciplines, from machine learning and data science to backend web development and native mobile apps. My primary responsibility was tying the expertise of various team members into a unified product. This included a combination of system design, software development, mentorship and project management, with the occasional foray into user experience design.

Senior Software Developer / Curv Health

Sept 2019 - March 2020 / Halifax, NS

I worked on designing and developing the platform for Curv’s movement analysis product, including the architecture of the overall system and individual services. This covered a broad range of tools and techniques, from C4 diagrams for describing architecture and data flows to Terraform and Kubernetes for infrastructure to Flask and Express for web services. I conducted code reviews and provided mentorship to junior developers on the team.

Senior Software Developer / ​Osprey Informatics

Dec 2014 - Aug 2019 / Remote

Worked on every aspect of the Osprey Reach remote monitoring platform, from the Django-based backend and REST API, to the AngularJS and Ember frontends, to the edge video processing device. For a few years, I divided my time between software development and UX design/user testing. I built a number of early prototypes which went on to become core features of the product and consistently pushed the team toward a more user-focused, iterative workflow.

Creative Technologist / ​Freelance

Apr 2013 - Dec 2014 / Calgary, AB

Developed a number of independent projects, including a now-defunct subscription service for creators (a la Patreon), a pair of award-winning gesture-based applications for Intel's RealSense Developer Challenge, and a number of tech/art pieces exploring passive WiFi tracking as a tool for mapping social networks. During this period, I spoke at a couple of conferences on the subjects of indoor positioning systems and on principles of interactive art.

Tech Director/Developer / ​Globacore Interactive Technologies

September 2010 - Feb 2013 / Toronto, ON

Provided technical leadership and managed a team of six developers in a fast-paced environment, producing interactive exhibits for events. This often involved taking new projects from concept to deployment in a matter of weeks (deployment in this case meaning installing a 12-foot-wide touchscreen on a street corner in downtown Austin, for example), which necessitated a different approach to project management and team structure than one typically finds in software companies.

Education

Certificate in User Experience (Interaction Design Specialty) / ​Nielsen Norman Group

2018 / Vancouver, BC

Bachelor of Fine Arts (New Media) / Toronto Metropolitan University

2004-2008 / Toronto, ON

Graduated with honours. Final Project: We Win. You Lose. - an interactive, wearable art installation in which participants slow dance (à la a middle-school dance) while simultaneously playing a game of Pong, using their partner’s body as a controller.

​Patches / Aampe

2026 / Dartmouth, NS

Small frontend defects tend to accumulate faster than a product team can justify prioritizing them. At Aampe we had clumped ours into omnibus tickets in the hope that collective weight would get them scheduled, which meant they were picked up roughly once a quarter. The work itself was rarely the biggest cost, since most tickets could be completed in minutes, but the overhead of an engineer pulling a branch, rebuilding context, and clarifying what the reporter actually meant resulted in tickets piling up. Patches is an autonomous coding workflow which addresses that overhead by changing who can move a ticket forward: a designer or someone on customer success files the issue, answers the agent's clarifying questions, and does their own QA against a live feature deployment, with an engineer involved only at the end to review a diff already confirmed to work. It runs through Linear and GitLab, wrapped in a deterministic harness which polls for changes and spins the agent up only when there is something to do. In its first month it closed 99 issues at a total cost of around $625, a figure which also covered work in progress on a further 43. I designed and built it, along with a dashboard for monitoring sessions and cost, and wrote about the approach on the Aampe blog.

Message Assignment / Aampe

2025 / Dartmouth, NS

Aampe's message assignment system determines what content each end user receives and when, driven by a decisioning agent maintained per user. The original design ran as a nightly batch process which pregenerated pools of messages, sampling up to 5,000 variants from each message formula, then selected labels for each user and searched those pools for a match. The cap applied per formula, so the formulas capable of the most variation were the most constrained by it: the third of our catalog which exceeded the cap accounted for 99.96% of the available message space, leaving agents to select from 0.19% of the four billion concrete messages the catalog could produce. I redesigned the system to invert that order of operations and defer the work to execution time, computing each user's labels and resolving the formulas capable of satisfying them at the point a send task fires. This involved rebuilding the underlying data models and the assignment path through to Composer. The resulting service runs on Spanner, Redis and Cloud Run, makes the entire message space addressable at a p90 of 50-100ms, and currently handles around 23 million assignments per day across 200-300 million users.

​Commercial SmallSat Data Acquisition / NASA IMPACT

2021-2024 / Dartmouth, NS

The Commercial Smallsat Data Acquisition (CSDA) program was established to evaluate and distribute commercial satellite data to NASA-funded researchers, addressing diverse requirements ranging from data acquisition and ingestion from vendors to facilitating search, discovery, and distribution for end users. The program additionally encompasses tools to enhance the evaluation process and support downstream scientific applications. In my role as Development Team Lead, I spearheaded several initiatives aimed at fostering cohesion within our geographically dispersed team, establishing uniform best practices, and providing technical mentorship. Furthermore, I made substantial contributions to key components, including data ingestion, search, and distribution, as well as playing a pivotal role in system design and operational enhancements.

​Curv Mobile App and Web Services / Curv Health

2019-2021 / Halifax, NS

Curv is a health-tech startup specialising in remote paramedical care, particularly in the realm of physiotherapy. Their software suite's central feature is the use of mobile devices for conducting biomechanical analyses of patients during their exercise routines, facilitating remote assessment by care providers. In my role as VP Engineering, I collaborated with a diverse team of experts in fields such as data science, biomechanics, mobile development, and backend web development, navigating uncertainties and engaging with healthcare providers to iteratively refine our solution to meet their needs.