As a software engineer, my focus is designing, developing, testing, and deploying well-tested,
scalable, observable and fault-tolerant applications on cloud platforms. My ability to diagnose problems,
ask the right questions, and understand how applications fit into the larger ecosystem make me an asset on any
engineering team.
Key Strengths and Skills
Designing and building microservices and distributed systems.
Writing testable software (unit and functional testing).
Object-oriented programming using Python, PHP, Shell, Java, C++, HTML, CSS.
Linux setup and configuration for Ubuntu, Fedora, CentOS.
DevOps: building base images (Packer, AWS), building Docker containers (Docker), and provisioning and configuring deployments (Ansible, Terraform).
Databases (relational and NoSQL) such as PostgreSQL, MySQL, Elasticsearch, and Mongo.
Building distributed systems using technologies such as RabbitMQ, SQS, Celery, Redis.
Debugging using interactive debuggers, strace, tcpdump, among others.
Ensuring observability of systems with centralized logging (Fluentd, Elasticsearch).
Modeling software with static and dynamic views using UML.
Using design patterns in software to solve problems with known, well-tested solutions.
Managed software teams of up to 6 engineers using Agile methodologies (e.g. SCRUM).
Writing technical documentation for wide audiences, fostering acceptance among teams and stakeholders on complex ideas and systems.
Security-centric development practices (OWASP Top 10).
Work Experience
Oracle
Software Architect (among other roles)
June 2016 – present (8 years)
Spearheaded data re-architecture across many teams, working on decomposing access to a single shared database (5 TB) into smaller domains on databases appropriate to each system over the course of 9 months.
Designed, built, tested, and rolled out a system deployed to Kubernetes to map and aggregate hundreds of millions of impressions per day, utilizing Docker, Python, RabbitMQ, Celery, Elasticsearch and PostgreSQL, managing a team of 6. First team in our pillar to utilize Docker and Kubernetes.
Designed a plugin system for metrics and metric testing, porting existing monolith code into small, organized modules, allowing teams to more easily develop new metrics and rollout changes to existing metrics, thereby increasing throughput to development and reduction of bugs.
Research and design of the next-generation unified aggregation system, including analyzing relationships of metrics and their dependencies, designing schemas, and working with teams on designing various sub-systems.
Focused on improved observability by shipping application logs to Elasticsearch and integrating with Pagerduty to define and build alerts, vastly improving visibility and response to issues occurring in various customer-facing systems.
Introduced CI/CD by deploying multi-node Jenkins systems, refactoring software for automated testing, building and deploying artifacts, separating configuration from code, and ensuring better practices and standards around deployment and testing on various teams.
Containerized an API system which used several systems as dependencies to allow for deployment in Kubernetes and fully offline and local development by containerizing all the dependent systems, including building minimal fixture data for massive datasets (1.5 PB).
Beatport
Senior Software Engineer
Dec. 2014 – June 2016 (2.5 years)
Lead the development on a small agile team, building microservices using PHP (Zend, Cake), Python (Flask), Apache Solr, RabbitMQ, AWS SQS, MongoDB, MySQL, DynamoDb, Elasticsearch, Couch, Redis, Memcached, Vagrant, AWS.
Internap Network Services Corp.
Customer Portal & API Development Team Lead
Nov. 2013 – Nov. 2014 (1 year)
UJA-Federation of New York
Engineering Manager (formerly Engineer)
Jul. 2009 – Oct. 2013 (4 years)
Education
Master of Management, UBC, Vancouver, B.C., Canada