David Reich, iOS Developer in Eltham North, Victoria, Australia
David Reich

iOS Developer in Eltham North, Victoria, Australia

Member since September 3, 2013
David is a seasoned software developer. He's worked on enterprise-scale apps as part of large teams, as the sole developer, and everywhere in between. He's been a part of cross-functional and multicultural teams. Over the past few years, he's worked at ANZ, Suncorp, and Auspost on customer-facing apps and for several smaller companies. He's placed apps in the App Store as the sole developer. He's worked on 25+ different apps, mostly in Swift.
David is now available for hire




Eltham North, Victoria, Australia



Preferred Environment

Xcode, iOS, macOS (OS X), Windows

The most amazing...

...recent app I've built is for musical instrument performance training. It displayed/played a musical score and listened to/evaluated the student's performance.


  • Principal

    2002 - PRESENT
    Stellar Software Pty, Ltd.
    • Designed and developed four turn-based, multiplayer game apps currently in the App Store, with more in development.
    • Developed more recent applications in Swift.
    Technologies: iOS, Swift, Objective-C, Xcode, Cocoa Touch, UIKit, Core Data, Core Graphics, GameKit
  • iOS Software Developer

    2020 - 2020
    Halfspace LLC
    • Worked on Sculptura 3D, tasked with converting the user interface from UIKit to SwiftUI.
    • Created SwiftUI Views. Refactored UIKit UIViewControllers into SwiftUI Views.
    • Used UIViewRepresentable, UIHostingController, NSHostingController and Xcode, Swift, SwiftUI, MetalKit, Git/GitHub.
    Technologies: Swift, SwiftUI, UIKit, iOS, Xcode
  • Senior iOS Engineer

    2018 - 2020
    Cognizant Technology Solutions
    • Developed POCs using ARKit and CoreML.
    • Completed courses or tutorials on scikit-learn, TensorFlow, and SwiftUI.
    Technologies: UIKit, SwiftUI, ARKit, CoreML
  • iOS Software Developer

    2018 - 2019
    • Developed for ANZ’s main consumer application.
    Technologies: UIKit, Cocoa Touch, PDFKit
  • iOS Software Developer

    2018 - 2018
    Suncorp Group
    • Developed for the greenfield Suncorp App on iOS.
    Technologies: UIKit, Cocoa Touch, RxSwift, Swinject
  • iOS Software Developer

    2017 - 2017
    Medibio Limited
    • Added Fitbit server data download to an existing healthcare app.
    • Refactored an excessively large legacy storyboard.
    • Created a new application focused on ResearchKit.
    Technologies: UIKit, Cocoa Touch, ResearchKit
  • Senior Software Developer

    2017 - 2017
    Megabus Pty, Ltd.
    • Helped prepare Marlin GTX for introduction to the US market.
    • Maintained features and fixed bugs.
    Technologies: C, C++, SQL, Embarcadero RAD Studio, Btrieve, Windows XP
  • iOS Software Engineer

    2016 - 2017
    Australia Post
    • Worked on the Digital ID project.
    • Developed native iOS apps in Swift.
    Technologies: iOS, Xcode, Swift, Cocoa Touch, UIKit, AlamoFire
  • Software Developer

    2016 - 2016
    • Developed an app for teaching musical instrument performance.
    Technologies: iOS, Xcode, Swift, Cocoa Touch, UIKit, Core Data, CoreGraphics, AVFoundation
  • Software Developer

    2015 - 2016
    Tennis Australia
    • Added features to existing apps.
    • Handled the successful submission of the AO Player app to the App Store. The AO Player app is for the use of players at the Australian Open. The 7+ other apps are for internal distribution and are part of the operation of the Australian Open.
    • Covered the user interface, data entry, and display.
    Technologies: iOS, Xcode, Objective-C, Cocoa Touch, UIKit, Core Data, CoreGraphics
  • Software Developer

    2015 - 2015
    Fob App, Inc.
    • Created an iOS application focused on image manipulation and composting, using images from the device. The app uses the camera, image picker, and gesture recognizers and connects to AWS and Facebook cloud services, sharing images with Facebook, Instagram, and other social networking sites and external apps.
    • Contributed to the user interface, database design, and display.
    Technologies: iOS, Swift, Xcode, Cocoa Touch, UIKit, Core Data, CoreGraphics, MessageUI, AWS SDK, Facebook SDK
  • Software Developer

    2015 - 2015
    Startup Company
    • Created new apps, added new features, and fixed bugs on existing apps.
    • Implemented the apps to use iBeacons in a proprietary manner as a key component of the system.
    • Used JSON to wrap the data to and from a REST API. The work covered the user interface, data entry, and display.
    Technologies: iOS, Swift, Xcode, iBeacons, Foundation, UIKit, Core Data, Core Location
  • Senior Developer

    2014 - 2015
    Praemium Limited
    • Worked mostly on incremental features and bug fixes covering the user interface, data entry, and display. Also worked with business rules in the front end, Windows services, and SQL stored procedures.
    • Handled C#, Visual Basic, SQL, and JavaScript source code development and maintenance.
    • Modified database schema (added/changed tables).
    Technologies: Visual Studio 2013, Microsoft SQL Server Management Studio, C#, Visual Basic, Transact-SQL, SQL, XML, Microsoft SQL Server, Windows Server
  • Senior Software Developer

    2012 - 2014
    Megabus Pty, Ltd.
    • Worked on broad incremental features that were manually applied across all modules.
    • Fixed a problem due to the structural design of the run-time architecture of how the application ran its modules. Modified (outside of rewriting a key part of the run-time library) almost 200 dialogs and all the places that create those dialogs.
    • Made dialogs asynchronous, which required all the creators of those dialogs to use callback methods. Wrapped the dialogs in several library classes. Created asynchronous versions of these classes and callback wrapper classes so that a minimal amount of identical new code needed to be added to the existing codebase.
    • Wrote extensive documentation about the problem, describing its cause and the solution. Included documentation of the new classes and developer guides for modifying existing code and creating new code using the new classes. I conducted a training session for the development team.
    • Handled maintenance (bug fixes and features) of the user interface, data entry and display, and business rules.
    Technologies: C, C++, SQL, Embarcadero RAD Studio XE3, Btrieve, Windows XP
  • Senior Analyst Programmer

    2012 - 2013
    IGT (Australia) Pty, Ltd.
    • Worked on incremental features and bug fixes.
    • Created SSRS (SQL Server Reporting Services) reports, including associated SQL stored procedures.
    • Designed and implemented a New Promotion Wizard to improve the user interface.
    • Designed and implemented the reorganization and combination of several configuration dialogs.
    • Added DirectShow support for USB cameras for ID photos, etc. within a C# module.
    • Wrote specifications for the Promotion Wizard, the configuration dialog reorganization, and the addition of some new features.
    • Handled maintenance (bug fixes and features) of the user interface, data entry and display, and business rules in both the client-side application and on the server-side in stored procedures.
    Technologies: C++, C#, SQL, Transact-SQL, XML, Visual Studio 2012, Visual Studio 2010, Visual Studio 2008, Microsoft SQL Server Management Studio 2008 R2, SSRS, Microsoft SQL Server 2008 R2, Windows 7, Windows XP
  • Senior Developer

    2010 - 2011
    Momentum Technologies Solutions Pty, Ltd.
    • Added AES-256 encryption/decryption to Windows-based C# broadcast and media server applications, using the Bouncy Castle C# library. Used the Crypto++ library for the C++ ActiveX control.
    • Expanded the use of DirectShow filters in the encoding software, standardizing the mechanics of the construction of the filter graph. Incorporated encoder, motion detector, and de-interlace filters from Leadtools. Developed a filter to flip or rotate the video frame. Created classes to configure the motion detector filter and provide detection callback objects.
    • Used the Windows Driver Kit. Built (from open source software) a device driver to monitor the GPIO port on the video capture platform.
    • Reconstructed and documented the build system, setting it up on a set of Windows 7 virtual machines, providing portability, reproducibility, and backup. Created the next-generation build system to support building the next version of all applications and their installers.
    • Investigated and developed a proof-of-concept broadcast system using the Wowza Media Server to rebroadcast live video from a proprietary media server to a wider range of viewing platforms. Modified and tested Flash players using Flash Builder 4.5.
    Technologies: C, C++, C#, XML, Visual Studio 2008 (Visual Studio 9), Direct Show, AES encryption, Windows 7, Windows Server 2008, Windows XP, Nant, Eclipse, Windows Driver Kit (WDK), Wowza Media Server
  • Senior Software Developer

    2009 - 2010
    Megabus Pty, Ltd.
    • Worked on a project to rewrite/redesign/migrate/convert a legacy system into a modern GUI, Marlin GTX. Rewrote Microsoft PDS Basic programs into C++ on C++ Builder 2009, and also rewrote Watcom C++ and C++ Builder 6 applications using Btrieve into C++ Builder 2009/2010. Changed the database implementation from a Btrieve file-based model to a more SQL-compliant one. Worked on object, class, and user interface design.
    • Refactored a set of 42 data integrity calculation applications into one base C++ class and 42 derived constructor classes, and one singleton factory class to create the different calculation objects for each calculation type. Refactored because originally each calculation application was a separate application, with little common source code, and half of them were written in Basic, and the rest used a discarded database API; therefore, no smart refactoring tools could be used.
    • Refactored a second set of 38 data update applications written in Basic into one base C++ class, five derived modifications, and one singleton factory class to create the different update objects based upon a table of parameters for each update type.
    • Maintained (bug-fixes and features) the user interface, data entry and display, and business rules.
    • Converted all the project files for the entire system from Builder 2009 to Builder 2010. Wrote a small Perl script to change all text that previously included hardcoded link names and paths in the almost 200 project files.
    Technologies: C++, SQL, XML, C++ Builder 2010, C++ Builder 6, Embarcadero RAD Studio, Btrieve, Pervasive SQL, Perl, Windows XP
  • Senior Software Engineer

    1994 - 2009
    Barnum Software
    • Expanded the graphics supported from CGA to include EGA, VGA, and SVGA modes by converting the Quarter Mile Math program to use the FastGraph graphics library. Added animated horses to the existing animated racing cars.
    • Ported the program to OS 9 by creating a Mac toolbox replacement for the parts of FastGraph that we used.
    • Converted the math topics into Macintosh "code fragments."
    • Converted the original assembly language interrupt service timing code into C, which then ran on the Macintosh and was key to finally porting everything to Windows 3.1.
    Technologies: C/C++, Visual Studio .NET, Visual Studio 6, Visual C++, CodeWarrior, XML, Wise Installation System 9, Installer VISE 8.5, Director 8.5 XDK (Xtra Development Kit), Windows XP, Windows 98, Windows 95, Windows 3.1, OS X, OS 9
  • Senior Software Engineer

    1992 - 2009
    LibraryWorld, Inc.
    • Developed the LibraryWorld family cross-platform Windows/Macintosh applications. Supported Windows XP, OS 9, and OS X using a common database.
    • Based the proprietary database around the MARC record. Used proprietary indexes to provide adequate performance on the desktop systems of the early 1990s.
    • Designed and implemented a proprietary report script and report engine for the LibraryWorld product line using a then state-of-the-art dot-command syntax. Implemented the report engine to display reports on-screen, print them, or write them to a file—all from the same script.
    • Planned the project to be stable and reliable, and my code has remained unchanged through 4-5 UI design evolutions.
    • Worked on the original LibraryWorld web version. Removed the UI, building a family of CGIs around this code. The CGIs provided most of the functionality of the LibraryWorld programs through the internet. LibraryNet was released in 1998 as a product for IIS and Apache on OS X. In 1999 and 2000, I created the LibraryCom web service, which replaced LibraryNet. The current LibraryWorld 2 web service was developed by LibraryWorld based upon my earlier designs.
    • Added library catalog record lookup on a web service and publishing catalog records to the web service by adding an asynchronous Telnet client to the applications.
    Technologies: C/C++, Visual Studio .NET, Visual Studio 6, Visual C++, Xcode, CodeWarrior, C++ Builder 5, JBuilder 8, HTML, JavaScript, Java, Apache Server 1.3, IIS, Windows XP, Windows 98, Windows 95, Windows NT, Windows 3.1, OS X, OS 9.
  • Senior Software Developer

    2007 - 2008
    Trimble Planning Solutions Pty, Ltd.
    • Completed a project to add support for internationalization to our application. Included migration of the source code from ASCII text to Unicode. The user interface text had to be extracted from the C++ source code and added to the resource files where it would be accessible to translation tools.
    • Managed translation of the language database and added automatic translation database maintenance and resource text translation to the build system.
    • Migrated the rest of the development team to the new version. Created installation and usage guides for the tools and source code changes. Directed and managed the transition of the development team to the new source code and new tools.
    • Began migration of the application data store from a proprietary flat-file system to a SQL database. Created a database schema representing the current data and planned enhancements. Developed a set of object templates to encapsulate the relational database and additional business logic. Developed a Visual Studio wizard to generate source code and store procedure scripts from the tables in the schema using those templates.
    • Converted the user manual in FrameMaker into a Microsoft help file.
    • Maintained (bug fixes and features) the user interface, data entry and display, and business rules.
    • Created and used a series of Visual Basic macros within Visual Studio to semi-automate the movement of text from the source code files into the resource files.
    Technologies: C/C++, Visual Studio 8, Visual C++, SQL, XML, Microsoft SQL Server 2000, Enterprise Manager, Query Analyzer, Firebird SQL, Windows XP, DirectX, COM
  • Software Engineer

    2006 - 2007
    IGT Systems
    • Worked on the Commission-based Program Play (CBPP) module in requirements analysis, functional and technical specifications, user interface design, database specifications, software design, and programming implementation.
    • Developed an initial prototype of the module for the CBPP feature and used that prototype as a requirements analysis tool to elicit a greater degree of detail from the client regarding their functional requirements. Based on this, I developed a second prototype. Spent four days at the client site leading discussions with the client stakeholders to help them understand and decide upon the operation of the new feature so that I could refine and complete its specification.
    • Specified the database schema for configuration and operational data. Designed and wrote the application code to create, configure, and manage the CBPP programs and to calculate the rewards and commissions and the SQL stored procedures and functions for using and manipulating the data. Designed and implemented the user interface for all of this. Implemented the business logic in stored procedures and triggers that interacted asynchronously with other distributed applications and services. Except for the stored procedures and triggers, all programming was on the client-side. Also provided deployment support for the system’s installation in Macau.
    • Worked on an interface between the Advantage system and an external third-party CRM system. The interface was used to synchronize data and report events between the Advantage system and the CRM system. The interface was implemented as multi-threaded asynchronous TCP/IP client and server Windows services. The services, threads, asynchronous client, and asynchronous server were all implemented using the .NET framework, and the interface to the Advantage database was implemented using classes based upon ATL templates.
    • Maintained (bug-fixes and features) the user interface, data entry and display, and business rules.
    Technologies: C++, SQL, Transact-SQL, XML, Visual Studio .NET, Visual Studio 6, Visual C++ 6, Microsoft SQL Server 2000, Enterprise Manager, Query Analyzer, Windows XP


  • GridDragView (2020) (Development)

    GridDragView is a grid that allows a cell to be dragged up, down, left and right and the row or column will be dragged independently of all other rows and columns. Cells dragged off the grid will continuously wrap around and appear at the opposite edge.

  • Classic Life (2020) (Development)

    A quick app.

    Classic Life

    In memoriam
    John Horton Conway
    1937 - 2020

  • SwiftUICombined (2020) (Development)

    What is SwiftUICombined? It's SwiftUIReference meets Combine. SwiftUIReference is GiphyTags meets SwiftUI.

    This is a SwiftUI reference app based upon GiphyTags and then updated with Combine. It is written in Swift 5 and Xcode Version 11.4.1 (11E503a)

  • SwiftUIReference (2020) (Development)

    This is a SwiftUI reference app based upon GiphyTags.

    It's GIPHYTags meets SwiftUI!!

  • GIPHYTags (2017) (Development)

    GIPHYTags was developed as an example of modern Swift coding and illustrates how to use many idioms and patterns of Swift and iOS development.

    Older source code for my games is also available on my GitHub page.

  • Trxilt (Development)

    Trxilt is a game derived from a pencil-and-paper game by Rick Nordal. It is a two-play game and can be played on a single device and through the Game Center.

  • Stellar Hedron (Development)

    Stellar Hedron is based on a pencil-and-paper game. It's a two-player game and can be played on a single device, through the Game Center or against the AI. This app is written in Swift and uses the Cocoa Touch, UIKit, Core Graphics, and the GameKit. It can be played on an iPad or iPhone.

  • Selfie Test Drive (Development)

    Selfie Test Drive was developed for Fob App, Inc. The app is for users to combine selfies and their own background with car photos. They can then save a picture of them in their new car in their own driveway. They can then share the results with their friends.

    I created the app based upon designs and specification from fob. The application is focused on image manipulation and composting, using images from the device. The application uses the camera, image picker, and gesture recognizers; connects to AWS and Facebook cloud services; and shares images with Facebook, Instagram and other social networking sites and external apps. Technology used included the Cocoa Touch, UIKit, Core Data, Core Graphics, MessageUI, AWS, and Facebook frameworks and SDKs. The work covered the user interface, database design, and display.

    Several versions were released after my version, but Fob has removed itself and the app from the App Store.

  • Stellar Cram (Development)

    Stellar Cram is a misère version of Cram, which is an impartial version of Domineering. Stellar Cram is a two-player game and can be played on a single device, through the Game Center or against the AI. This app is written in Swift and uses the Foundation, UIKit, and the GameKit. It can be played on an iPad or iPhone.

  • Dots & Boxes (Development)

    Stellar Dots & Boxes was developed in Objective-C. This is an expanded version of Dots & Boxes, which is a pencil-and-paper game called Pig or Pen-the-Pig or Boxes. Stellar Dots & Boxes has several unique features. It has triangular and hexagonal playing grids in addition to the usual square grid, and all three grids can be played in three different sizes. I've also implemented a "strings-and-coins" variant, which is also unique. There are also seven different color palettes which were designed to be distinct for people with impaired color vision. Stellar Dots & Boxes can be played by 2, 3, or 4 players or against the AI. It was conceived as a social game with players sitting together around an iPad (or iPhone). This app uses the Foundation and the UIKit. The iPad version was designed for the larger playing area and is not just a larger implementation of the iPhone version.

  • The Quarter Mile Math Program (Development)

    To download a demo version, click on the Download Demo button. Mac versions require Classic or earlier.


  • Languages

    C, Swift, C++, Swift 5, Swift 4, Objective-C, SQL, C#
  • Frameworks

    UIkit, Cocoa Touch, iOS SDK, Core Data, GameKit, .NET, Message UI
  • Libraries/APIs

    iOS Native Libraries, iOS API, RxSwift, Core Graphics, Microsoft Foundation Class Library (MFC), Firebase iOS SDK, Facebook iOS SDK
  • Tools

    GitHub, Xcode, AWS SDK
  • Paradigms

    Agile Software Development, Object-oriented Programming (OOP), XP, Unit Testing, UX Design, Model View Viewmodel (MVVM), Dependency Injection
  • Platforms

    MacOS, iOS, Windows, Mobile, Firebase
  • Industry Expertise

  • Other

    SwiftUI, User Interface (UI), Embedded Software, Embedded Software Engineer, App Store, APIs, SDKs, RESTful APIs, Combine, Image Processing, Machine Learning, AVFoundation, iOS Camera, iOS Video
  • Storage

    JSON, Microsoft SQL Server


  • Bachelor of Science degree in Electrical Engineering
    1968 - 1975
    Massachusetts Institute of Technology - Cambridge, Massachusetts


  • Certified SAFe® 4 Practitioner
    JUNE 2019 - JUNE 2020
    Scaled Agile, Inc.

To view more profiles

Join Toptal
Share it with others