Hire Me
This is my current resume / CV.
Objective
With my wide skillset in different technical areas, my goal is to come up with elegant and streamlined solutions that meet both user and IT business operation requirements.
Relevant Skills
OPERATING SYSTEMS
- 18+ years of server experience with Linux (Primarily Red Hat-based, CentOS, Rocky Linux, Fedora)
- 19+ years of desktop support experience with Windows
- Experience with Solaris and FreeBSD
NETWORKING
- Understandings key concepts of network protocols (TCP/IP, IP Routing, VLAN, etc.)
- Familiar with physical network maintenance, software firewalls (IPTables), NAS appliances
- Experience with HP and Cisco switches
SERVICES AND SOFTWARE
- Containers: Docker, Docker Swarm, Kubernetes, Singularity
- Configuration Tools: Ansible, SaltStack, Puppet, Terraform, Packer
- Services: HTTP/HTTPS (Apache 2, nodejs), SMTP (Sendmail, Exim), POP/IMAP (Dovecot), DNS (Bind), DHCP, NFS, NTP, FTP, PXE/TFTP, Samba, Active Directory/LDAP
- Products: Spectrum Archive, Spectrum Protect (TSM), VMware vSphere, TheForeman / Red Hat Satellite, GitLab, EFK/ELK (ElasticSearch, Logstash/Fluentd, Kibana), CloudStack
SECURITY
- Experience with Kerberos and LDAP authentication
- Can perform security analysis via log processing, packet analysis, tcpdump
WEB
- 16+ years configuring and web deploying applications
- Containerize web applications for Kubernetes
- Customize templates for MediaWiki, WordPress, Drupal, WHMCS, Kayako Support Suite
- Experience with installing and administering cPanel/WHM, Plesk, DirectAdmin, SolusVM, HyperVM, Webmin
- Experience with Amazon Web Services (AWS), Oracle Cloud Infrastructure (OCI)
PROGRAMMING
- Coding: Java, C#, PHP, Python, HTML + CSS, Javascript (AngularJS, jQuery, nodejs), C, C++
- Scripting: bash/sh/sed/awk, Perl, Powershell
- Database: MySQL/MariaDB, SQLite, PostgreSQL, InfluxDB/flux
- Debug: C, C++, gdb, strace, Ghidra
HARDWARE
- Experience with x86/x86_64/ARM64 Hardware
- Experience with server and workstation hardware from Sun, Dell, and HP
- Experience with IBM Tape Library (TS4500)
Education & Training
- Bachelor of Science in Computer Science, University of Calgary
- August 2007 - May 2011
- Notable courses: CPSC 550; System Administration with Darcy Grant, Wayne Pearson (2010 – 2011)
- Red Hat Satellite 6 Training
- Completed August 2018
- VMware vSphere 6.7
- Completed January 2019
- VMware vRealize Automation 6.5
- Completed January 2019
Work History
System Administrator, Software Engineer - University of Calgary
December 2019 - Current, Full Time, http://ucalgary.ca/hpc
I am currently maintaining and transitioning the infrastructure operated at the Centre for Health Genomics and Informatics (CHGI) at the Cumming School of Medicine to the centralized IT infrastructure operated by Research Computing Services (RCS).
Between 2020 and 2022, I have:
- Transitioned our HPC cluster of over 1000 nodes to Ansible and automated configuration deployments. This help speed up deployments and day-to-day tasks such as user creation and node deployment.
- Introduced Open OnDemand as a friendlier alternative to our HPC resources
- Gathered and generated reports on cluster-wide usage for senior leadership
- Implemented a in-house CloudStack instance as a private cloud solution; written training material and provided training sessions for users
My duties include:
- Managing HPC clusters running Slurm and LSF
- Collect and visualize cluster metrics and performance data primarily using InfluxDB and Grafana
- Maintaining, support, and explore alternative containerized solutions for research with Singularity and Enroot containers
- Operating the IBM TS4500 tape library
- IBM Spectrum Archive and Spectrum Protect
- Plan and transition users and workflows to the centralized offerings by RCS.
- Provide research oriented support for researchers and students
Infrastructure Automation & Containers Specialist - University of Calgary
December 2018 - December 2019, Full Time Limited Term, http://ucalgary.ca/it
I was part of a newly created team of two tasked with creating a new infrastructure automation system using VMware vRealize Automation as well as creating a managed on-site Kubernetes as a service solution for the University of Calgary.
Due to the early stage of both infrastructure automation and Kubernetes as a Service projects, my tasks revolved around requirements gathering, solution testing, ensuring compatibility with the University's existing infrastructure, and adhering to all change and release processes.
Over the last year, achievements include:
- Ensured the smooth operating of around 8 CoreOS Tectonic Kubernetes clusters
- Evaluated Pivotal Enterprise PKS and Red Hat OpenShift as a new managed Kubernetes solution
- Coordinated with our internal web team to transition the University's websites onto our Kubernetes infrastructure
- Built and migrated applications into a containerized environment
- Automated VM deployments on the University's private cloud
- Automated Linux deployments with VMware vRealize Automation and VMware vRealize Orchestrator with integration to Red Hat Satellite 6
- Documented change / release as per IT policy for new service offerings
Technical Systems Analyst for Linux Desktop - University of Calgary
July 2018 - November 2018, Full Time, http://ucalgary.ca/it
I was a Linux systems analyst under the Customer Technology Standards group tasked with designing and building a standardized Linux desktop environment for the University of Calgary. This position required transitioning and unifying the disparate Linux desktop infrastructures across various departments into a single standardized solution managed by central IT.
Over a period of a few short months, I successfully:
- Deployed TheForeman, an open source alternative to Red Hat Satellite, for unattended Linux deployments supporting Fedora & Kali Linux on both Intel and ARM based computers
- Wrote and integrated Puppet manifests with TheForeman for desired state configuration on all hosts
- Created and updated custom Linux based packages used by teaching and research
- Deployed 250+ Linux workstations for the Department of Computer Science
- Consulted with faculty members to ensure software requirements required for teaching are met
- Created support materials on the new deployment system for technical staff in Computer Science
Linux System Administrator - University of Calgary
October 2013 - July 2018, Full Time, http://ucalgary.ca/cpsc
I was a Linux system administrator that oversaw over 400 Linux-based servers and workstations for the department of Computer Science at the University of Calgary.
My primary tasks were to provide a consistent and reliable computing environment for research and teaching by supporting all Linux-based servers and workstations along with their applications and services. I was also primarily responsible for the proper function and operation of the department's firewall and intrusion detection system.
Secondary tasks include:
- Providing tier 2-3 support (via desk-side, phone, email, help desk) for faculty, staff, and students, including Windows and MacOS support
- Testing and applying updates to servers and services every month
- Monitoring, maintaining, and configuring hardware for desktops, servers, and switches
- Deploying new servers and workstations and disposing or relocating old computers as required
- Ensuring public infrastructure services are up to date and operational, including mirror.cpsc.ucalgary.ca, CPSC's public NTP servers, and one of four DNS nameservers for the University.
- Maintaining and updating a private package repository, including creating custom packages for servers and workstations
- Maintain proper support documentation and end-user guides on services
- Consulting with faculty members to ensure software requirements for teaching are met
- Ensuring labs are using an updated and fully patched distribution every year
Other achievements that I am proud of are:
- Integrated Linux workstations and servers with Windows Active Directory to streamline authentication
- Developed many in-house applications that are used by the Faculty of Science including:
- PokeAPI - A RESTful API that facades data from multiple sources including LDAP, data warehouse, databases, and file servers
- User Telemetry - A set of tools to gather computer usage in our undergraduate labs on both Windows and Linux
- Displays - A web-based tool for managing contents for digital signage across the Faculty of Science powered by a combination of embedded devices and computers
- The CPSC Guide - A GUI tool that helps students do common tasks rather than through the command line
- CS Agreement - A Windows/Linux application that allows students to agree to an AUP before being allowed to use our computers
- Created an automated build system for workstations and servers to automatically deploy machines through PXE and automatically configures its DNS and DHCP configuration
- Deployed Logstash + ElasticSearch for internal logging of both Windows and Linux servers and workstations
- Installed and maintained services for teaching and research including WebCAT, OwnCloud, Moodle, cPanel+CloudOS, VMware ESXi
- Replaced an aging CFEngine automated configuration tool with Salt Stack
- Rolled out ZFS file servers on undergraduate servers, enabling self-served file restore through snapshots
- Consolidated multiple servers and services into individual Docker containers
- Rebuilt the Raspberry Pi lab, reducing the amount of lost parts and clutter in the lab.
Recognition:
- My team and I received the Faculty of Science innovation and Change Award of Excellence on May 2015.
C# Developer - Onstream Pipeline Inspection Ltd.
May 2011 – September 2013, Full Time, http://onstream-pipeline.com/
I was one of two C# developers at a pipeline inspection company, developing their new version of pipeline analysis software.
- Debugged existing in-house software written in Borland C++ on the Windows platform
- Low-level hardware interface with custom designed pigs
- Developed the next version of their analysis software from scratch using C# .NET4
Freelance Web Developer & Designer – Steamr
June 2005 – 2014, Freelance, http://steamr.com/
I am a freelance web designer and developer and provided clients primarily in North America with custom web designs and applications. I am responsible for ensuring projects are completed on-time, on-budget and satisfies client requirements.
A sample of my work can be found on my portfolio at: http://steamr.com/portfolio
Responsibilities:
- Consulted with clients for every project for budget, timeline and user requirements and delivered frequent deliverables and project updates.
- Created and deployed custom web designs from scratch using Adobe Photoshop, Illustrator, Notepad++, and half a dozen web browsers.
- Ensured all websites were optimal, standards compliant, cross-browser compatible, and search engine optimized (SEO) based on web analytics.
- Created and maintained over 20 projects under the LAMP stack, along with using PHP frameworks and libraries including: Kohana, CodeIgniter, FPDF, Smarty.
- Created over 40 individual websites from scratch for businesses and individuals.
- Customized design themes for WHMCS, SolusVM, Kayako Support Suite for hosting companies.
Related Work:
- Previous webmaster for GlobalTech Communications including: nworks.ca, gtcomm.net, unmeteredserver.net, zenprotection.com
- Responsible for updating content and promotions while ensuring website correctly interfaces with the point of sale application.
- Developed an internal network management application for gtcomm.net in PHP utilizing MRTG. Abnormal network patterns will notify an administrator via email and SMS.
- Created a distributed network monitoring system based on Java, PHP and MySQL, which utilizes http and ping tests to determine the availability and latency of remote services. Results are then recorded and monthly reports generated.
- Designed the front-end of an in-house inventory system used by gtcomm.net used to track networking/server hardware along with managing available IP pools.
- Designed the front-end of an in-house project enabling end users to purchase and manage DDoS protection services by zenprotection.net.
Server Administrator - SwiftHost.net
January 2004 – May 2012, http://swifthost.net/
With a partner, I created a web hosting company, focusing on affordable shared and reseller hosting. Servers utilized were based on the LAMP stack along with the use of the cPanel control panel.
Responsibilities:
- Managed production servers hosting over 400 individual websites
- Responsible for responding to many customer support tickets within 6 hours for issues under the technical, abuse and billing department.
- Technical issues handled by me ranged from fixing simple permission issues to handling requests for specific software such as Apache/PHP modules, system libraries, and Caching / PHP Accelerators
- Performed security audits and server hardening by disabling or restricting services, configuring the firewall, detecting compromised websites and spam control in a shared hosting environment.
- Configured weekly, network-based backups to an off-site location using cronjobs, rsync and shell scripts. Performed account or file specific restores from backups.
Projects:
- Designed a custom billing solution for account management using PHP, MySQL and the PayPal API.
- A status page which monitored and reported live server status information such as processor load, traffic load, service availability, memory usage to customers.
- Developed a custom web control panel, similar to cPanel, targeted to free hosting accounts. The control panel based on PHP, MySQL, Shell + Perl Scripts, enabled end users to manage their websites, domains and databases while automatically maintaining and enforcing disk and bandwidth quotas.
AS/400 Night Operator - Calgary Programming Factory
May 2007 – July 2007, Part Time
I worked as night operator as part of the AS/400 support team at the Calgary Programming Factory for The Sovereign General Insurance Company as a summer job.
Responsibilities:
- Operated the tape backup system, ensuring backups are valid and without errors.
- Operated the AS/400 system to print system logs and claim checks
- Ensured paper was loaded and aligned properly to the printers before printing
- Researched feasibility to migrate their existing projects based on JSP servlets to ASP.NET
Personal
- Canadian; Speaks English & Cantonese
- Interest in anything Linux related, System Infrastructure, Systems Security, Game Development, Electronics & Tinkering