Figured was proud to once again be a gold sponsor of Laracon AU 2019 which was held in Sydney, Australia from October 31st - November 1st. Laracon AU is a two-day event for learning, growing and mingling with the Laravel community from Australasia and Asia.
This year’s Laracon was once again filled with engaging and educational talks including our very own Head of Development, Stephen Rowe. He spoke to the audience on “Building a modular monolith with Laravel and self-managing teams” which detailed how the Figured development team works efficiently to deliver a robust app for thousands of farmers, accountants, and bankers around the world.
Within the development team, we operate a flat structure of highly skilled team members where every person feels empowered to make a difference. This is best illustrated by the fact that every developer has the power to deploy to production from day one. We can operate at this high level of trust due to the fact that our strong business values guide our decision-making day-to-day.
Our development team is product focused meaning we listen to the needs of the business and react quickly to those. Stephen’s highlighted the following three aspects:
Packages - How we code
We have a monolithic codebase here at Figured and it works best for us. Our scaling complexity is in the data where we have billions of transaction lines creating sensitive financial data. By using packages we can achieve modularity through separations of concern as well as an efficient way to pump out MVPs.
For us, separation of concern means creating clear boundaries through interfaces. This gives us modularity, autonomous development and low dependencies. By doing this we can quickly build MVPs of what customer want now and avoid misplaced effort as get a better understanding of complexities and pivot is required.
Laravel - How we keep it simple
At Figured we aim for consistency through convention for our codebase. Laravel equips us by providing reliability and convention at the core framework level as well as having a strong community of support and documentation which guides us in approaches to use. Laravel has done so much work to reduce the complexities of our app, we need to make the most of this opportunity.
We also use ADR’s (architectural decision records) when needed to give absolute clarity to developers but we trust the teams to develop in a sensible way that fits these points. Altogether this leads to faster onboarding and development as code is easy and quick to follow. This lays the base from which we can build packages as outlined above.
Pods - How the teams work
Our development team is split up into small cross-functional pods which are autonomous and highly communicative. We employee brilliant developers so this gives them the best opportunity to be brilliant.
Small pods bring a microservice ability to our internal structure, thinking and capability. Each pod is made up of 3 developers, one of which is a team lead, and a product analyst. They have all the skills and experience needed to operate autonomously. While we have broad boundaries such as ADR’s outlined above, the teams are not standardised and can use approaches that fit best for them. We want consistency across teams but not compliancy. Each pod must be highly communicative within the pod as well as to the business to ensure everyone is tightly aligned and are moving in one direction.
We're hiring skilled PHP developers and we think you'd like it here at Figured, take a look for yourself.