Guy BalaamSoftware Developer;

Amazon

Prime Video


Web Team

I spent 4 years working on the platform and infrastructure team for the Amazon Prime Video website, working directly with a team of developers, designers and QAs.

The platform team supported other teams creating features for the Prime Video website. We focused on:

  • Creating tooling and automation to speed up development
  • Improving the website's resilience against outages
  • Investigating and prototyping complex technical challenges


Rendering Framework

Rendering is getting all the elements in a webpage ready to display. Clientside rendering (CSR) is creating all the elements needed in the page and drawing them to the screen. Serverside rendering (SSR) is generating a string of html to send to the customer, and this can be vital for performance.

I proposed a new architecture and led development of Prime Video website's rendering framework.

The new design aimed to unify a fragmented code base. It allowed feature developers to write in a single code base that runs on both the client and the server. We could now profile our code and our builds, finding bottle-necks for our customers and our developers. This drastically reduced the CSS sent to customers, reducing the size by 47%. Another optimisation from this approach reduced build times for our code from 45 minutes to 10.

I also worked to provide a range of in-built tooling, most notably:

  • Progressive enhancement and graceful degradation. All pages are serverside rendered and are fully functional without JavaScript (just like this site).
  • Monitoring and error reporting on the server and in the browser.
  • Development environment with the ability to work with live data, an essential tool for quick prototyping.


Security Training

I worked with the Prime Video InfoSec team to create a series of security training sessions focused on cross site scripting (XSS). These took the form of interactive, hands-on workshop sessions for the whole team.

I built a dummy version of the website and included many XSS vulnerabilities for the team to find. They would then create exploits to demonstrate how our customers could be attacked.

I learnt a lot from the research involved in creating these sessions, and discovered some XSS vulnerabilities in the live website. The Prime Video InfoSec team took these training sessions to the Amazon internal security conference.


Integration Testing

Selenium is a tool that runs integration testing on websites by controlling a real browser. This allows our testing methods to be as close as possible to how a customer would use the website.

When I first joined the Prime Video website team, all of our Selenium integration testing was written in a Java framework using TestNG. None of the website was written in Java. The need to learn an additional language was an unnecessary burden for developers when testing their features.

After developers expressed an interest in writing these integration tests in JavaScript, I prototyped multiple Node.JS based Selenium frameworks and presented each to the team.


Game Nights

I organised a set of social events to share my love of gaming with the Platform team, many of whom didn't game at all. I picked Murder and TTT game modes from Garry's Mod as well as Among Us as these social deduction games rely heavily on social interaction and teamwork. Newer players ended up winning through deception and bluffing instead of mechanical skill.

These events grew to include the wider Web team and working from home in lockdown in 2020 made these even more important for team cohesion.

These game nights have been running weekly for over a year and despite having left the team, I still get an invite.