When I was seven years old, I fell from a third-floor balcony while I was playing. I suffered a concussion and a dislocated neck but I was out of the hospital after a couple of days. Needless to say, I gave my family a big scare and after that experience I have never been entirely comfortable with heights.
When I finished high school and was waiting to start university, I spent a significant amount of time playing video games. I became curious about how video games were made, and that’s how I discovered programming. I eventually applied for an internship at a software development company. Whilst I didn’t get to build any video games during the internship, it did help me find a career that satisfied my desire to solve complex problems and build things.
I am currently working on an internal project to roll out a technical solution to help Thoughtworks globally manage the return-to-office transition following the COVID-19 pandemic. It’s an interesting project because it involves managing several global stakeholders from different countries and understanding their situation as well as balancing the duty of care with privacy and data protection. It’s an example of how important it is to stay committed to using technology to do the right thing. It has also given me a better appreciation of the change management that’s required when rolling out new technical solutions.
As my career has evolved, I have come to realise the positive contributions technological interventions can have on making the world a better place. I have previously worked on systems that have a clear social impact such as saving lives by improving the efficiency of relief agencies in war torn regions. We built a system that improved the tracking of the delivery of consignments and provided up-to-date relevant information to relief workers in the field. I have immense pride in such work but I have also learnt to be a technologist that thinks of how my contributions can have a positive impact even when it isn’t easily discernible. This ability to have empathy for the end users as well as a sense of accountability for the work I do is something I am proud of.
Nowadays, almost every sector relies on the contributions of technologists which means that we build the tools and the platforms that run the world. With this power comes the responsibility to ensure that the injustices that exist in the world are not incorporated into the technologies we build. As technologists we are also privileged by virtue of our careers to have the ability to amplify voices that advocate for positive and social change. Unlike many people in the world, we have the opportunity to make a stand against social injustice through our work or by making our voices heard via the platforms we build.
Over the past few years, the emergence of technologies like Kafka means that organisations are more confident in using an Event-Driven Architecture to design high performance systems that are also highly scalable and durable. I’m particularly interested in how events can be used together with Domain Driven Design to model systems with complex business processes. Sometimes I reflect on some of the complex systems that I’ve worked on in the past that could have been easier to implement and scale if we had used some of the patterns for an Event-Driven Architecture.
A mentor once told me that I should find one particular technology and invest in getting a deep understanding of it. Build out the core concepts from scratch until I find the limitations that require me to use available libraries or tools. This is important because it helps you to ask the right questions when you are presented with a new technology and gives you a good basis to focus your learning. It’s particularly helpful in Thoughtworks where change of client engagements can imply learning new technologies quickly. Knowing what to focus on can be quite beneficial.
Disclaimer: The statements and opinions expressed in this article are those of the author(s) and do not necessarily reflect the positions of Thoughtworks.