This is a brief overview of my work history in tech, covering the major projects at the companies I’ve worked at. The general outline of my work history is available on LinkedIn too, if that’s more your thing. If you’re more interested in what stuff I use while I’m at work, I have a /uses page. You can download my CV here.
I just started as an Engineering Manager for the Layout team at Miro, in Berlin. Not much to report yet beyond excitement and possibility.
I worked as an Engineering Manager across two teams on Flex product. The idea behind the Flex product is to respond to the problem that increasingly faces power grids transitioning to renewable energy sources: the mismatch of supply and demand. Kaluza aims to solve this by enrolling energy customers to receive cheaper energy in exchange for giving us the power to control when their power intensive devices like electric vehicles are charged.
My first team was the Platform team, which was responsible for providing a stable and reliable platform to the other teams, and one that was packaged up in easy-to-use workflows that made it easy to ship new products (very) quickly. The second was the Trading & Dispatch team, who owned a couple of tools that give an overview of all the devices connected to the platform and visualised their capacity, consumption, and flexibility.
My role involved a lot of roadmap setting and delivery, managing my direct reports, and working across the organisation on best practices for engineering.
I worked at BuzzFeed as an Engineering Manager. I was there a long time and worked on loads of different projects so I’ll just pick out a couple of interesting ones.
Stepping into a management role and changing domains at the same time was interesting. I led a team of five and manage people across multiple teams and levels and levels of seniority. Time management was a balancing act. Inside my team I planned sprints, worked on line management tasks like hiring and staffing and career development, as well as sprint planning, project leadership. Outside of my team I still led accessibility for a growing number of domains (we kept acquiring people), and briefly led the tech internship program.
Internet Points is a feature I worked on from inception. It’s a way of rewarding BuzzFeed Community users for the stuff they do on the site (did you know anybody can sign up and create a BuzzFeed quiz?).
When a user creates a post, for example, they are rewarded with points. Their points are displayed next to their username in their posts, on their profile, on leaderboard, and more. Building this system required tying together and simplifying a whole host of systems across BuzzFeed that are responsible for various user actions, then channeling those events into one system.
Improving the accessibility of the BuzzFeed website was the biggest tech project I’ve undertaken. I coordinated to fix hundreds of issues big and small that stop users with accessibility needs from enjoying the site and content.
The project involved working with external accessibility auditors and co-ordinating fixes across a large team of engineers. Some fixes involved working across the tech organisation, with design and product, securing budget, and consulting legal counsel.
It was incredibly involved, but I think it’s some of the most important work in my career.
I joined BuzzFeed in great part because I’ve always been an admirer of the incredible journalism BuzzFeed News produces, so it was great to get to work on the rebrand and re-tooling of BuzzFeed News.
BuzzFeed News had long suffered from being mixed up with the less serious BuzzFeed brand, and its content being presented side by side with quizzes and meme roundups. This wasn’t doing the journalism our reporters do justice. BuzzFeed News was going to get its own destination, it’s own domain, and its own design.
We built buzzfeednews.com from the ground up, but in accordance with established patterns already used by BuzzFeed Tech. We worked very closely with stakeholders in the newsroom to get a very specific set of requirements.
One challenge particular to the news site is the highly configurable splash on the homepage. The editors needed to be able to respond to every kind of news day by configuring a very flexible homepage. So we gave them plenty of elements to play with: a breaking bar, a trending topics bar, and a splash with multiple layouts.
Depop was my first real job in tech. They took a chance on an a young guy with no Computer Science degree, and who’d been working as a freelance web developer for a couple of years. Depop is a marketplace for selling second-hand and vintage clothes and other style items. When I arrived, it was an iOS app with just a marketing website.
My major project during my time at Depop was turning a static marketing site into a dynamic catalog of the inventory of Depop’s users.
In a front-end team of two, we built the new site from ground up as an isomorphic React application, backed by a GraphQL layer that connected to our preexisting service infrastructure. Up to that time the only consumers of those services had been the iOS app, so a lot of adaption had to take place in the GraphQL layer.
It was a really big learning curve for me as a junior front-end developer. We were using GraphQL when it was brand new, and hitting all the associated painpoints. We were managing a large isomorphic React codebase, styled with Glamor, really digging deep on the “back-end of the front-end”.
Depop is both a community and a marketplace. Users sell their second-hand stuff to other users, and things go wrong in those transactions all the time. So there was a big Operations team who managed disputes, and trust and safety issues.
When I arrived at Depop, some of the tooling was severely lacking for these teams. For example, if they wanted to respond to users in the in-app chat function, they had to just use the normal iOS app on their phones. That got pretty unwieldy when they were speaking to hundreds of users. So I built a web client that used the pre-existing chat API, but that allowed reading and responding to messages in bulk in desktop web environment.