Clojure is a dynamic, general-purpose programming language which has gained a lot of popularity in the recent years. Some of its advantages made the Funding Circle team at Questers add it to their tech stack. Therefore, we invited Denislav Naydenov to tell us more about his impressions of the language and why they have decided to start using it. Denislav is a Tech Lead at Funding Circle who has huge experience with Ruby but was also involved in several Clojure projects until recently. Here is what he shared with us.
Tell us more about your professional experience as a software developer. How did you come across Clojure?
I spent most of my time doing pair programming with the team on various services in Funding Circle. Having teammates who also put their hearts into the work they do in search of reliable and clean solutions in complex domains and seeing them succeed into it, is what pushed me forward through the years.
Most of the time Ruby is my language of choice, and that’s because of its readable and clean syntax and large ecosystem. However, the software industry is progressing quickly and whenever we start something new, we are looking for the best tools. A few years ago, I was given a task to build a monitoring system that was supposed to aggregate a huge number of metrics from different sources and Clojure was a great fit for it.
Comparing Ruby and Clojure, how do the two languages differ from one another? Was switching to Clojure a challenging task?
Ruby is easy to read and write object-oriented language. It has an awesome package system and tools which make web development extremely easy. It is widely used and newbie-friendly.
Clojure, on the other hand, is designed for concurrency. It offers functional programming without side-effects and immutable data structures out of the box. Clojure also features clean syntax and favours simplicity, but is way faster. It has a large number of high-quality libraries and since Clojure runs on the JVM it, has an interop system with Java.
Switching was easy - a child’s play. I started with some Clojure Katas. Nowadays there are lots of getting started articles and the supportive colleagues in Funding Circle make such transition a no-brainer.
What do you like about the language?
Clojure tries to solve many problems in software development as simply as possible. Everything is functions and data. Clojure is perfect for REPL driven development.
Part of the Funding Circle team is currently working on some quite interesting projects with Clojure, can you shed some light on them?
The team is responsible for several core services which process financial data about loans, investments and repayments. These projects make use of Clojure, Kafka and Event Sourcing to secure quick and atomic updates of state which can be traced all the way back. This architecture works great for us.
You’re now looking for more likeminded people to join the team. What’s the ideal candidate like?
A self-motivated and enthusiastic individual who enjoys working within a team and by their own initiative. Willing to learn and develop new skills. The successful candidate will join a harmonious team in a positive and friendly work environment.
Are you a self-motivated and enthusiastic person who is willing to learn Clojure and be part of the great Funding Circle team? Learn more about the position and be sure to apply here.