I am a software engineer specialising in building and maintaining large, high availability server applications in Scala, Java and C++. I enjoy the challenge of building large software systems and defining architectures that best supports their business and technical requirements.
I enjoy learning new programming languages and paradimgs. Currently I am exploring functional programming with Scala. I am intrigued with the similarities and differences in object oriented and functional design.
Modern cloud architectures, especially no-sql databases and how they achieve high availability during failure. My interest in cloud computing and the technology that supports it was triggered while studying Autonomic Computing.
Designing, implementing and optimising robust multi-threaded, multi-process, multi-server software systems.
Asynchronous server frameworks and integrating asynchronous and synchronous systems.
Test driven development and getting legacy code bases under test. Refactoring and introducing Design Patterns.
Outside of tech, I like to spend time with my family, run and practice Aikido.