Ever wanted to know what daily life in a tech consultancy looks like? In our latest blog series, we chat with Ben Clare, Senior Software Engineer at DiUS about his role and what it’s like to experience DiUS.
Why did you join DiUS?
A mate of mine referred me by effectively saying “come work with me, we have a ton of fun” and then told me one of the most absurd solutions to a tricky problem that I’d ever heard. It sounded like fun, so I decided to apply.
At my interview, I sat down and they asked me to go through a project I’d worked on, and it dissolved into a great discussion on testing practices, pragmatism vs perfection in design, compromises made and why we made them, and some fun war stories from interesting projects.
I was hooked, so I signed up.
What do you enjoy most about your role?
I love how varied consulting can be. On average, we rotate clients every 6-9 months, and every time it’s been to a completely different tech stack and business environment. From Python and ReactJS in a Fintech, to a purely backend NestJS on AWS Lambda on a retail client, to Golang and GraphQL in a customer loyalty project—every single client has been different and unique in their own way, requiring new skills and new approaches.
What’s been the most exciting engagement you’ve worked on so far while being at DiUS?
I’d been wanting to upskill on AWS, so I got put on a project to get my hands dirty in AWS infrastructure. This particular project was implementing an event based inventory management system, with most of the work requiring a 17+ million line CSV file to be ingested every ~20 minutes, generating an event for every line in that file, and processing those lines (stock updates) to expose to customers.
The performance implications here, for both processing that many events and maintaining a stable and up to date API for customers to query under high load, made for some incredibly fun problems for my team and I to work through. Tuning Lambda startup and reuse times to ensure we could keep up, assessing AWS SQS + SNS systems vs AWS Kinesis for higher throughput, timing and tuning processing times to keep us under that 20 minute upper limit, implementing distributed tracing to track just where our events were going missing—it was a ton of fun. We even had a serious moment where we considered load balancing between S3 buckets to get around throttling issues (would not recommend, please don’t do this).
Collaborating with the various teams to design, implement, tune, and maintain this system was some of the most fun I’d had in a long time, with many many hours in front of whiteboards figuring out weird and wonderful problems with peers.
Do you have any tips for other software engineers?
Treat every idea and way of thinking like a tool in your toolbox. Avoid taking one “tool” that really resonates with you, and applying it to everything blindly – use the correct tool for the job. Some ideas will work in some environments, and not others. Some ideals and concepts only work in certain architectures, or at a certain scale of engineering, and not at others. Soak up every bit of knowledge you can, but take the context with it, it will serve you best if you understand both the what and the why.
What do you enjoy most about working in a hybrid-remote environment?
Personally, I like the flexibility. I like to come into the office for the social aspect (and the free coffee). However, sometimes I’ve got an appointment near home, or immediately after work, which can make working from home preferable on those days. I really like that flexibility.
Want to experience DiUS for yourself?
Apply for one of our job openings – we’d love to hear from you!