PyDev of the Week: Honza Král

This week we welcome Honza Král (@HonzaKral) as our PyDev of the Week! Honza is one of the core developers of the Django web framework. He is also the maintainer of the official Python client to Elasticsearch. You can see some of the projects he is interested in or working on over at Github. Let’s spend some time getting to know Honza better!

Can you tell us a little about yourself (hobbies, education, etc):

I grew up in the Old Town of Prague, Czech Republic where I also went to school, including University where I studied computer science (which I didn’t finish). During my studies I discovered Python and immediately fell in love, first with the language and later, after going to my first Pycon in 2008, with the community.

I became a part of the Django community which was (and still is to this day) very welcoming. I became a part of it to learn and, hopefully, contribute something back. For my part it worked amazingly well – I got all my recent jobs through the community and even met my fiancee at a EuroPython conference!

Nowadays I work for Elastic, the company behind Elasticsearch where I do consulting – traveling around the world helping people be successful with open source – and also maintain the official Python client.

Why did you start using Python / Django?

I started in university for a project. I had my eye on Python for some time then and a perfect opportunity presented itself to use it for one of our team projects – we decided it would be a web-based application and Django was the shiny new thing that caught my attention. I introduced it to the rest of the team and have been using it ever since.

What other programming languages do you know and which is your favorite?

My other favorite, besides Python of course :), would be shell – I still enjoy writing both simple (or a bit more complex) one-liners as well as longer scripts in shell. I like the variety of it where you have so many possibilities on how to accomplish things with a seemingly limited language. I like how it’s very unlike other languages I am used to working in as it forces you to think more in terms of pipelines and “just” passing off problems to another app/language. It definitely helped my Python skills as well I think – thinking of what I need to keep in a list/variable vs where a simple generator would suffice (as would a pipeline in shell) etc.

Right now I am looking at rust and hoping that a suitable project will come along for me to give it a serious try.

What projects are you working on now?

Currently I am working on elasticsearch-dsl which is an ORM-like abstraction on top of elasticsearch. It is an ambitious project since I wanted to expose all the power of elasticsearch’s query DSL while also trying to make it more accessible to non-experts and generally friendlier. While I think that in some areas I might have achieved this, I still have a long way to go in others; and for some I don’t even see the clear path of what needs to happen which makes it interesting – gives me something to ponder 🙂

Which Python libraries are your favorite (core or 3rd party)?

As a 3rd party library I really like click because of how well it fulfills its purpose. From the standard library I am a huge fan of itertools, collections and other “helper” libraries that don’t just offer some functionality but also, and often more importantly, show how a real pythonic code should look like and makes your code more pythonic when you use them properly – the same quality I always liked about Django where it guides you in the right direction and makes the right-way to things so obvious that it trains you to recognize it and use it also outside of your Django projects.

Another library I find really interesting is py.test – I love the feature set and how easy and flexible it makes testing but I am also a bit wary of the “magic” that happens there. To me that is a perfect example of the pragmatism in the python community – I think we can all accept a little magic as long as it is clearly defined and serves its purpose.

Is there anything else you’d like to say?

I want to say a huge Thank you to the global Python community out there! I have been privileged enough to see a huge part of it and it still manages to catch me off guard regularly with the amount of awesomeness and caring that make for a great environment. I interact with developers all over the world as part of my job and really appreciate the amount effort and thought the people in the Python community are putting into making sure it is a thriving and welcoming one.

Thanks so much for doing the interview!