Building web applications rapidly is pretty easy in 2017. Lots of great tools and frameworks are available to streamline development by reusing code for common scenarios.
But as software teams grow it becomes increasingly difficult to coordinate effort. We might find ourselves trading off team autonomy with alignment to the business goals and perhaps oscillate around an evasive balancing point. Without a clear strategy the codebase underlying our product can become singular monstrosities. Dev teams shout out to "break up the monolith!", technical debt mounts and progress slows.
The concept of micro-services (or "service-oriented" architecture) has risen in popularity in recent years as a means to break large pieces of software ("monoliths") up into smaller parts and allow for team specialisations or more obvious division of responsibilities.
However, micro-services also come with some significant challenges. In many cases simply deciding on the responsibilities of each service can be a tedious and confusing process. Systems that require many underlying services can make deployment complex and risky. Product changes that cut across many services add steps to the development workflow and increase the effort needed to effectively test and release code.
Grappling with these growing pains, the team at Expert360 decided to take the best ideas from micro-services and combine them with more traditional approaches into a "Modular Monolith"; an emerging strategy that addresses many common challenges.
The approach is made possible by the Elixir programming language and its underlying "BEAM" virtual machine; the same system used in most telecommunication switching networks.
'm fascinated by the way we use technology – especially by the way teams create it.
Whether you are a consumer or a creator of technology the problem is the same: computers and humans behave differently. It turns out when we embrace that idea, interesting things happen.
Having worked as a software engineer and entrepreneur for almost 20 years Dan has begun to understand the hallmarks of high-functioning technology teams.
His career has taken him through several startup journeys in Australia and the US (3 with him as a co-founder). And he's even done a stint working with the Australian Government as tech lead for the gov.au program.
Currently, Dan is working as the VP of Engineering at Expert360 and leads a team of 17 talented engineers.
Dan has also spent several years exploring gender diversity issues in the technology industry. He regularly speaks on the topic and am is co-producing a film entitled "Debugging Diversity" with Endframe productions.