Published on

Q&A with Milen Dzhumerov

Independent software developer

My name is Milen Dzhumerov and I’m an independent software developer. I’m mainly involved in making software for Apple platforms - iOS and OS X. I’m currently concentrating on the Mac side of things, namely Monodraw, a powerful ASCII art editor.

How did you get started in apps development?

When I was a teenager, I remember always wanting to get a Mac due to OS X. So when I finally purchased an iMac, I was incredibly happy and wanted to learn to program it. Subsequently, I bought "Cocoa Programming for Mac OS X” by Aaron Hillegass and started playing around.

It wasn't until 2008 when I released my first proper app called EventBox which I co-developed with my university classmate Chris Emery. We spent another year working on it and it was later acquired by Realmac Software.

Around that time, the iOS SDK was released and I got into Cocoa Touch. I then created a Google Calendar client for the iPad, called Cloud Calendar. In 2012, I partnered with Realmac Software and we co-created Clear. I then spent another two and a half years working on the product, mainly implementing iCloud sync using a custom solution (http://blog.helftone.com/clear-in-the-icloud/) as there were no alternatives at the time and also developing the iPad app.

That brings us to the present and my time is currently occupied with Monodraw.

Academically, I studied computer science at Imperial. It was a great experience and would definitely recommend it. While formal education is not required to be a software programmer, it can significantly help you develop skills to approach problems in a more rigorous and formal fashion.

What software and hardware do you use for software development?

On the software side, I have three indispensable tools: Xcode, TextMate and The Hit List. To keep up with the latest news, I use Twitter for Mac and Reeder 2 for Mac.

I use a fairly old Mac, namely a 2009 Mac Pro with 8 physical cores. I’ve replaced the hard drives with SSDs, so it’s quite snappy. A particular benefit of using a relatively slow computer as my main development machine is that once I've made sure that my apps run smoothly on it, I’m confident they’ll perform even better on everyone else’s Macs.

My Mac Pro is paired with the 30” Apple Cinema Display which provides a lot screen real estate.

I also use the Microsoft Sculpt Keyboard together with a Logitech MX Performance mouse - they’re much more ergonomic than Apple’s offerings.

What is your ideal work environment?

Above all, my ideal working environment has to be quiet without any distractions. In order to be productive and get into the zone, I need to focus and concentrate. Apart from that, I prefer indoor spaces with plenty of sunlight.

Top-3 your favorite books about software development

Some of my favourite books include:

  • The Algorithm Design Manual (Skiena)
  • forall X: An Introduction to Formal Logic
  • Discrete Mathematics and Its Applications (Rosen)
  • Masters Of Doom (Kushner)
  • Hackers (Levy)
  • The Making of Karateka

If you’re making software for Apple’s platforms, definitely check out the release notes with each major release and watch all the WWDC videos - they contain very valuable information that cannot be found anywhere else.

Who are the developers you admire most?

Jordan Mechner who created Karateka, Chris Sawyer, the creator of RollerCoaster Tycoon which was written in assembler. And finally, the legendary John Carmack.