Andrew Howden

Resume

Below is a short list of the more notable aspects of my career. If you're curious what I can do, ask me to do it!

Education

I read a lot, and my colleagues are nice enough to impart knowledge upon me where they have it.

A (non-exhaustive) list of the books I've read):

  • "How Google Works" - Eric Schmidt and Jonathan Rosenberg
  • "Packet Guide to Core Network Protocols" - Bruce Hartpence
  • "Site Reliability Engineering" - Betsy Beyer
  • "Continuous Delivery" - Jez Humble & David Farley
  • "Building Microservices" - Sam Newman
  • "Hacking - The Next Generation" - Nitesh Dhanjani
  • "Web Performance Daybook" - Stoyan Stefanov
  • "High Performance Web Sites" - Steve Souders
  • "High Performance Browser Networking" - Illya Grigorik

Competencies

Predominantly, I have quite a bit of experience with Magento, and am passionate about performance, user interface and, to a lesser extent, security.

I keep a lot of notes which are a reasonable indication of my competency and interest. Generated by Hugo, deployed via Travis to a Kubernetes cluster.

Languages

I'm pretty sure I could hack around in another language reasonably quickly; it might take me a couple of years to feel at home in it, though.

PHP
JS
SCSS
CSS
Bash
Go

Environments

  • Docker
  • Rkt
  • Kubernetes
  • Linux (Debian, Ubuntu, Arch, Minimal RHEL)
  • Windows (10)

Tools

  • Atom
  • Boilr
  • Git
  • Intellij IDE (PHPStorm, IDEA)
  • Modd
  • Lets Encrypt

Current Employment

Full time developer at Sitewards GmbH

Employment History

10/10/16 - Present - Sitewards GmbH

Developer, specializing in the development, deployment and ongoing management of Magento 2.

3/10/14 - 10/10/16 - Fontis, PTY LTD

Developer, specializing in the LEMP stack.

1/3/14 - 1/10/14 - Shop At, PTY LTD

Developer, developing a custom Magento based platform for multiple buyers and sellers to showcase their wares. The company was a start up, and ran out of funding.

Notable Work

Just about all work has been collaborative, and I cannot take all credit for anything I've been involved with. However, some of the more notable projects I'm happiest with are:

Port the MageAudit Magento analysis tool from Laravel 2 to Magento 1.x

Most of the analysis existed, however the initial design had some inefficient designs, and the opportunity was taken to restructure the design to make additional analysis far easier to implement in future.

Implementation if automated lints as part of the normal code review process

Now part of the standard workflow, lints are run as part of code review, and issues highlighted (and generally solved) before a human reviewer inspects the work. This reduces the nitpicking associated with code review, and provides some clear standards for code style to follow.

Implemented lints are:

  • PHP
  • PHPCS
  • scss-lint
  • Spelling
  • Git Merge
  • File Permissions

Implementation of lints on git commit, that prevent commit unless lints pass

In order to keep my own code as clean as possible, all the repos I work with run the lints over all files that have changed. If the lints are violated the violations are displayed in the terminal, and the commit cancelled.

The lints can be skipped by ensuring the environment variable "SKIP_LINTS" exists. However, to ensure I don't become lazy, a large warning notice is shown, and the commit is paused for 5 seconds.

You can see this git hook on GitHub

Redesign of the GAZ MAN website

The design for the desktop site was kept as similar as possible to the current design, but the design was ported to bootstrap 3.x and made responsive.

Redesign of the Bing Lee checkout

A complete reimplementation of a one step checkout, requiring as little information from the user as is required by the other information specified during the checkout.

This required considerable restructuring of Magentos core validation logic, additional validation and reasonably complex implementation of various JavaScript driven features.

Provisioning of a Kubernetes cluster on CoreOS

Still ongoing, but the goal is to have a Kubernetes stack that can be run on anything from bare metal to a cloud provider.

Highlights of this were:

  • Creating several systemd units with various dependencies to manage the boot process.
  • The need to drain the node as part of the CoreOS upgrade/reboot process

References

If you'd like to talk to some people about the quality of my work, let me know (or just ask them. Large samples of my work are public)

© Andrew Howden, 2017
Curious about how this site works? See the article