×
Alastair King

Alastair King

Staff Full Stack Software Engineer

4122 47th St, , New York, NY, US, 11104
+1 (347) 635 4647

Background


About

About

Experienced Full Stack Engineer with a focus on code that is verifiable and understandable. Life-long learner. Dedicated to deep understanding, team culture and being useful.

Work Experience

Work Experience

  • Staff Full Stack Software EngineerAnimoto

    Apr, 2021 - Mar, 20264 years 11 months

    Working Full-stack implementing features in the main frontend editor and the backend systems and infrastructure that support it.

    • End-to-end implementation of a voiceover feature within our editor. This required: Developing a new type of canvas renderer plugin for the wavesurfer.js library to allow multiple waveforms to be added to a single arbitrary length area, updates to our backend to add the concept of a voiceover to Projects, custom React hooks to share MediaDevices recording functionality.

    • Undertook a project to investigate and fix a pattern of CrashLoopBackOff errors from our production Kubernetes that was paging on-call engineers. Resolved by updating a half-dozen services to be more resilient when running in containers.

    • Ran a cross-team project to use websockets to allow multiple users to access the same project without making conflicting edits.

    • Full-stack implementation of an update to add additional text boxes to the editor interface, working in React/Redux frontend, Ruby/Rails rails backend and interfacing with webgl/canvas rendering engine

    • Acted as technical lead on a spike project to do a full rebrand across the website. I devised a plan to let us maximally parallelize the work and release changes safely behind feature flags.

    • Updated our developer local setup and tooling to install and run correctly on ARM Macs - working on ansible automation and package/build tools for ruby, javascript and go . This project had a hard deadline before new hires started, and I was able to complete it and avoid a bottleneck for them and all engineers as they updated to new computers.

  • Senior Full Stack Software EngineerAnimoto

    Oct, 2018 - Apr, 20212 years 6 months

    During this period, I opted to move from the management to the technical track. As a hands-on manager of the test team, I was often finding myself working on developer productivity, defining unit test types and cross-service debugging.

    Wanting to be able to do more fixing of the bugs that I was finding, and with ideas about how to make some classes of bugs impossible, I took the opportunity to become an individual contributor.

    • We transitioned a large part of our frontend editor to React and Redux, technologies that we believed would give us large benefit over our current Backbone system in terms of modularity and data safety, but with which we didn't have a huge amount of internal expertise. I was heavily involved in the initial design and architecture of the component and store layout and designed the archetypes for unit testing of the system.

    • Advocated for and implemented a new architecture allowing the backend to handle different "project" versions with strict schemas. This update enabled us to iterate on project editing functionality with confidence.

  • Tech Lead: TestAnimoto

    Oct, 2013 - Oct, 20185 years

    Initially as Acting Test Lead, I agreed to take on management of a team of ~6 Test Engineers and SDETs. During this time I remained hands-on, taking responsibility for testing on some area of the product while continuing to support test tools as a whole.

    • Devised and administered multi-level screening and interview plan for SDET hiring, eventually bringing on 6 SDETs. Technical screening is difficult and I count a measure of success in this process that I received positive feedback from a few of the people we didn't hire, and that those we did hire had an average tenure of ~4 years.

    • Expanded our backend testing framework, which had previously been consumable as a ruby gem, to include a web interface so that the same helper code could be used to support non-Ruby testing suites. e.g. our web frontend webdriver tests, which we had rewritten in javascript to make them more accessible to frontend developers. Over time I expanded that server to include a number of tools for validating running backend services, generating test images, and helping with debugging

    • Initiated a couple of suites of contract tests. We had long identified a shortage of mid-scale tests. We had a decent number of fast unit tests, and a large number of fairly slow full-stack tests. Contract tests were added to validate the interface between two repositories.

    • Created a Chrome extension that collected internal tools that made developing and debugging easier. The tool made debugging and customer service tasks easier, without adding to production code.

    • Built a web-controlled pneumatic confetti cannon and an impressive-looking launch button using particle.io for our President to use as a prop in a Facebook live launch video.

    • Instigated 'Other Demos', a counterpoint to our bi-weekly product demos. It's hard to describe this, really. It was incredibly unfocused, very frivolous, fairly subversive and, I think, a massive driver of Animoto culture.

    • Sewed a mascot-sized inflatable Animoto logo costume for a halloween contest and accidentally became the face of our holiday social campaign.

    • Designed and built a tool and tests for visually verifying rendered videos using OpenCV. I wanted a small number of whole-system rendering tests that would check whether test videos were continuing to be visually correct. These tests generated a predictable video and validated frames from it by searching for expected shapes using OpenCV contour matching.

  • Software Test Engineer/SDETAnimoto

    Apr, 2011 - Oct, 20132 years 6 months

    I was hired with the title of Software Test Engineer, with an expressed desire to skill up to SDET and was immediately assigned SDET work as way to facilitate that. After about a year and a half, my title was officially changed to SDET.
    During this period I was largely working on the backend team, building a test framework for a number of backend systems.

    • Created a Ruby framework from scratch to work with and validate the APIs of our backend services. The bulk of the framework is a collection of clients that can access and interact with backend services and parts of that system are still used today.

    • Initiated several suites of backend end-to-end tests that used the framework to exercise those services.

    • Built an Arduino-powered time-lapse dolly and control system to enable our motion-graphics team to capture moving timelapse footage that they wanted for style templates.

  • QA Lead, UBS Investment Bank

    Feb, 2004 - Mar, 20117 years 1 month

    I was the first hire in quality assurance for a development team working on an internal investment banking portal. Initially testing manually, I built a large suite of automated and load tests.
    I was promoted to QA manager, leading a team of on-shore and off-shore QA staff.

    • Initiated automated testing using WinRunner and load testing using LoadRunner. ( I don't think either of those tools exist any more). Resulting in massive efficiency increases.

    • Managed a QA team of up to ~20 people consisting of on-shore local employees, out-sourced, but locally hosted contractors and off-shore contractors.

Skills

Skills

  • Frontend

    React

    Javascript

    Redux

    CSS

    next.js

  • Backend

    Rails

    Sinatra

    Express

    Node

    Graphql

    next.js

  • Testing

    RSpec

    Jest

    Webdriver

    Mocha

    react-testing-library

  • Infrastructure/observability

    Kubernetes

    Docker

    AWS

    Datadog

    Launchdarky

Education

Education

  • Psychology, BSc, University College London

    Sep, 1996 - Jun, 1997

  • Drama, Diploma, The Poor School

    Sep, 1997 - Jun, 1999