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
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’ve been following the development of Tailwind UI ever since I purchased the Refactoring UI book. Now that you've built it, it seems like such an obvious business model, and I instantly found myself wondering if I could build something related. Perhaps a series of full stack Node.js/React apps that people could purchase the source code for and then remix/borrow from for their projects. I know I'm constantly copying and pasting sections of code and designs from my past projects, so I'm sure that if it's packaged correctly, that would be useful to other people too. One of the most exciting things about writing software is the ability to make other people around me more efficient.
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.
My interest in promoting my open source projects and side projects has led me to take an interest in both design and marketing. Although currently my skill as a software developer far outweighs my skill as a designer, I do feel like I'm learning quickly, much of which is definitely down to books like Refactoring UI.
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 (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.