Photo of Forbes Lindesay

Forbes Lindesay

GitHub · Twitter · Medium · Stack Overflow

I’m a software developer with 7 years of experience building full stack applications with React and Node.js. I’m an avid contributor to open source and, in addition to hundreds of smaller projects, I maintain:

  • pug-final-logo-source

    Pug

    A popular server side templating engine for node.js. This is a full programming language that compiles to JavaScript.

  • @databases

    A system for writing raw SQL queries in node.js that prevents SQL injection, using Tagged Template Literals.

  • Hooked on Forms

    A recently started project to build a type safe approach to forms in React.

  • Throat

    A library that allows you to limit the concurrency of a function that returns a Promise.

I currently work 4 days a week for a company based in London, and have 1 day a week to spend on my own projects. For the last few months I’ve been using my day off to develop Rolling Versions which is a tool to enable open source maintainers to automate package releases and produce beautiful, easy to read change logs.

I enjoy thinking about how to solve complex engineering problems while ensuring my code is simple to understand and maintain. It's really important to me that I am constantly learning, and that I can share what I learn with other people. This desire to learn, coupled with a desire to increase my impact by making other's more effective, drives my enthusiasm for open source. I am looking for a role where I can have impact beyond my immediate team, whether through open source, or contributing to the my employer's culture, tooling and knowledge.

Threads Styling (2018 - present)

I’ve been working as a tech lead/senior developer on a range of projects:

  • A mobile app built on React Native to enable our sales team to keep track of all the information about our clients in one place. We later also ported this app to run on the web using react-native-web.
  • A browser based video editor (part of which is open source on GitHub). This uses <canvas> on the browser to apply a subset of the pipeline of complex filters as FFMPEG supports, in order to render a video in real time in a way that can be precicely replicated on the server to generate optimised mp4 files.
  • A media storage and processing system (using AWS Lambda to run FFMPEG to process images and videos stored in S3 and indexed in Postgres)

In this time I’ve used:

  • Node.js
  • React & React Native (with Expo)
  • AWS (Lambda, SNS, SQS, S3, etc.)
  • Postgres
  • Terraform
  • FFMPEG

Facebook (2015-2017)

In my role as a front end engineer on the local ads team, I worked on:

  • Building an automated code mod to replace all instances of “var” in the Facebook JS codebase with “let” or “const”. This fully automated change resulted in zero new bugs, and allowed Facebook to adopt a lint rule banning “var” from the codebase.
  • Building UI to configure complex targeting rules for ads
  • Building UI to configure dynamic ads that change their content based on the location of the customer
  • Building UI to upload and manage thousands of store locations for advertising partners with physical store locations (e.g. Walmart) in a virtualized table with support for bulk editing and import.

At Facebook I learnt how to manage a vast library of components while maintaining a consistent look and feel. Facebook’s culture also requires people to be very self motivated and self directed. I learnt how to plan and manage my own time.

NPM CDN to Unpkg Bot (2016)

In 2016 a friend from the open source community was trying to solve the problem of how to migrate a service from one name to another. I helped him by building an automated bot to send a pull request to every affected package on GitHub. I ultimately ended up sending ~6.6K pull requests over the course of a couple of weeks.

Redgate (2013 - 2015)

Redgate make tools for software engineers and database admins. I worked as a software engineer on full stack web apps using node.js, Knockout and D3. I was part of a small team that built a tool for managing and querying hadoop clusters.

University of Cambridge (BA, MA Computer Science)

I studied Computer Science at the University of Cambridge. I especially enjoyed the courses on type systems, compilers, concurrency and distributed systems. While I was there, I also made the most of my spare time by contributing to lots of open source projects.