Senior Lead Developer
2013 - PRESENTErasys GmbH- 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.
Technologies: iOS, Swift, Objective-C, WebRTC, SwiftUICTO | Co-founder
2010 - 2013Igobubble Ltd.- 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.
Technologies: Objective-C, .NET, C#Trainer
2010 - 2010iOS Development Trainer- 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.
Technologies: C, Objective-CSenior Software Engineer
2007 - 2010Optiver- 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.
Technologies: C#, Microsoft SQL Server.NET Consultant
2007 - 2007BCC Adsystems (now Mediaocean)- 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.
Technologies: Visual Basic .NET (VB.NET).NET Developer
2006 - 2007Tridion SDL- 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.
Technologies: .NET, C#, ASP.NETSoftware Engineer
2004 - 2006Anite- 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.
Technologies: .NET, C#, ASP.NETDeveloper
2000 - 2004Quest Payment Systems- 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.
Technologies: C, Embedded C, C++