David Reich

David Reich

Kew, Australia
Hire David
Scroll To View More
David Reich

David Reich

Kew, Australia
Member since September 3, 2013
David is a seasoned software developer with several iOS apps currently in the App Store (using both Objective-C and Swift). He's worked most recently with Swift and Objective-C, and just prior to that with C++, C#, and C, and with SQL and Transact-SQL using Visual Studio, SQL Server, and SQL Server Management Studio on Windows and OS X. He excels at all stages of the software development life cycle, from concept to implementation.
David is now available for hire
Portfolio
  • Stellar Software Pty, Ltd.
    iOS, Swift, Objective-C, Xcode, C++, C#, Visual Studio, Cocoa Touch, UIKit...
  • Musikyoshi
    iOS, Xcode, Swift, Cocoa Touch, UIKit, CoreData, CoreGraphics, AVFoundation
  • Tennis Australia
    iOS, Xcode, Objective-C, Cocoa Touch, UIKit, CoreData, CoreGraphics
Experience
  • Object-oriented Programming (OOP), 20 years
  • SQL, 7 years
  • Objective-C, 3 years
  • Swift, 2 years
  • Cocoa Touch, 3 years
  • iOS SDK, 2 years
  • User experience design, 20 years
Kew, Australia
Availability
Full-time
Preferred Environment
Xcode, iOS, Windows, OS X, Visual Studio, Eclipse
The most amazing...
...thing is that code I wrote almost 20 years ago is still shipping.
Employment
  • Principal
    Stellar Software Pty, Ltd.
    2002 - PRESENT
    • Designed and developed two apps currently in the App Store, with a third in development.
    • Currently working on an advanced search app for iTunes/iBooks/App Store. It is written in Swift and queries Apple's iTunes search API.
    • Performed all work in Xcode, including application design, graphics, UI, etc.
    • Coded in Swift 2 and Objective-C.
    Technologies: iOS, Swift, Objective-C, Xcode, C++, C#, Visual Studio, Cocoa Touch, UIKit, CoreData, CoreGraphics, GameKit
  • Software Developer
    Musikyoshi
    2016 - 2016
    • Developed an app for teaching musical instrument performance.
    Technologies: iOS, Xcode, Swift, Cocoa Touch, UIKit, CoreData, CoreGraphics, AVFoundation
  • Software Developer
    Tennis Australia
    2015 - 2016
    • 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.
    • Other 7+ apps are for internal distribution and are part of the operation of the Australian Open.
    • Work covered the user interface, data entry, and display.
    Technologies: iOS, Xcode, Objective-C, Cocoa Touch, UIKit, CoreData, CoreGraphics
  • Software Developer
    Fob App, Inc.
    2015 - 2015
    • 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, CoreData, CoreGraphics, MessageUI, AWS SDK, Facebook SDK.
  • Software Developer
    Startup Company
    2015 - 2015
    • 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
    Praemium Limited
    2014 - 2015
    • 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
    Megabus Pty, Ltd.
    2012 - 2014
    • 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 code base.
    • 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
    IGT (Australia) Pty. Limited
    2012 - 2013
    • 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
    Momentum Technologies Solutions Pty, Ltd.
    2010 - 2011
    • 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
    Megabus Pty, Ltd.
    2009 - 2010
    • 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
    Barnum Software
    1994 - 2009
    • 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
    LibraryWorld, Inc.
    1992 - 2009
    • 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
    Trimble Planning Solutions Pty, Ltd.
    2007 - 2008
    • 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 an 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
    IGT Systems
    2006 - 2007
    • Worked on the Commission-Based Program Play (CBPP) module in requirements analysis, functional and technical specification, user interface design, database specification, 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
Experience
  • The Quarter Mile Math program (Development)
    http://www.barnumsoftware.com

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

  • Dots & Boxes (Development)
    https://itunes.apple.com/us/app/dots-boxes-triangles-hexagons/id913029637?mt=8

    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 colour palettes which were designed to be distinct for people with impaired colour 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.

  • Stellar Cram (Development)
    https://itunes.apple.com/us/app/stellar-cram/id905178751?mt=8

    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.

  • Selfie Test Drive (Development)
    https://itunes.apple.com/au/app/selfie-test-drive/id1025334011?mt=8

    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, 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, CoreData, CoreGraphics, MessageUI, AWS, and Facebook frameworks and SDKs. The work covered the user interface, database design, and display.

Skills
  • Languages
    C, C/C++, C++, Swift, C#, SQL, Objective-C
  • Paradigms
    Object-oriented Programming (OOP), Agile Software Development, User experience design
  • Platforms
    Windows, Mac OS X, iOS
  • Frameworks
    .NET, iOS SDK, Core Data, Cocoa Touch, GameKit, Message UI
  • Libraries/APIs
    MFC, Core Graphics, UIkit, Microsoft Foundation Class Library (MFC), Facebook iOS SDK
  • Storage
    Microsoft SQL Server
  • Tools
    AWS SDK
  • Misc
    AVFoundation
Education
  • Bachelor of Science degree in Electrical Engineering
    Massachusetts Institute of Technology - Cambridge, Massachusetts
    1968 - 1975
Hire the top 3% of freelance developers
I really like this profile
Share it with others