Tihomir Bozadzhiev is an experienced software developer working in fintech and in this interview he shares a number of helpful career tips. Read what he says about the tech scene in London and the technologies that have caught his attention.

How did you become a developer, what’s your developer story?

Sometimes I ask myself that same question, haha. I was always interested in tech ever since my family got our first computer back in the early 2000s. Initially it was mostly just playing games, but over time I started figuring out how the whole setup works - building my own PC from parts and constantly tinkering with Windows settings (I’ve completely bricked Windows XP on my computer more times than I can count 🙂).

I did some basic programming at home and school throughout the years and I found it quite easy and enjoyable. So it was only natural that I ended up studying Computer Science in the UK and eventually became a full-time developer.

What excites you about software development?

It’s quite incredible, if you think about it, that all it takes is a laptop and a good idea to transform entire industries or societies through software products. The pandemic would’ve had a very different impact if people couldn’t work remotely. Our entire society today would be completely different without the social network revolution of the past 10-15 years (whether that’s actually helped or hurt the society more, I’ll leave it as an open question, but the impact is undeniable).

In my current job, I love the idea that the product I create ends up saving people’s time or reduces the amount of manual tasks they have to do. It’s quite common to hear comments from our users that automating some process has saved them 10-20+ hours of manual work per week. Or that it has helped them do something that previously they couldn’t. It’s a very rewarding experience.

You live and work in London, what are the pros and cons of being in a megapolis?

Without a doubt the biggest positive of London is the diversity of the place. I’ve been living here for about 5 years and throughout that time I have colleagues, friends and acquaintances from literally every part of the world. It’s really opened up my eyes on how similar people are, regardless of their background.

London is also the financial capital of Europe, there’s a massive number of fin-tech companies concentrated here. For anyone interested in working as a developer within the finance industry, there’s probably no better place to go.

Main disadvantage is the sheer size of the city. You need to be mentally prepared that travelling 45 mins - 1 hour just to meet friends for lunch, or to get to the office, is perfectly normal to do on a daily basis.

Also competition in such a huge tech hub must be severe for well-recognized companies, how hard was it for you to land your job?

It actually wasn’t that hard. There’s a concentration of tech companies here, especially fin-tech, and as with anywhere else in the world, there’s a shortage of developers. I don’t think finding a job here is more difficult than in other places.

Personally I got my current job while I was still at university. It’s common in the UK for students to apply for internships during the summer breaks - and usually if the internship goes well, you get an offer to start full time after finishing your last year of university. That’s what happened to me actually - I did a summer internship in 2015 and was offered to come back full time in 2016 after graduation.

You’ve worked with many developers throughout your career, what makes one a 10x engineer and how do you think one can become a 10x?

I think experience matters more than anything else. Some of the most productive developers that I got to work with were able to contribute so much more, simply because they had this “been there done that” way of doing things. It’s common that new joiners might have a better understanding of some brand new cutting-edge tech stack, but when we go into large productionized projects, you can really tell when someone knows the setup inside-out.

Obviously experience alone isn’t enough, but if you’ve been a developer for 10+ years, you probably have the necessary tech skills to be in this position to begin with. Overall, excellent tech skills + experience is the combination that makes people stand out in the industry.

How do you keep your technical skills sharp?

That’s a tough one. The more time you spend in the same company, team, project, etc, the easier it gets to get comfortable and reuse your existing skills for new projects. People naturally look for the path of least resistance when it comes to work & effort, so when a new project comes up it’s very tempting to just reuse the tried and tested solutions from old projects. I try to proactively force myself to look at new frameworks (perhaps things that I’m not even aware of yet) and tech stack setup prior to jumping into the project design work.

How do you stay productive, what are your productivity tips?

This will probably sound quite strange, but - I learnt to multitask better. In the early years at work I always got frustrated with all the distractions around - constantly receiving new emails, people coming over to my desk to ask something quickly, clients calling because of a production problem… It all felt overwhelming. After some time however, I managed to figure out a system that works for me - for example when I have a large programming problem to solve, I would usually block time for 1-2 hours so I can focus entirely on that.

For smaller on-the go items, being able to context-switch and quickly reply to an email, while your code is running the unit tests in the background is a massive time-saver. It does take some time, but the more senior you become in your role, the more tasks you will have to juggle at the same time, so I think having this skill would be of massive help for anyone.

Being a developer I know that often you might get stuck when you’re coding and can’t figure the way out for hours, how do you get out of those situations, any secrets?

It’s all about teamwork for me. In my team, it’s very common for people to do pair programming or just reach out for help when they get stuck with a problem. And I think that’s incredibly beneficial for any team in any company. There’s this assumption that development work is very much a one-man show - and it often is. But there’s a reason why we work in teams and I’d encourage anyone to try and build a work environment where people are comfortable and willing to work closely together whenever needed. You can spend hours digging through StackOverflow or trial and error solutions, while your teammade sitting next to you has already seen a similar problem before and can help out in 5 minutes.

What do you wish you had known when you began your career as a software developer?

That I will never be able to learn everything about an entire area. It can be very daunting at first when you start digging into a new tech stack, or inherit a project from 5 years ago with hundreds of thousands of lines of code. Eventually it’s much more important to learn how to navigate in a new and unfamiliar environment, than to be expected to ever learn everything there is about it at 100%. Software at your job will change constantly and you should be prepared for it.

If you were limited to passing on one piece of advice to junior programmers, what would that be?

Don’t be afraid to ask questions at work. It’s perfectly normal to feel like you don’t know enough, especially in the early days of working on a new project / in a new company. Even senior engineers years down the line still get stuck and reach out to peers for help.

What piece of software/technology excites you the most at the moment?

In my current project I’ve been working a lot with the Apache Ignite datagrid - it’s a really powerful in-memory distributed database, for high-performance read/write and computation. I’ve only scratched the surface of its capabilities, but it’s been really interesting figuring out how to properly use it for projects where we need to process tens of millions of records on the fly.

What about the future? Do you have your sights set on something that’s yet to be released?

Something which isn’t related to my work, but I find really fascinating is the progress of DeepMind’s AlphaFold. If this proves to be successful, it has the potential to completely revolutionize the medical field as we know it. It’s reminiscent of the early days of the Internet when very few people knew what it was or how it worked, but has since completely transformed our lives. Fingers crossed :)

To what extent are soft skills needed for a software developer?

This actually depends more on the type of job you have. I’d argue that if you work primarily as a developer and you have other people handling the back-and-forth with the clients, soft skills are needed mostly for interactions with your team and employer. I have worked with some brilliant developers, with incredible and in-depth technical skills, who simply didn’t want to deal with any project management work - and that’s perfectly fine.

This changes massively though if you are in a more business analyst type role where you regularly have to interact with the users/clients of your product. Being able to understand the user’s requirements, and convey technical information to non-technical people is essential to the success of your project. You can be the greatest developer out there, but if you haven’t got the correct requirements or have some misunderstanding with the client, it could tank the entire project.

What do you think about the future of remote work after the pandemic is over? Will the tech industry accept the distributed way of working and what’s your experience working from home?

Absolutely, I think flexible working is here to stay. The pandemic proved that it’s entirely possible for software development work to be done remotely and just as effectively. Of course there’s some jobs that still require people in the office, but in our industry that’s a minority.

I do think however that having the flexibility to choose work from home vs office is better than having the entire company work remotely full time. Many people (myself included) appreciate the option to work from home sometimes, but would rather be in the office, interact with our colleagues in person rather than on Zoom calls, and have in-person meetings with clients. And that’s not even going into all the psychological problems that permanent work from home causes for some people long-term. The lack of work/life split and social isolation are real issues that will inevitably affect people’s willingness to go fully remote.

Personally, I like the flexibility to work from home sometimes, and something like 60/40 or 70/30 office/home work is best. But your mileage may vary :)

What are the first 3 words that come to your mind when you think of ‘software development’?

Terminal, Debugger, NullPointerException

In the Picks section you can share any resource that’s worth checking out. Do you have any picks for us?

For day-to-day news on science and tech, I highly recommend Ars Technica - it’s a tech news website, however it focuses more on technology as part of the economy and society (they do go into some really geeky deep-dives occasionally, though).

On a less serious note, take a look at the Internal Tech Emails Twitter account. It regularly posts screenshots of leaked emails of some of the largest tech companies and it’s really fascinating seeing what goes on behind closed doors.

What’s your favourite developer’s joke?

Definitely Tom Cargill’s 90/90 rule - because how painfully accurate it is…

The first 90 percent of the code accounts for the first 90 percent of the development time. The remaining 10 percent of the code accounts for the other 90 percent of the development time. Tom Cargill, Bell Labs