Skip to content

Markdown version of my current resumé

Notifications You must be signed in to change notification settings

plmwong/curriculum-vitae

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 

Repository files navigation

Phillip Wong

Full-stack software developer with experience working in a variety of business areas and domains, currently focussed on working in data engineering and analysis.

I enjoy working in small, highly capable and self-driven teams to deliver well crafted software products. I am currently living and working in downtown Vancouver, BC, Canada.

I also have a mishmash of open source and personal projects hosted on my Github account: https://github.com/plmwong

Experience

PayByPhone Technologies Inc. — Data Engineer

August 2016 — present   |   Vancouver, Canada

Founding member of the Data Services team, creating the 'Data & Insights' analytics platform to help people more easily leverage the parking and transaction information that we generate in our day-to-day business.

Key Projects

Data & Insights (ongoing)

« .NET 4.6 C#, dotnetcore2, Python, Javascript + AngularJS, Golang, Amazon Web Services + Terraform, Keboola, Snowflake DB, Jupyter Notebooks »

  • Developing the new suite of services and applications for the new 'Data & Insights' platform.
    • Creation of the ETL services for data extraction, integration, transformation and publishing to our data visualisation and reporting tools.
    • Developing the web APIs and web UIs for the new Operational Reporting feature.
    • Developing the web APIs and other services for the Scheduled Reporting feature.
  • Created a custom terraform provider (https://github.com/plmwong/terraform-provider-keboola) to allow configuration management for the Keboola Connection platform in an reliable, automated and repeatable fashion, as well as keep it in source control. Keboola themselves featured this provider in a blog post: https://500.keboola.com/terraform-and-keboola-connection-a-paybyphone-integration-story-b5f48dda9f3c

PayByPhone Technologies Inc. — Senior Software Engineer

July 2013 — August 2016   |   Vancouver, Canada

Working within a small, agile team, primarily responsible for the development and continuous delivery for the Enforcement and Rates/Restrictions domains.

Key Projects

Monitoring and Metrics

« .NET 4.6 C#, StatsD, Consul, Librato, PostSharp, NodeJS »

  • Created spectator (https://github.com/paybyphone/spectator), a Windows service for monitoring performance counter and instrumentation data and forwarding it on to StatsD for aggregation. This was deployed to all of the Windows server infrastructure and enabled monitoring of all key system metrics.
  • Owned the design and implementation of incorporating instrumentation and metrics in the new core Parking and Payment APIs. Having these metrics enabled us to profile and measure service and database calls, allowing us to identify and resolve potential performance issues before the go-live date in July 2016.
  • Established the guidelines and practices for developers to consider when adding StatsD instrumentation to their own applications.
Global Rates Engine (GRE)

« .NET 4.5 C#, MVC Web API, Amazon Web Services, DynamoDB, Docker »

  • Brand new rates management and calculation engine to simplify and unify the separate North American and European rates models/engines/services and lower existing maintenance and running costs.
  • Took a 'technical domain lead' role for this project, with the additional responsibilities of ensuring that stories are well-defined and prepared for the team to discuss, as well as being the primary code reviewer.
Paris Personalised-Parking

« .NET 4.5 C#, MVC Web API, Oracle PL/SQL »

  • Delivered on new personalised-parking features, enabling cities to charge different parking rates depending on a customer's eligibility.
  • Designed and helped deliver the GPS-enabled Enforcement API, allowing patrollers to query parking data based on their physical location. These features were both successfully launched first in the Paris market, and continue to be rolled out across other cities and markets.
  • To increase the repeatability and speed of our database deployments, I created soothsayer (https://github.com/paybyphone/soothsayer), a command-line tool for managing Oracle database migrations through PL/SQL scripts. This tool currently handles all database migrations for the Rates services, and is being expanded through the other Oracle-dependent systems.
Rapid Enforcement Query Service (REQS)

« .NET 4.5 C#, ServiceStack, Redis, ØMQ, Oracle PL/SQL, Event Sourcing, Selenium »

  • Created REQS, a new high performance Rest API for patrollers to query, using an event-sourcing architecture and utilising Redis as an isolated high performance memory store.
  • Designed and implemented the key and data structures for storing, indexing and expiring parking sessions within Redis, focussed on simple and fast querying.
  • Created and continuing to maintain log4net.Raygun (https://github.com/plmwong/log4net-raygun), a custom log4net appender for sending error exception data and related info to the raygun.io service from any .NET application.

Intergen — Software Developer in Enterprise Applications

January 2009 — April 2013   |   Wellington, New Zealand

Primarily using Microsoft technologies, worked on a number of projects for a variety of different clients. Worked in the full gamut of the software development cycle, including gathering user requirements and working with domain experts, designing technical solutions, implementation/delivery, testing and deployment.

Also acted in a team lead role on a couple of smaller team (3 - 5 person) projects.

Key Projects

Kiwibank — InTouch Upgrade / Anti-Money Laundering Compliance

« .NET 4.0 C#, WCF Services, Domain Driven Design, PostSharp AOP, CQRS, WPF, Prism, MVVM, AutoMapper »

  • Worked in a team of 10-12 developers to build a ground up replacement for Kiwibank’s existing customer and account management front-end desktop client, using WPF on top of a set of WCF services.
  • Took an ownership role in the design and framework development of the domain layer and application services using a Domain Driven Design (DDD) and basic CQRS approach.
  • Designed the framework used for domain object validation, which used a specification pattern and extension methods to create a fluent-style validation language that could be more readily shown to, read and understood when collaborating and verifying with the business analysts.
Tertiary Education Commission — Industry Training Register

« .NET 3.5 C#, WCF Services, x.509 certificate security, SQL Server 2008, XSD design, soapUI web service testing »

  • Helped in the design and delivery of this education sector web service, which captures learner event information (e.g. enrolments, course completions) from the Industry Training sector (~40 external providers, ~10,000 messages/day). This new capability for capturing accurate and up-to-date student information has saved the TEC millions of dollars in funding.
  • Team lead on a follow-up project to resolve user issues, and provide extra functions; in consultation with Industry Training providers and the Data Warehouse team. Personally improved the performance of daily jobs by 70% using indexes and optimizing database repository code.
  • Prototyped the asynchronous messaging architecture and implemented x.509 message security through a custom WCF binding.
  • Constructed the framework for running automated end-to-end web service tests using soapUI, allowing for a full regression suite of full functional tests to run nightly.
  • Implemented key integration with external data source dependencies by creating proxy WCF services, which translated requests / responses with these third-party web services and presented a simpler, common interface internally.
Sproket Markets — PartsTrader US Pilot

« .NET 4.0 C#, ASP.NET MVC3, WCF Services, jQuery, Entity Framework 4, SQL Server 2008 »

  • Implemented 6-8 screens for the pilot of this online car parts tendering system (commissioned by State Farm Insurance), designed to bring more competition and transparency to the auto repair market.
  • Worked alongside another developer to stabilise the registration process for the initial go-live release.
Tertiary Education Commission — Invest in a Plan

« .NET 3.5 C#, ASP.NET Webforms, Sharepoint 2007, WCF Services, SQL Server, SSRS, LINQ to SQL, MSBuild »

  • Lead Developer for a small team to implement business changes/enhancements to the Invest in a Plan set of web applications and web services, which are used by ~400 tertiary organizations and ~20 internal TEC staff to submit and review their investment plans, determining their level of government funding.
  • Created the administration dashboard for managing funds and plans for providers from year to year, which has been used for 3 years now without any changes or fixes being required.

Personal Projects

In addition to my professional experience, I also have a small number of personal and open source projects which can be found on my GitHub account: https://github.com/plmwong

Technical Summary

  • C# .NET Python NodeJS Javascript Golang VB.NET Java C++
  • MVC ASP.NET javascript AngularJS jQuery IIS
  • Test Driven Development Unit Testing NUnit IoC Dependency Injection
  • Domain Driven Design CQRS Eventing Service Oriented Architecture Microservices
  • Web Services RESTful SOAP Web API ServiceStack
  • Redis SQL Oracle SQL Server PostgreSQL Snowflake Jupyter
  • Git TFS
  • Agile Scrum Kanban

Education

MSc in Computer Science (Artificial Intelligence), with Distinction

2006 — 2008

  • Worked as a Research Assistant, performing experiments and analysis, working primarily with C++.
  • Victoria University of Wellington Masters Scholarship 2007
  • Awarded Hunter Scholar Prize for PhD Studies, 2008
  • Awarded Tertiary Education Commission Top Achiever Doctoral Scholarship, 2008.
  • List of Publications: http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/PhillipWong.html

BSc with First Class Honours in Mathematics and Computer Science

2002 — 2005

  • Translated GPA 3.92

About

Markdown version of my current resumé

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published