Justin started his career in the video game industry, where he was a key developer on many titles for major publishers, including Sony, Disney, Activision and Electronic Arts. More recently, he has been focusing on distributed systems and building solutions for businesses where performance and scaling matter. At Yoppworks, he has worked on large consultancy projects for various clients and assisted on core technology at Lightbend Inc.
He is a certified Professional Google Cloud Architect and a Lightbend Reactive Architect. Justin is also a proponent of pure functional programming and has spoken at many industry events where he brings complex-sounding topics to a broader audience.
- What is the biggest misconception of a reactive architecture system?
Reactive architecture is not a rigid set of rules, but a set of guiding principles and tools that can be brought to bear on systems that are scalable, fault-tolerant and responsive. Don’t get hung up on the details; if something doesn’t work exactly how you’d like it, break the rules! Just make sure you know what you are doing. I recommend people watch Greg Young’s A Decade of DDD, CQRS, Event Sourcing to get a good understanding of when to colour outside the lines.
- What are the advantages of using OSS (open source software)?
Open-source software allows collaboration between domain experts at multiple companies and organizations. This lets us build better software, avoid reinventing the wheel and helps with interoperability between systems at different organizations.
- What would you say is the number 1 business value gain from moving to a reactive architecture?
Other forms of software design practise don’t have a lot to say about scaling; it is often left as an afterthought. With reactive architecture you know you’re building a system that will not have inherent performance bottlenecks.
- What would you say are your top 5 benefits of an agile environment?
These days everyone is agile and the term has different meanings for different organizations, but in general here are five advantages of agile.
- Daily stand-ups foster team communication. We know what our colleagues are working on and we can surface blocking issues
- Sprints break up long projects into more manageable iterations with continuous feedback of progress
- User stories provide a way to describe tasks that involve multiple roles in an organization, that can be worked on and delivered in a concrete manner
- Agile boards provide a way for the team to see the status of the sprint and the project as a whole at a glance.
- Backlogs give us a way to record things that need to be done, but not right now, so they don’t get lost.
- What is one thing you are most excited about in the tech industry for the near future?
Pure functional programming techniques are breaking into the mainstream. What was once considered esoteric or purely of academic interest. Now ideas from Pure functional programming and even Category Theory, have made their way to the front and centre of modern languages. I believe these ideas and techniques will have a profound impact on the way we develop software in the future; increasing both the scale and efficiency of how we tackle difficult business problems.
- What do you like about working at YoppWorks?
At Yoppworks, I have the pleasure of working with a talented, dynamic and passionate team of software developers. From best practises in Scala and functional programming to building solutions with reactive architecture and domain-driven design, to running a team of developers to hit a deadline, every day is a chance to grow and help our clients build great software.