Made with
Standard Resume
Learn more

Thong Nguyen

CTO, Software Engineer
London
|

tumtumtum@gmail.com
|

+44 7547152093
I was born in Vietnam, raised in New Zealand and currently live in London. I've been programming computers since I was 8 and my passion for technology has made me an expert in many areas; from hardware to software to design to management. I can manage both design and technical teams and have taken ideas from conception to design to code to shipping. I take pride in my technical skills and am comfortable coding in any environment from low-level assembly to high-level languages like C++, Java, Objective-C and C#. The open source projects I have contributed to will give insight into my practical technical skills. I enjoy leadership roles where I am still able to spend time coding. I believe this hands-on approach makes me a more effective leader; someone who is able to build a team from nothing to something special in a very short amount of time.
T
N

Work Experience

IRA Services Trust Company

Chief Software Architect, Software Consultant
|

May 2015 - Current

My team and I built ISCP (IRA Services Cloud Platform); a modern web service based custodial system for IRAs (Individual Retirement Accounts). The ISCP manages accounts for IRA Services clients. Additionally the ISCP acts as a "Custodian as a Service", allowing third party investment firms, advisors and their clients to fund investments with retirement money.

  • Built and managed a development team across multiple continents
  • Principal designer of platform and system architecture
  • System now manages over $2B in assets
  • Tech: C#, WebServices, Azure, SQL Server, Redis, ServiceBus, AngularJS, ReactJS
  • https://docs.iraservices.io

Global Radio

Software Consultant
|

May 2014 - Feb 2015

My team and I designed and implemented an audio broadcast logging system that enabled real-time, random-access playback and export of past broadcasts. This was a replacement for a system that could take up to 6 hours to export clips of past broadcasts. The new system was designed and implemented as a distributed multi-node system and is highly resilient to failure.

  • Designed and implemented a multi-node clustered audio recording system and web-based UI
  • Implementation enabled the business to have continuous archiving of broadcast audio even in the event of complete failure of all database and storage servers
  • Designed and built a cross-platform C++ & libuv based high-performance audio streaming server capable of server-side individualised audio ad targeting
  • System became basis for Global's new 7 day listen again and podcast service
  • Tech: C#, EC2, Postgres, Redis, RabbitMQ, GlusterFS

Bloom.fm

CTO, Co-founder
|

Dec 2010 - Apr 2014

I was CTO, product director and co-founder of Bloom.fm, a London based mobile music streaming app. I set the product and tech vision for the company and recruited and led the design and tech teams (18 people).

After almost two years of intense development, we launched our iOS and Android apps which became, consistently, the highest ranked music apps on the App Stores and won numerous awards and accolades for innovation, usability and interaction.

  • CTO & Product Director
  • Managed a £1.5M annual development budget
  • Principle architect for iOS app (140,000 lines of Objective-C)
  • Grew to over 1 million UK users in only 16 months
  • Built IT infrastructure across two datacentres including 1.5 petabytes custom GlusterFS storage
  • Loved building and leading a team of designers and developers to turn an idea into a product reality
  • Tech: Objective-C, C++, Java, C#, CentOS, Postgres, Redis, RabbitMQ, GlusterFS

Digital Distribution Networks Limited

Technical Director, Lead Software Architect
|

Aug 2008 - Dec 2010

I was recruited as the technical director for a newly founded startup. As the technical director I was in charge of recruiting and building a development team from scratch as well as deciding on the technologies and best practises for the nascent team. Within a month I had recruited a team, setup all development infrastructure (code repo, continuous integration etc). Within a year my team of only 6 produced a music streaming desktop application as well as all the backend infrastructure to support it.

  • Technical team leader
  • Design and implementation of server and network infrastructure
  • Technical architect and lead developer of C++ native desktop app (500,000 lines of C++) supporting OSX, Windows and Linux
  • Tech: Qt, C++, C#, CentOS, MySQL, Postgres, Memcached

Intranel Ltd

Software Architect, C# Software Consultant
|

2006 - 2008

I came into Intranel as an expert consultant, tasked with upskilling the team in C# and consulting in the development of their VideoScribe product.

  • Up-skilled and mentored engineers in OOP and C#
  • Worked with team to ship VideoScribe as a complete product (C#, Directshow)
  • Successfully implemented Intranel's ambitious fully dynamic object-database (Intranel Ontology) which was a critical subsystem for their VideoScribe product
  • Tech: C#, DirectX, DirectShow

AudioPilot

Software & Hardware Engineer
|

1998 - 2008

AudioPilot provides music services and technology to retail environments, allowing per-store customisation of in-store radios. I joined AudioPilot as a part time computer technician and helped the company grow to become the country's largest retail music platform. For most of this time I was the only technical person in the company, managing all the hardware and day to day operations, as well as developing the software that powered the company's platform.

  • Computer technician
  • System Administrator
  • Planned and setup international Office in Tianjin (china)
  • Designed and developed the software behind AudioPilot (C, C++, Java, OpenVPN, VNC)
  • Designed and developed a custom Linux distribution for digital video billboarding
  • Tech: Java, C++, Win32, Crux Linux, Rhino JS

DotGNU

Portable.NET virtual machine developer
|

2003 - 2005

I joined the DOTGNU project in 2003 as a volunteer developer in charge of threading and optimisation. My goal was to help the development of a cross platform clean-room implementation of .NET.

  • Lead developer for threading subsystem and garbage collector
  • Implemented .NET asynchronous delegates and System.Threading namespace
  • Implemented efficient user-space monitor locks
  • Implemented null reference check elimination, runtime method inlining and other VM optimisations

TRUMPF

Consultant
|

May 2003 - May 2003

As one of the lead developers on the DotGNU team, I was hired as an expert consultant helping TRUMPF optimise and improve the performance of their Portable.NET based embedded laser control interface.

University of Canterbury

Programming Languages Tutor and Teacher's Assistant
|

2000 - 2002

I was the Tutor (Teacher's Assistant) for the Programming Languages course at the University of Canterbury. This course taught basic compiler construction and functional and logic based languages (Haskell, Prolog).

  • Running labs
  • Student mentoring
  • Whiteboard tutoring of Haskell and Prolog
  • Prepared and marked assignments
  • Scored 4.8/5 on end of year students' feedback. Highest score of all tutors for the year.

Lowes Technology Services

Computer Technician
|

1996 - 1999

During my high school years I worked part time as a technician at Lowes Technology Services which grew from a garage operation to New Zealand's largest PC retailer.

  • Software & hardware diagnostics and repair
  • PC assembly (built over 500 PCs end-end)
  • Worked with MD to design and implement company website

Education

University of Canterbury

Bsc Computer Science
|

1998 - 2001

Projects

StreamingKit

Project Owner
|

2013 - Current

A popular Cocoa library for streaming audio on iOS and OSX.

Key features include: Gapless playback, low power usage, de-coupled input sources, EQ.

Mono

Contributor
|

2003 - 2005

Implemented Mono's first ECMA compliant ArrayList implementation. Contributed various bug patches to the VM relating to sync/lock, threading and generic types support.

Portable.NET

Contributor
|

2003 - 2005

Implemented threading subsystem for Portable.NET.

http://git.savannah.gnu.org/cgit/dotgnu-pnet/pnet.git/tree/engine/lib_monitor.c

http://git.savannah.gnu.org/cgit/dotgnu-pnet/pnet.git/tree/support/interlocked_x86.h

http://git.savannah.gnu.org/cgit/dotgnu-pnet/pnet.git/tree/support/interrupt_win32.c

http://git.savannah.gnu.org/cgit/dotgnu-pnet/pnet.git/tree/support/thread.c

Shaolinq

Project Owner
|

2013 - Current

A LINQ provider and ORM for .NET with first-class support for Postgres, MySQL, Sqlite, SQL Server. Unique features include deflated references, partial updates, query plan caching, computed & calculated columns and filtered indexes.

VNC

Contributor
|

2000 - 1999

Developed first zlib based compression extensions to Windows VNC server.

VNCX

Project Owner
|

1998 - Current

Developed first ActiveX control for VNC in C++. Free, multithreaded, fast and reusable. Integrated into various commercial and free software products.

PowerMenu

Project Owner
|

1999 - 2001

A popular windows utility installed on millions of PCs worldwide.

Skills

  • Technical Leadership
  • Product Design
  • C#
  • Objective-C
  • Java
  • C++
  • iOS development
  • Mobile Development
  • Web Services
  • Compiler Construction
  • Cocoa
  • CoreAnimation
  • UIKit
  • Swift
  • Win32
  • COM
  • Audio/Video encoding
  • Postgres
  • Redis