I’ve always enjoyed building things, and being a developer I get to do this every day.
While at school I taught myself Visual Basic in order to build a Blackjack game that could play against itself, using a very basic “machine learning” algorithm before I knew ML was a thing. It was hopelessly inefficient, but taught me the basic principles of programming and got me hooked.
During my interview process for the university, I remember explaining to the professor the challenges I had hit (specifically RAM limits being a thing). The way he could quickly move my application from the complexity of O(n^2) to O(n) was the point I realised maths was the way to be an efficient coder. I then threw myself into Discrete Maths at University and worked on some exciting research with Professor Luczak-Rösch at the University of Southampton.
After leaving University I wanted to apply theory and improve my knowledge of software development methodology in teams, as prior to this I had focused on problem-solving as an individual. Working at IBM I worked in a small team and learnt the challenges and benefits of distributed problem-solving. Shortly after this, I joined Theodo UK as a developer when it was 6 people in London and I’m still there as an Architect with a 40 strong developer team.
Recently I’ve been going back to Southampton, guest lecturing as part of their Computer Science Bsc course each year.
I’m always on the move. My 13” Mac Book Pro is key to be able to code when on the move. When I’m going to be coding for a few hours I like to have a monitor, but tend to keep using the keyboard on my laptop rather than haul around a keyboard and have to switch between layouts.
I’ve delayed upgrading my 2015 MBP as I can’t stand losing my keyboard and hackathon stickers (the battle scars of a developer).
But, this can’t be avoided much longer as development tools become more complex and RAM hungry.
I’ve moved to VS Code as my IDE and use a zsh shell on the standard Mac terminal.
React or React Native frontend with a Python (Django) backend hosted on AWS has been my go-to for the last couple of years.
More recently I’ve become a proponent of the Serverless movement. "To learn more about Serverless take a look at my Medium publication "Serverless Transformation".
AWS Lambda Layers' support has recently opened up Lambda (AWS’s function as a service) platform to any language, which has furthered my adoption of serverless architecture.
I post a lot of development information on @EllerbyBen.
As mentioned above, my main focus is on Serverless currently. The flexibility and speed of change it allows are amazing. At the same time, it’s still a technology in formation, so there are exciting ways to contribute to its tooling and approaches.
Currently, I’m working on migrating legacy systems to Serverless rebuilds, focusing on low code, cloud-native, orchestration of services like AWS Lambda, SQS, Step Functions and EventBridge.
React Native and code sharing, has also been a topic I’ve been involved with, speaking at the React Amsterdam Conference
Outside of proof of concepts and tech challenges at the start of projects, I’m always developing with a team. I’ve found SCRUM to be the most effective framework to get features from conception to production with the least wasted time.
That said, I’m a big fan of minimal process. Outside of the basic meetings built into SCRUM I try to keep scheduled meetings limited and focus on unstructured problem solving and creativity where possible. I particularly prefer lightweight design artifacts, trying to get a team to focus on pen and paper sketches rather than big email chains or 1000s of JIRA tickets.
Recently, through Theodo, I architected MADE.COM’s move of their website to React, their mobile app to React Native and an innovative in-store experience reusing much of the code of the website and mobile app. The code reuse and speed that this gave the team was a massive achievement for us. We were able to get a 60” touchscreen kiosk application to production in just 4 weeks with two developers thanks to the generic approach to code sharing we made at the start of the project.
If you’re in London drop by the MADE.COM showroom in Soho and play with the kiosk for yourself.
The industry standard JS libraries change every few months, languages go from cutting edge to legacy and architectural approaches are always being improved.
It’s important to learn how to be a developer, not learn just one language or framework. The Computer Science concepts (e.g. Abstraction, Separation of Concerns, Race Conditions) are universal, and through learning those you will ensure that you’re not made redundant by the rate of change of the industry.
This is not to say all developers need a CompSci degree. But it’s important to read about the theory, pick up the odd textbook and learn concepts, not just syntax.
We’ve mastered building MVPs at great speed and our code quality is always improving. It’s the scaling on the product side post MVP where we are experimenting and innovating now. How to help clients use concepts from Lean Manufacturing to measure key performances of their product as it scales.
As mentioned above, Serverless is the area of technology I'm most focused on currently. I run several initiatives to share information and best practices around serverless.
The Serverless Transformation publication (medium.com/serverless-transformation) is a project set up to share articles around Serverless. This also has a companion Podcast (anchor.fm/serverless-transformation) with interviews, monthly expert panel discussions and newscasts.
I also publish a weekly Serverless Transformation newsletter with the top 5 articles of the week (getrevue.co/profile/serverless-transformation) that is designed to share the best articles and content.
Finally, I'm very happy to announce the release of sls-dev-tools, an open-source command-line tool aiming to reduce the feedback loop for Serverless developers. https://theodo-uk.github.io/sls-dev-tools/
All my blog articles and conference videos are posted on my LinkedIn profile so please follow: linkedin.com/in/benjaminellerby