Noel Burton-Krahn — code samples

I’m a scientific software engineer and consultant working in C++ and Python, with experience in biomedical signal processing, scientific instruments, and distributed systems. Here are some samples of my own code from favourite past projects.

PQRST: Detecting P, QRS, and T Waves in an ECG

Read the full article

Annotated ECG beats with detected P, QRS, and T waves

I developed a geometric PQRST delineation algorithm for HeartEye’s 12-lead ECG device, revisiting my original work from 1997. The article shows how the algorithm identifies P and T waves and distinguishes irregular rhythms through RR and PQ variability.

Genetisnake (genetic programming, Three.js, Phoenix)

Read the full article

Battlesnake game board

Battlesnake is an AI competition where snakes compete to survive on a simple board. My entry used genetic programming. I rendered the board with Three.js, and the game server was a multi-room chat application written in Phoenix.

GKViewer Video Recording and Playback (C++, OpenGL, ActiveX)

GKViewer video review application

This was a multi-camera digital video recording and playback system. The code cross-compiled on Linux and Windows to save and display video on a Linux recording unit, and to play back on Windows through an ActiveX component written in C++ using OpenGL.

Hotswap — Transparent Failover for Linux (C++, linux kernel)

Read the full article

HotSwap architecture: synchronized master and backup hosts preserving client connections

My Master’s project was to replicate Linux process trees between servers, so one server could seamlessly take over from another without losing data or breaking network connections.

Page Flipping (Java, OpenGL)

Java page flipping applet

This is a Java applet I worked on as a prototype for a photo album application.

Planed.java computes a transformation matrix for flipping the OpenGL model matrix across a plane:

P2PVPN (C/C++, wxWidgets)

P2PVPN UI

P2PVPN is a peer-to-peer firewall-tunneling VPN. It connects peer computers through firewalls like Skype does, but instead of voice conferencing, P2PVPN creates a virtual ethernet interface and gives peers virtual IP addresses for each other.

Web Server / Database Applications

Simple HTML graph

Most of my bread and butter work is making web servers and distributed systems with Python (djselect.py, expand.py), C#, Groovy, Java, Erlang, Phoenix, Django.

Cloud computing and devops: AWS, Docker, Kubernetes, consul, etcd.
Databases: MySQL, PostgreSQL, SQL Server, DB2
Version control: Git, Subversion, Mercurial