Computer scientist with 20+ years of experience in compiler tool-chains and automation of systems. Background in program analysis and language design. Experienced in designing, implementing, deploying and maintaining both back-end and front-end systems.
C, C++, Go, Python, x86, linux/FreeBSD (bash, sh, sed, awk etc)
ARM, PIC, 68k, Z80.
Docker, VirtualBox, debootstrap, debinstaller, OpenGL, OpenCL, CUDA.
HTML, CSS, nginx.
+46 734 431052
Team Lead, Netdata.|
2019 - 2020 (first 2 months Senior Engineer)
|Adding features and maintaining a legacy code-base in C. High performance system monitoring agent with low system impact. Responsible for the team that worked on the agent core: monitoring, storage, internal network interfaces, external API, build-system. Managed the work-flow and career-development of eight direct-reports. Architecture of the system and how it fits into a larger distributed system. Worked directly in most areas of the code.|
Senior Lecturer, Blekinge Institute Of Technology.|
2010 - 2019
|Responsible for designing, developing, delivering and examining courses in core CS topics to several hundred students per year in: C++, CUDA, Scripting Engines, Linux, Interpreters, Compiler Construction and Operating Systems. Managed small teams of teaching assistants to deliver practical lab-based activities. Developed back-end system for delivery of video lectures and automated assessment activites for courses. Front-facing web-systems to handle authentication, submissions and integration with LMS. Back-end systems to handle customized building of specialised virtual-machines for testing / grading of submissions.|
|Research Assistant, University of Bristol.|
2001 - 2010
|Employed on wearable computers, program analysis and crypto projects as post-grad and post-doc.|
|Programmer, Telesoft Technologies.|
1995 - 2000
|Telecomms protocol-conversion and certification-testing products.|
|PhD: Program Transformation of Embedded Systems|
University of Bristol
2001 - 2006
|Analysing embedded code to build an exact model of execution over time, usable to check temporal compatability between components in the system. Model is fine-grained enough to check interleaving of instructions can meet real-time deadlines. Also included analysis of numerical precision inside filter code so that the programmer has automated support to ensure the code produces stable results at the appropriate point in time.|
|BSc in Computer ScienceUniversity of Bristol
1998 - 2001
|Final year project was a novel architecture (simulation) / compiler, reduced latency by replacing memory controller / register-file. Won joint-first place for the Infineon Architecture Prize.|