Career
These are some of the key projects that I have worked on throughout my career. I've learnt an incredible amount from each of them and I hope I can provide you with some value by sharing my career path.
Repro Web SDK
A JavaScript package that allows web applications to connect to Repro's analytics and marketing platform that was originally built for iOS and Android applications. The platform enables tracking events to be set as well as showing in-app messages when certain criteria are met, all without needing to write any code.
This was my first proper step into web development that extended beyond personal projects. I joined fairly early on in the project and was part of a 3-person team that was responsible for the entire development. It helped me establish a lot of my fundamentals and I often find myself coming back to them especially when I'm mentoring new junior engineers.
Being a 3rd party JavaScript SDK, it meant learning a lot of the ins and outs of the various web browsers (including Internet Explorer). Our code had to be compatible with many different frameworks and most importantly, did not break the host site even if we had bugs in our code. This involved heavy cross-browser testing which I had personally built, setting up all the CI and tool integrations. For this, I even created a NPM package to connect our test runner to our cross-browser host.
Thinking back now, this may have been the best way to start working on the web. I got to learn all the core aspects (JavaScript runtime, cookies, HTTP requests), dive into more complex topics such as security (cross-origin/domain settings) and even work with newer APIs like Web Push Notifications.
exaBase Company Search (formerly AnyInc)
A vector-based company search engine that allows users to look up companies and also find others similar to them without being limited to traditional text matching.
This was the project that really allowed me to build up my confidence and understand my own worth. I started off new to the company, eager to learn. I had built up some confidence in my previous workplace but wasn't sure how it would translate in a different company. At the beginning, I kept my head down, working on my own tasks but could feel like there were some role issues within the team. I had already established how a team should operate in my head and began to communicate that to my team and manager. Before I knew it, I became the lead of the team. I made some big calls in restructuring the team, put together a development roadmap and was happy that it all worked out.
Frontend being more of my specialty, my first task was to rebuild the frontend, introducing a framework and cleaning up a lot of the state management. From there, I moved towards the core of the search engine. The engine was eventually a mix of both text-based and vector similarity search systems but it took a while to get there. Although the ML engineer on our team was doing a great job at training a model with the data that we scraped, and providing us with the final vector set, we realised that the “correct” results weren't correct if it wasn't what the users were expecting. The difficulty of building a search engine became apparent at that point and we began to tune our results with a bunch of parameters. Before I was asked to work on a different project, we had managed to get to a point where our clients were satisfied with our results.
TLNK
An automated photography service that uses a ML-integrated pipeline to select the best images, fine-tuning them and delivering it to the end user.
Needless to say, the opportunity to be the Head of Engineering this early in my career has been massive and it's really allowed me to test myself. I wrote a blog reflecting my first year which you can find here.