👋 Welcome to this issue of RM-RF, where you get to hear about crazy dev war stories from inspiring tech leaders.
This week I interviewed Sandro Munda, founder and CEO at Forest Admin. If you’ve ever been through the pains of building a custom admin panel for your apps, you’ll absolutely love their product as it does it all for you. Techwise, it’s a SaaS with an elegant architecture plugging into your DB - which brings a lot of cool challenges, as you’ll discover here.
🕰 For how long have you been working on Forest Admin?
I wrote the first line of code 5 years ago after having struggled with admin panels as a freelance building custom apps. During my customer discovery calls, I’d ask “do you need an admin panel?”, and choose to go with Ruby on Rails just for this reason to leverage RailsAdmin 🙃. Making a tech choice based on admin requirements is clearly suboptimal, which led me to identify this cool product opportunity.
I set on to build an MVP tech-agnostic admin panel that would be quick to setup (like ActiveRecord), flexible (as RailsAdmin is a poor solution beyond CRUD actions), and secure (as admin panels are by nature connected to sensitive data). I joined forces with eFounders, they saw the value in it, we tried it out at Fotolia (Thibaud Elziere’s previous company), and so the journey began.
🏉 How big is your team today?
Today, we’re about 30-people strong, of which 20 devs led by our CTO Arnaud Besnier. We recently reshaped our dev org to 3 subteams:
The DevEx team, which develops the connectors (like our new RoR integration) to ensure a good experience for developers that roll-out Forest Admin in their stack
The OpsEx team, which drives pure operational features, such as integrations with 3rd parties (Stripe, Zendesk, Salesforce and many others)
The CoreEx team, which develops and maintains transversal parts of the product such as auth, billing and security
Besides this, we regularly organize into war rooms to tackle specific topics (typically including 2 devs, 1 product person, 1 designer and 1 biz owner).
🛠 Describe your tech stack in a nutshell?
We’re a JS powerhouse with Node in the back and Ember in the front. We chose Ember as it offers the most flexibility and robustness when it comes to generating the fully dynamic UIs and data models required in the admin views and actions.
Nevertheless, we like to think of ourselves as tech agnostic and also ensure that all devs keep a full-stack mindset. This is a real requirement for us, given that we integrate with multiple frameworks across languages (after Node and RoR, we’re now aiming for Django and Laravel).
Our infra is rather straightforward and monolithic, leveraging Postgres and Redis for persistence and cache.
😱 What is the most stressful tech situation you ever faced?
Well, given the integration challenges of our product, we never know what we’ll bump into next! But there’s one anecdote which is still vivid, from the very early days of Forest Admin.
The first MVP I implemented was basically hardcoded for a single user. When I ran the first onboarding with the first user, the app crashed because I already registered myself as user. I hence had to perform a full production reboot in front of the user - which led this user to claim ID 1 in our DB, while I’ve got ID 2 😅.
🐛 What is the most elusive bug you and your team ever had to fix?
I can’t think of a specific bug, but I can say that Forest Admin is probably one of the best debugging schools out there. We basically run 1/3 of our code within our users’ environments, with little to no visibility into what’s causing issues. We may get stack traces and screenshots but rarely get the opportunity to explore things ourselves. As a consequence, it forces us to ask extremely sharp questions to our users during debugging, which is quite rewarding when you start mastering it.
It also often turns out that “bugs” are caused by exotic elements in our users’ codebases. This was actually our #1 tech challenge: being able to deploy Forest Admin on real-life legacy codebases with all their intricacies and oddities. In retrospect, this is proving to be one of the most powerful barriers to entry for competitors, as we’ve met and unit-tested a huge variety of setups.
✌ What's your best piece of learning on these topics?
My biggest learning as a dev is to always resist the temptation to perform a full rewrite, even in the face of seemingly overly complex layers of code. As we’ve discovered with our support for a wide variety of setups, complex code is there for a reason and is hard to reproduce from scratch.
⭐ Finally, are you hiring any developers these days?
We’ve got plenty of open positions, mostly full-stack and tech agnostic. Our growth strategy is product-led, which means we expect developers to heavily drive the business going forward. If you’re open-minded and excited to join a growing company with a strong tech culture, you should definitely jump aboard the rocket ship 🚀.
Thanks a ton to Sandro for this interview 🙏. Sandro is such a passionate and authentic leader. We first met over lunch 5 years ago when he was just starting Forest Admin and it seems he has kept the same aura of energy when talking about the product ever since. Join his team here. See you in our next of issue of RM-RF with Quentin de Metz from Pennylane.