Phil Gebauer, Developer in Calgary, AB, Canada
Phil is available for hire
Hire Phil

Phil Gebauer

Verified Expert  in Engineering

Software Developer

Location
Calgary, AB, Canada
Toptal Member Since
February 16, 2018

For over 15 years, Phil has worked as a software developer for various fields including medical, eCommerce, social media, and blockchain. During his career, he's been a full-time employee and has worked remotely as a freelancer as well. Throughout those varied engagements, Phil was exposed to a variety of business and engineering challenges and learning opportunities.

Portfolio

Veri
MySQL, React, Swagger, JavaScript, Restify, Microservices, REST APIs...
Hootsuite
JavaScript, Advertising, Billing, Payment Processing, Amazon EC2, Vagrant...
Freelance
JavaScript, jQuery, osCommerce, Payment Processing, Amazon EC2, Linux, MySQL...

Experience

Availability

Part-time

Preferred Environment

IntelliJ IDEA, MacOS

The most amazing...

...system improvement I've made is a real-time tweet-matching algorithm that drastically reduced system load while handling several thousands of tweets per second.

Work Experience

Systems Architect | Lead Software Engineer

2016 - 2017
Veri
  • Designed the application and structure of the REST API that serves Veri’s product (a mobile video chat app); built using Node.js and a microservice-ready approach.
  • Designed and deployed a scalable back-end infrastructure on AWS and Docker Cloud.
  • Set up a fully an automated continuous delivery pipeline using Docker Cloud.
  • Mentored the engineering team on development patterns and best practices.
  • Maintained a technical roadmap of feature development and app releases in coordination with product owners, engineers, and external mobile development team.
Technologies: MySQL, React, Swagger, JavaScript, Restify, Microservices, REST APIs, Docker Cloud, Amazon EC2, Amazon CloudFront CDN, AWS Lambda, Node.js

Senior Software Engineer | Lead Software Engineer

2011 - 2016
Hootsuite
  • Led and managed the social advertising team, specifically the development.
  • Designed a billing and payments solution with anti-fraud measures for the ads product.
  • Integrated and scaled a real-time tweet archiving service using Twitter’s streaming APIs. Added self-healing mechanisms that detect and reopen degraded connections.
  • Designed a centralized solution for account authentication—allowing for multiple identity providers and protocols, including Twitter OAuth and SAML.
  • Created a REST API design that included the addition of OAuth authentication to the mobile API.
  • Researched and implemented a service that converts HTML into PDF documents to study the impact of partitioning and converting a shared code base into services.
  • Developed a suite of self-contained PHP libraries used by multiple internal clients.
  • Collaborated on the automation of infrastructure provisioning.
  • Developed an app for the Hootsuite app directory in my spare time to integrate the European equivalent of LinkedIn and XING into Hootsuite.
Technologies: JavaScript, Advertising, Billing, Payment Processing, Amazon EC2, Vagrant, Ansible, Python, Scala, React, MongoDB, MySQL, Microservices, OAuth, APIs, Streaming, REST APIs, PHP

Freelance Web Developer

2006 - 2011
Freelance
  • Maintained an eCommerce system.
  • Improved the order fulfillment process and inventory management for multiple warehouses.
  • Added forecasting for purchase orders, fraud detection checks, and UX improvements for conversion optimization.
  • Developed an application that assists in managing document lifecycles.
Technologies: JavaScript, jQuery, osCommerce, Payment Processing, Amazon EC2, Linux, MySQL, PHP

Web Developer

2006 - 2007
Invoke Company
  • Developed and maintained several client sites and tools with unique requirements, including a native Visual Basic application to convert and upload videos.
  • Collaborated on the development of an online music video platform.
  • Constructed online video contest websites that eventually evolved into a product for managing online contests.
Technologies: JavaScript, Amazon S3 (AWS S3), Linux, FFmpeg, VB.NET, jQuery, MySQL, PHP

Software Developer | Network Administrator

2005 - 2006
Ohio State University Medical Center
  • Developed native and web tools for clinical trial patient management using the .NET framework and PHP.
  • Maintained the department's local network comprised of Windows servers and desktop computers.
  • Configured and built desktop PCs from individually ordered parts.
  • Provided IT support for the staff.
Technologies: Microsoft Access, Linux, Azure Active Directory, Windows Server, .NET, PHP

Co-op Student Worker

2001 - 2004
Fraunhofer Institute for Security in IT
  • Researched and developed software for the security assessments of IT infrastructures.
Technologies: Web Technologies, Information Security

JRAC: A Concise and Easy-to-use JavaScript Client for JSON REST APIs

https://github.com/fubar/jrac
In my search for a simple and concise JavaScript client library for HTTP REST APIs, none of the npm modules that I found satisfied the criteria I was looking for:
• Concise
• Easy to read and use
• Promising
• No unnecessary dependencies
• No unnecessary HTTP abstractions

Since I couldn't find what I was looking for, I built this client.

You can find the complete documentation with code samples at Github.com/fubar/jrac.

A Simple Availability Schedule Library for JavaScript

https://github.com/fubar/availability-schedule
I worked on a simple availability schedule library for JavaScript. The purpose of this library is to enable the easy identification of available times in a schedule that may contain recurring and individual events.

REST API Design and Architecture

In a recent position at a new startup, I designed a mobile REST API in Node.js and Restify that proved to be performant, reliable, and easy-to-maintain. The codebase is distinctively separated into individual services and the requests are processed based on the router model.

The application is bundled into a Docker container and deployed onto multiple AWS EC2 instances via Docker Cloud in a continuous delivery fashion.

Performance and uptime were outstanding which was a great validation of the architecture.

Refactoring of a High-volume, Real-time Tweet-monitoring Service

A real-time tweet monitoring service that allowed users to track and archive tweets containing individual keywords was having trouble keeping up with volume after being acquired by Hootsuite.

I rewrote the keyword matching algorithm to mimic the keyword filtering behavior of Twitter’s streaming API, which allowed for reverse matching with user-defined keywords. The new algorithm outperformed the original one by several orders of magnitude thanks to achieving constant-time lookups on its larger data set.

While implementing these improvements, I also added a number of self-healing mechanisms that detect and reestablish degraded connections, resulting in very high uptime.

Languages

SQL, JavaScript, PHP, TypeScript, VB.NET, Python, Solidity, Scala, Visual Basic .NET (VB.NET)

Libraries/APIs

Node.js, REST APIs, React, Restify, jQuery, FFmpeg

Paradigms

Agile Software Development, Microservices, Scrum

Storage

MySQL, NoSQL, Memcached, MongoDB, Docker Cloud, Amazon S3 (AWS S3), Azure Active Directory

Frameworks

React Native, Swagger, OAuth 2, .NET

Tools

Terraform, IntelliJ IDEA, Amazon CloudFront CDN, Microsoft Access, Vagrant, NGINX, Ansible, Amazon Simple Notification Service (Amazon SNS), AWS ELB, Amazon Virtual Private Cloud (VPC), Amazon EKS

Platforms

Apache2, Docker, AWS Lambda, Amazon EC2, Amazon Web Services (AWS), Blockchain, MacOS, Linux, Windows Server, osCommerce, Kubernetes

Other

SaaS, eCommerce, RESTful Microservices, Integration Testing, AWS Cloud Architecture, Payment Processing, Information Security, Web Technologies, Streaming, APIs, OAuth, Billing, Advertising, HTTP REST, JSON REST APIs

2001 - 2004

Bachelor of Science Degree in Information Technology

Baden-Württemberg Cooperative State University - Mannheim, Germany

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring