• The Leader's Discipline(tm) by The Roy Group 2016
  • Symfony2 training by KNP Labs 2013
  • Professional Member of the ACM 2005-
  • Member of the IEEE 2004-
  • Member of the IEEE Computer Society 2004-
  • Bachelor of Science (Computer Science) University of British Columbia 2001
JustPlainSimple Technologies Inc.
Aug/2007 - present

Founder/Director

JustPlainSimple is the corporation I founded to provide consulting services and project development. Its mission statement is to provide workflow and process improvements through the use of computer programming.

Responsibilities
  • Architecting and implementing web applications
  • Building and configuring Cloud infrastructure and systems
  • Mentoring, coaching around software development careers
  • Advertising services to recruitment agencies
  • Book-keeping and other corporate financial management
Unbounce Marketing Solutions Inc.
Nov/2016 - Present

Head of Security Full-Time

Unbounce is a SaaS company providing landing page creation tools to marketing departments. The security department is driven by the mission statement, "To know, with certainty, that an attack to Unbounce systems will be minimized or prevented." In 2018, I moved the Security department out of the Product business unit and into the Operations unit to focus on a holistic security program encompassing all aspects of data security across the company (people, systems, hardware, software).

Responsibilities
  • report to the Chief Financial Officer (previously, Chief Technology Officer)
  • provide guidance to Executives
  • administer and build a Security department
  • oversee department budget
  • manage department personnel
  • perform security design review, penetration testing, threat modeling, and risk management
  • train employees on security awareness, secure coding, and secure cloud infrastructure.
  • lead the incident response team
  • provide external-facing communication to prospective and existing customers, security researchers, and investigators.
  • lead the PCI compliance program
  • lead the technical aspects of GDPR compliance
  • architecting and implementing software to consume and respond security events
Technologies Used
  • AWS
  • CloudSploit
  • Go
  • Kali
  • Python
  • Ruby
  • SonarCloud
  • Tenable
Unbounce Marketing Solutions Inc.
Mar/2015 - Nov/2016

Systems Automation Developer Full-Time

Unbounce is a SaaS company providing landing page creation tools to marketing departments. The systems automation team is tasked with codifying processes and workflows to increase efficiency and decrease error rates.

Responsibilities
  • Create and configure AWS infrastructure to support microservices
  • Assess and report system and application security
  • Provide software development to infrastructure activities
  • Automate infrastructure activities
  • Assess and improve the efficiency of workflows
  • Lead security guild and provide security mindset training
Technologies Used
  • AWS
  • Ansible
  • Docker
  • Jenkins
  • Python
  • Ubuntu 12.04/14.04
  • Vagrant
OpenRoad Communications Inc.
Apr/2014 - Oct/2014

Software Developer Consultant

OpenRoad provides software development services to external clients, centering mainly in Web application development. I was contracted to provide short-term software development services for one of their clients, to create custom modules for their IP.Board forum software.

Responsibilities
  • Create IP.Board modules to interact with Cleanspeak.
  • Create automated development environment (dev-env) setup using Ansible and Vagrant.
Technologies Used
  • Ansible
  • PHP
  • Vagrant
Electronic Arts Inc.
May/2010 - Mar/2013

Technical Lead, EA Digital Consultant

Electronic Arts (EA) is an industry leader in the production, sale, and marketing of video games. The team, EA Digital Web Publishing (EADWP), is focused on creating marketing websites and other consume-facing products for each major game produced by EA. A major accomplishment was overseeing the development of the main forums software (http://forums.ea.com), scaling it to 5000+ daily concurrent users spanning 7 countries, supporting well over 1M pageviews per day and a post count of over 50M (combined).

Responsibilities
  • Develop and lead a strike team for a Symfony2 marketing teaser website with a 9-day deadline. It was 95% complete in 5 days.
  • Provide technical leadership for the EADWP Platform Team, who was tasked with providing tools and process improvements to internal teams.
  • Create a detailed plan and training document to help teams transition from Subversion and Perforce to Git version control systems, as well as SOA architecture for their websites.
  • Provide performance and profiling audits of various Drupal marketing websites.
  • Provide security audits and solution proposals on many public-facing marketing websites.
  • Develop and present proposals for future Web platforms
  • Investigate new ways to streamline the processes of website development and deployment.
  • Create automated provisioning scripts using Vagrant/Puppet to create full environments in 34 minutes without any user intervention or knowledge of product. The previous process took over 2+ hours of manual steps.
  • Lead the forums team (4-6 people) through over 30 monthly releases (3-week dev, 1- week QA). I transitioned the project into an ad-hoc release schedule (continuous delivery) when main development was complete.
  • Reorganize the forums project to streamline and standardize code development, deployments, and testing.
  • Manage the forums project and product roadmap.
  • Work with very large data sets, in a multi-tier multi-stage environment.
  • Write software for the forums to add new features, fix bugs, scale the software and underlying systems.
Technologies Used
  • AJAX
  • Apache Solr
  • CSS3
  • Drupal 7
  • Git
  • HTML5
  • JQuery
  • Java 1.4/1.6
  • Lucene
  • Mac OSX
  • Memcached
  • MySQL 5.5
  • PHP
  • Puppet
  • Rails
  • Ruby 1.8/1.9
  • SQL
  • SVN
  • Symfony2
  • Tomcat 5/6
  • Ubuntu Linux
  • Varnish
  • Windows 7
Jean Marcus
Mar/2010

Developer/Trainer Consultant

Ms. Marcus is part of the UBC Sustainability Office, and she required further training on how to use Drupal effectively, as well as some additional changes to the course listing module in the UBC Sustainability website.

Responsibilities
  • Generate expanded documentation about Drupal and a lesson plan for in-person training.
  • Coordinate with UBC Enrolment Services’ IT staff to change the SOAP data schema, incorporating multiple available sessions per course.
  • Update the Drupal module to parse the new SOAP schema, store the new data in the database, and display it to the screen in an efficient manner.
Technologies Used
  • CSS
  • Drupal
  • Git
  • HTML
  • Mac OSX
  • MySQL
  • PHP
  • Ruby
  • SOAP
  • SQL
UBC Learning Exchange
Jul/2009 - Mar/2010

Software Developer Consultant

The Learning Exchange hosts programs that allow students to volunteer their time to work with children, seniors, and under-privileged persons in order to expand their awareness of life. Their registration website required annual updates to registrant information as well as process flow streamlining.

Responsibilities
  • Coordinate with Learning Exchange administrators to gather annual changes to the website.
  • Design and develop the streamlined registration process.
  • Implement required front-end and database schema changes.
Technologies Used
  • CSS
  • Git
  • HTML
  • MS Windows
  • Mac OSX
  • MySQL
  • PHP
  • SQL
  • Subversion
UBC Sustainability Office
Jul/2009 - Feb/2010

Architect/Developer Consultant

The UBC Sustainability Office’s website needed to be redesigned to showcase UBC’s new environmental initiatives. The website is used by faculty and students, as well as the mainstream media to hear about UBC’s progress on initiatives. The solution was to create a Drupal website with several custom modules. I was brought in as a data architect and Drupal developer. The project launched with great success and the client was extremely pleased with the result. Other departments are now interested in the technologies used to create the course listing from UBC Enrolment Services. Please view this website at: http://www.sustain.ubc.ca.

Responsibilities
  • Coordinate with the design team (outsourced) to implement the design into a Drupal template.
  • Interface with UBC Enrolment Services to create the first-ever web service that provides UBC course data to external departments.
  • Create a custom Drupal module to consume the UBC Enrolment web service and import course data into Drupal and then display it.
  • Create a custom parser in Ruby to import data from the existing Sustainability website into the Drupal database.
  • #
  • Create various Drupal views and blocks relating to the aggregation and display of large amounts of data.
  • Rewrite and simplify a JavaScript module for calculating consumption and savings at UBC.
Technologies Used
  • CSS
  • Drupal
  • HTML
  • JavaScript
  • MS Windows
  • Mac OSX
  • MySQL
  • PHP
  • Ruby
Urban Vine Enterprises Ltd.
Jan/2010

Software Developer Consultant

Urban Vine has a consulting department that supports various clients in Vancouver. Their project required a registration form inserted into Drupal with several constraints based on the time of day and user-provided content, as well a 5-day turnaround time.

Technologies Used
  • Drupal
  • Git
  • Mac OSX
  • MySQL
  • PHP
  • SQL
UBC Development Office
Jul/2009 - Nov/2009

Software Developer Consultant

The Development Office’s donation website needed to be retooled to add new submission criteria and streamline the donation process for different types of donors. The office also requested easier data export capabilities to their legacy systems. See their website: http://www.supporting.ubc.ca/onlinedonation.

Responsibilities
  • Coordinate with the Manager of Donor Relations to redesign the process flow for online donations.
  • Develop and redesign the website front-end.
  • Design and implement changes to the database schema
  • Develop and redesign the donation data export mechanism
Technologies Used
  • CSS
  • HTML
  • MS Windows
  • Mac OSX
  • MySQL
  • PHP
  • SQL
TELUS
Feb/2007 - Apr/2009

Programming/Business Systems Analyst Consultant

TELUS is undergoing the 2nd production phase of its billing system upgrade; this time bringing 3 million customers to the new system. The Bill Presentment team acts as a receptacle for data from the billing, customer, and usage data. That data is compiled and transformed into a bill for a single month and stored within a central database. The data is then sent to a printing system where it makes up the bills being printed to the customer. The goal of this position is to ensure that 1.5 million bills are processed correctly every month.

Responsibilities
  • Act as a Business Systems Analyst and liaison between Bill Presentment and external teams: Billing Operations, Enterprise Data Warehousing, and upper management.
  • Act as a 24/7 first responder for bill presentment, ePost, eBill and other billing data issues that occur during a bill run.
  • Perform defect and impact analysis/reporting on Production billing problems.
  • Investigate SQL, Unix, and Java defects due to data or code errors.
  • Design and develop code and data hot-fixes in SQL or Unix shell script for errors encountered during bill runs.
  • Assist in the development of the Web front-end for the new eBill system.
  • Create and maintained tracking information for Bill Presentment changes destined for production.
  • Create a team wiki website for better team communication and documentation.
  • Manage Production change control processes for the Bill Presentment team.
  • Train in Billing processes from end-of-cycle to bill printing.
  • Generate negative test cases (failure scenarios) for the next phase of development code.
Technologies Used
  • Backbase JSF
  • Control-M
  • Eclipse
  • IBM AIX
  • Informatica
  • Java 1.4/1.6
  • KSH Scripting
  • Oracle 10g
  • Python
  • SQL
  • SQL Tuning
  • Spring
  • TOAD
  • iBATIS
TELUS
Dec/2005 - Nov/2006

Environment Management Consultant

TELUS is the lead telecommunications company in Western Canada and is currently rebuilding their 30-year-old billing system with up-to-date technologies. This project is the largest national project with an estimated $400 million budget. The system is built upon a multi-tiered web services architecture, housed inside the J2EE container, BEA WebLogic. It consists of 4 service components, 8 databases, and numerous legacy services, making it one of the largest system overhauls in the Telecommunications industry.

Responsibilities
  • Install, configure, and maintain over 10 pre-production WebLogic servers.
  • Install, configure, and maintain the production WebLogic cluster (including 2 additional clustered environments for performance testing and production staging).
  • Write Unix shell scripts to manage the deployment of source code and the support of WebLogic servers within all environments.
  • Write preliminary Jython scripts for accessing the WebLogic Scripting Tool for use with the upcoming WebLogic 9.2 conversion.
Technologies Used
  • BEA WebLogic Server 8.1 SP4
  • Harvest
  • Java J2EE
  • Jython
  • Shell Scripting
  • Unix
  • WebLogic Scripting Tool
Raymond James Ltd.
Feb/2005 - Dec/2005

J2EE Developer Consultant

A leader in the financial world, Raymond James Ltd. provides investment services and products throughout North America and the world. I was one of two contractors hired to produce J2EE Web applications for existing services and maintain existing Web applications.

Responsibilities
  • Upgraded 4 enterprise web applications to use a project management tool, Jakarta Maven, for automated building, testing, and deployment. This improved a (per release) deployment and testing turnaround time from 30 minutes (manual operations) to 3 minutes (automated).
  • Translated the phone billing audit application from a Microsoft Access desktop application to a Java Struts Web application.
  • Redesigned the company Intranet and translated dynamic content IIS/ASP to Apache/PHP.
Technologies Used
  • Apache HTTPd
  • CSS
  • CVS
  • HTML/XHTML
  • Java (Servlets, Struts, J2EE)
  • JavaScript
  • MS Windows XP/2003
  • Maven
  • Tomcat
  • VMWare
Interosoft
Sep/2004 - Jan/2005

C#/.NET Application Developer Freelance

As a newly-formed company, InteroSoft is committed to developing and bringing to the consumer market software utilities for the mobile professional. InteroSoft is currently a small company that depends on each employee to help with all aspects of its operation.

Responsibilities
  • Provide technical expertise about a product’s viability in the consumer market.
  • Design and create new products according to specification.
  • Provide assistance, where needed, with other areas of the business.
Technologies Used
  • MS PowerPoint COM/Interop
  • MS Windows (98 - XP)
  • MS Word COM/Interop
  • Visual C#.NET
Scopeworks Technology Inc.
Jan/2004 - Mar/2004

Developer Freelance

Responsibilities
  • Provide complete SDLC services to create a customer-relations management web application for an election campaign consisting of 300,000 records.
  • Provide 24/7 support for the application’s existing accounts when necessary, with solution turnarounds within 12 hours.
  • Create reports based on information contained within the database.
Technologies Used
  • Apache HTTPd
  • CSS
  • HTML
  • JavaScript
  • MS Windows XP
  • MySQL
  • PHP
ITServices UBC
Dec/1997 - Oct/2003

Various Positions Full-Time

ITServices is an administrative branch of the University of British Columbia, providing custom programming, database administration, Internet, and telephone services. Although my employment started out as a Level 1 Customer Support Representative in 1997 (student), I was rewarded with many promotions until I ended as a Programmer Analyst in 2003.

Responsibilities
  • Lead developer for the campus single sign-on application, written in Java and J2EE. It interfaces to an Oracle database and communicates between an authentication client and the main server back-end through an XML-RPC web service.
  • Redevelop the campus' online directory service, written in ColdFusion with Java/Perl libraries to interface with the organization’s LDAP service.
  • Meet with clients to discuss project proposals and solutions.
  • Assist in the interview and hire of 2 programmer analyst positions.
  • Create e-commerce websites for external clients that connected to the organization’s e-commerce transaction system, written in Java/Perl.
  • Write technical documentation for web applications.
  • Mentor junior developers on programming languages and techniques.
  • Team leader for a group of 15 Level 1 and Level 2 support personnel.
  • Redevelop the customer service department’s Intranet website and support knowledge base from a static website to a content management system, written in ColdFusion with an Oracle database (developed 1999; still in active use as of 2010).
  • Train junior employees on troubleshooting and solving problems.
  • Solve customer support requests involving telephone, email, and walk-in Internet problems relating to the campus Internet and email account service.
Technologies Used
  • Ant
  • Apache HTTPd
  • CSS
  • ColdFusion
  • HTML
  • J2EE
  • JUnit
  • Java 1.2 - 1.4
  • JavaScript
  • Linux
  • MS Windows (3.0 - NT)
  • Mac OS v7-9
  • Oracle 7.0.3
  • Perl
  • Shell Scripting
  • Sun Solaris
  • Tomcat
  • WebLogic
  • XML-RPC
UBC Tri-Mentoring Program
Sep/2008 - present

Industry Mentor

The tri-mentoring program, created by the UBC Computer Science department, matches an industry mentor (a UBC alumni) with a senior student and a junior student. The industry mentor is able to provide mentoring to the senior student who, in turn, provides mentoring to the junior student. The main goal of the program is to help students learn valuable skills about the business world that cannot be taught in school. As a reward, the mentor keeps in touch with the alumni network and improves leadership and training skills.

Morgan Elementary School
Aug/2005 - Oct/2005

Website Designer/Developer

Morgan Elementary School needed a website to provide scheduling information to the school community. Being a publicly funded school, I had to work within their budget (basically, no money) for extra-curricular projects.

Responsibilities
  • Design and develop the school's official website.
  • Write technical documentation so the school administration can update the website with ease.
Technologies Used
  • CSS
  • Microsoft Word
  • OpenOffice
  • PDF Creation Utility
  • Subversion (SVN)
  • XHTML
  • University of British Columbia

    5 year service award for mentoring Computer Science students. (2013)

  • University of British Columbia

    10 year service award for mentoring Computer Science students. (2018)

  • Computer hardware
  • Physical and computer security
  • Website design and development
  • Clean code and process streamlining
  • Software automation
  • Open-source programming
  • Mentorship