Senior Lead Developer2013 - PRESENTErasys GmbH
Technologies: iOS, Swift, Objective-C, WebRTC, SwiftUI
- Addressed serious stability and performance issues in the codebase (originally from an external dev, it was now in-house) by substantially improving the architecture; also installed a custom UI framework that reduced the need for fragile UI hacks.
- Developed video calls using WebRTC—enabling users to call each other—which included developing protocol and requirements for the back end to implement a signaling server.
- Created several code-generation tools to simplify the use of string resources and the creation of new features using API endpoints.
- Built many prototypes as part of our "innovation" days, including a Bluetooth prototype that discovers nearby users even when the app is not running.
- Implemented a SwiftUI prototype to showcase a possible future architectural direction for the app.
CTO | Co-founder2010 - 2013Igobubble Ltd.
Technologies: Objective-C, .NET, C#
- Built a location-based app and back end that allowed virtual objects to be collected and dropped at physical locations; these so-called "bubbles" could contain videos and other media, and users could chat with any other users who touched a bubble.
- Developed a physics simulation in the main interface that showed bubbles bouncing around.
- Constructed a custom feed system and protocol to allow the app to receive real-time updates while connected.
Trainer2010 - 2010iOS Development Trainer
Technologies: C, Objective-C
- Delivered several 12-day courses in developing iOS apps with a heavy focus on memory management and best practices.
- Created more than 15 exercises in which students created a small app to use a specific framework or technology.
- Spent the first three days of each course going over pointers, memory management, and the C language.
Senior Software Engineer2007 - 2010Optiver
Technologies: C#, Microsoft SQL Server
- Mentored several mid-level and junior developers in my team.
- Built, for my own initiative, a specialized remoting layer that makes distributed and multiprocessor server applications much easier to develop (a type of Tentacle framework).
- Held best practices presentation on writing multi-threaded apps in C# which included reviewing some common design patterns, dos and don’ts.
- Constructed a real-time server monitoring framework to make it easier to develop applications that can be centrally monitored (a type of Sentinel system).
- Developed several distributed server applications used by traders on the trading floor.
.NET Consultant2007 - 2007BCC Adsystems (now Mediaocean)
Technologies: Visual Basic .NET (VB.NET)
- Rewrote a client data mining application that was originally written in Delphi to VB.NET; it was called the Data Miner, screenshots and more information can be found on the BCC website.
- Revised a web service to serve the OLAP cubes for Data Miner (in VB.NET).
- Set up a continuous integration server using CruiseControl.NET.
- Introduced an Agile development process to the team and established comprehensive coding standards and best practices for VB.NET.
- Wrote skeleton and infrastructure code for business components, data access components, logging, exceptions, and so on.
- Developed a NAnt build script for a large VB6 application.
.NET Developer2006 - 2007Tridion SDL
Technologies: .NET, C#, ASP.NET
- Developed a .NET rewrite of the existing flagship product, SiteEdit, a program that enables in-browser editing of website content; worked mostly on the server-side infrastructure.
- Mentored several junior developers on architectural issues and patterns.
- Set up an automated test server to get-latest codebase and ran Selenium automated functional tests on several browsers, operating systems, and hardware, including macOS X.
Software Engineer2004 - 2006Anite
Technologies: .NET, C#, ASP.NET
- Worked as part of a team of over 20 developers on a $30-million n-tiered ASP.NET web application.
- Involved in most aspects of the software development lifecycle (SDLC), especially the design, UI prototyping, component implementation, and unit testing.
- Wrote a collection of utilities in C# .NET and ASP.NET to streamline software development processes within the team. These included tools for code generation and simplifying the installation of the Anite.
- Contributed to streamlining processes and procedures for the software team.
Developer2000 - 2004Quest Payment Systems
Technologies: C, Embedded C, C++
- Developed a GIF-style animation module (in embedded C) for the Quest PIN-pad device to allow mobile phone-style animations to be played on the PIN-pad display.
- Took over maintenance of software of two 8051-based embedded devices.
- Designed and implemented a number of new features including a proprietary LAN protocol and remote software download. These devices are found in most BP Australia and BP New Zealand sites.