David as "The Professor"

I build software


I also manage dev teams and do whatever else needs to be done. Check out the companies I've co-founded and the projects I've worked on below...


APE Mobile

SaaS paperless site app for construction and engineering projects.

APE Mobile... because doing paperwork sucks

Laser Measurement Analsyser

An experimental desktop QA app to visualise laser measurements of the concrete linings in mine shafts.


ER Mapper

Revolutionary (at the time) image processing and mapping software.

APE Mobile


Three examples of APE Mobile on an iPhone

Matt Edwards asked me to join him as technical co-founder and CTO in 2012. Over the next couple of years, we built the first version of the product and proved the market.In the early days, our secret sauce was our ability to let customers use digital versions of the paper forms that they were used to. They got the benefit of entering information via an app (and capturing data digitally in the process), but they could still generate a PDF that looked exactly like the paper forms that they were familiar with. Once they had "gone digital" and got themselves off of paper, then there were lots of other goodies we could give them.We were finalists in the OzApp awards at the end of 2014 and got VC funding in mid-2015. We sold it to Damstra Technology in 2021, and it is now Damstra Forms.The solution includes a rails back-end, a react front-end, and iOS, Android, and Windows mobile apps.To deploy the rails app, we started with Heroku, then went to Ninefold, then to Cloud66, and finally to Reinteractive's OpsCare service. With both Cloud66 and Reinteractive the target servers were AWS EC2 instances. Our database was PostgreSQL via AWS RDS. Source code started out in GitHub and then moved to Bitbucket. Our branching model was git-flow. We used JIRA for issue tracking and sprint management, and we built our CI pipeline with BuildKite.I was responsible for the solution architecture, hiring the team, building the software, implementing processes, and managing operations. At our peak, I was managing nine people. (At Damstra I managed more, but that was because I was given responsibility for devs on other product teams).In the early days, I wrote the Rails app, most of the iOS (Objective-C) app, and an ASP.NET service (interestingly, I had had no experience with Rails, iOS apps, or ASP.NET before joining APE). I handed the iOS app and the ASP.NET services over to other devs in 2015 but continued to be a major contributor to the Rails app until I left in 2021.One of the technical highlights I introduced was the use of event sourcing (though I didn't know it was called that at the time). It was originally done to manage synchronisation between the back-end and the mobile devices, but it also turned out to have tremendous benefits in terms of auditability, debugging, and support.Other highlights included a compiler that provided Excel-like calculation capability within the forms and a sophisticated export tool which enabled users to take their unstructured form data and define a way to export it into CSV files. I also wrote and documented our public api and did our integrations with Procore and Autodesk BIM 360.Unfortunately, the source code is proprietary (and I no longer have access), so I cannot share it, but I am more than happy to talk more generally about what we did.

Laser Measurement Analyser


My friend Mike Jensen approached me in early 2012 with an idea he had to use low-cost laser measurement tools to QA mine shaft cement linings.The concrete lining for a mine shaft should be smooth and regular. Where this is not the case, it needs to be corrected. At the time, manual inspection was the only way to do the necessary QA.The idea was that the laser measurement hardware would create a set of measurements at regular depths down a shaft before and after the concrete lining was created. Mike needed software to analyse these measurements to find irregularities. I was looking for a project to teach myself C# and .NET, so I agreed to help.I wrote the software to do the analysis and also to provide a way to visualise the data. Mike helped out with the software QA. The software was a Windows desktop app. I used Windows Forms for the UI and the XNA framework to build the 3D visualiser (sadly, XNA is no longer officially supported). The project included documentation and installers.One of the interesting problems we had was that the hardware didn't have any calibration, and it couldn't be guaranteed to be centred in the shaft. I worked around this by implementing an "Adjust for sensor offset" feature that estimated sensor offset by fitting a circle to the list of measurements. This was based on a paper by Luc Maisonobe.The bulk of the work took about six weeks, followed by various updates and enhancements over the following year.Real-world testing looked promising but did also throw up some issues. Unfortunately, everyone involved became caught up in other things, so we didn't get the chance to figure out if the issues were hardware, software or both. For now, the project is in limbo.I still have the code and would be happy to take prospective employers through it. It is somewhat out of date, and there are some things I'd do differently today, but it is interesting nonetheless.

ER Mapper


Stuart Nixon invited Richard Kurzeja and me to co-found ER Mapper with him in 1989. At the time, image processing systems were around $250K and batch-oriented, often with specialised hardware. We were able to build a much more interactive system that ran on Sun Workstations, bringing the cost down to around $50K. Later on, we also ran on other workstations and eventually Windows (where the cost came down even further).Another unique feature at the time was that we could handle geophysical data as well as satellite and air photo data. As a result, the three of us won the 1995 Graham Sands Award "For innovation in applied geophysics through a significant practical development of benefit to Australian exploration geophysics in the field of instrumentation, data acquisition, interpretation or theory."My role was the development of the "Process Engine". This was the part of the software that did the actual image processing work based on user-defined "algorithms" consisting of convolutions (filters), transforms, and formulas to combine different streams of data in various ways. It also handled on-the-fly mosaicing, which was another first. The code was written in C.Apart from my work as a developer, I also opened and ran our offices in the US and the UK. I also ran Asia Pacific for a time before taking over the CTO role from Richard. There I managed a dev team of 15 people working on the ER Mapper, ER Viewer, and Image Web Server products.Hexagon Geospatial acquired us in 2007, and I believe ER Mapper is still part of their product suite.