Q&A with Marko Kunic - backend engineer
Introduction
Marko Kunic - a Software Engineer who's working on the backend - talks about what he's building at Lendable, tech he's using, and which social events are his favourites.
Which product are you working on?
I have been working on the Credit card product (a.k.a. Level) since the beginning of the project back in September 2018. It was great to join the company and start working on a brand new product.
When it began, there were just a few engineers working on it. Now we have a much bigger team and we launched the product last September!
At the start we put a lot of effort into a proper architecture, and we can see it's paying off!
What are the technical challenges?
Given all the requirements for the Cards project, we knew that we want to use Event Sourcing architecture. This was the first challenge we faced because none of us had done it before!
We did a lot of research and spoke to the people in the industry - and eventually, we've built it! A big effort was done by our Chief Architect - Ben Challis - investigating event sourcing and all the trends around it.
We took a lot of ideas from Axon and built our own PHP libraries for event sourcing and CQRS.
Right now, we're doing a lot of work around performance optimisation. We're introducing Snapshot extensions to our event sourcing library and queue sharding to our CQRS library.
You mention PHP, what else do you use for building the Credit card product?
We are also using Symfony, MySQL, Redis, and RabbitMQ. When deciding on the tech stack we considered other options as well, for example, we were thinking of using Kafka for messaging. We may cover some of our tech choices in more details in future posts.
In terms of the architecture, we do Service Oriented Architecture, Domain Driven Design and Hexagonal architecture. That in addition to already mentioned Event Sourcing and CQRS.
We do static code analytics and for that we are heavily dependant on PHPStan. We even use its all new features! Additionally, we also invest into unit, integration and e2e tests.
Finally, we are huge believers in immutability, so most of our Value Objects and Collections are immutable.
What makes Lendable different from your previous workplaces?
My answer has to be people. I never worked in a company that has this kind of spirit, and amazing work environment. Besides that we really take our time and try to write the best code we can, working with very skilled people makes this part easier.
Favourite social event at Lendable?
This is a hard question, because work environment at Lendable is amazing, there are a lot of very fun people that make every social feel like it's the best one.
I think I have never been to a social that I didn't like, but If I really had to choose it's probably 'Investor drinks', because a lot of people come to that one, and you can always meet someone new and interesting (last time people even brought dogs, and everyone loves a good boi).
What do you like doing outside of work?
Number one is table tennis, I really enjoy playing it (I expect to have a table in the new office :crossed_fingers:), other than that I love going to dnb parties, board/video games, gym, cycling, improv...