This week we welcome Julien Danjou (@juldanjou) as our PyDev of the Week. Julien is the author of The Hacker’s Guide to Python. He also writes and interesting Python blog. Let’s spend some time getting to know Julien better!
Can you tell us a little about yourself (hobbies, education, etc):
Sure! I’m a 31 years old free software hacker. I’ve started to work on Linux systems and open source projects around 1998, because I found them to be very cool and technically interesting. In 2001, I started to study at the university and ended up in 2006 with a master degree in computer engineering.
Since then, I’ve been working on free software for different companies – sometimes as a freelancer – and finally ended up at Red Hat. Nowadays I’m working on the OpenStack project – a 2M SLOC cloud computing project written in Python – for the last 3 years.
I live in Paris, France, but I like traveling around and working from different places – that’s a perk of working on distributed open source project. I like playing guitar, watching good TV shows, cooking (I’m a foodie), running (prepping for my first half-marathon in a few days!) and playing first-person shooter games (I’m an old Quaker).
Why did you start using Python?
Curiosity. I saw more and more people using it 10 years ago. I was used to Perl. But I didn’t really like Perl and was not getting a good grip on its object system.
As soon as I found an idea to work on – if I remember correctly that was rebuildd – I started to program in Python and learn the language at the same time.
I liked how Python worked, and how fast I was to able to develop and learn it, so I decided to keep using it for my next projects. I ended up diving into Python core for some reasons, even briefly hacking on Cython at some point, and finally ended up working on OpenStack.
OpenStack is a cloud computing platform entirely written in Python. I’ve been writing Python every day since working on OpenStack.
That’s what pushed me to write “The Hacker’s Guide to Python” in 2013 and self-published it a year later in 2014, where I talk about doing smart and efficient Python.
It had a great success, has even been translated in Chinese and Korean, so I’m currently working on a second edition of the book. It has been an amazing adventure!
What other programming languages do you know and which is your favorite?
I’ve been working on C and Lua a lot during 2007-2010 when working on the awesome window manager and some X11 libraries, so I know them both pretty well.
I’ve done a lot of developers in Emacs Lisp also – I’m a Lisp fan – and a few in Common Lisp. It’s easy to learn any new language when you know Lisp, but you become lazy as they all seem inferior to it. 🙂
What projects are you working on now?
I work on OpenStack, 100% of my time. More specifically, I focus on Ceilometer and Gnocchi. Ceilometer is responsible for metering OpenStack cloud platforms and its surrounding. Gnocchi is a new project I started a few months ago which provides a REST API to manipulate resource catalogs and time series database. It’s meant to be used to store your resources (e.g. virtual machines) and all of their metrics (CPU usage, bandwidth, etc) in a distributed and highly scalable way.
I’m also helping the maintenance of the Python toolchain and libraries we use for OpenStack. We factor a lot of our code and release a bunch of libraries to PyPI. I write patches, fix bugs and review code.
Which Python libraries are your favorite (core or 3rd party)?
I love functools, operator and itertools – but that’s because I love functional programming. I’m also having high-hope around asyncio, the new async Python 3 library. I enjoy using retrying rather than writing my try/except/retry loops.
On 3rd party, I like Flask and Jinja2 for their simplicity to be used. I like stevedore because it makes using plugin in your program super-easy, and pbr because it makes easier to distribute your packages.
Nowadays I rely on Pecan to build REST API the OpenStack way. I also really liked using Pandas in Gnocchi to manipulate timeseries – it’s a great toolbox if you need to manipulate and compute statistics!
Is there anything else you’d like to say?
Python is a great language, even if it has a few shortcomings and design “issues”. I really encourage people to take a look at Lisp, learn it, use it a bit, to have some hindsight about the Python language itself. It’ll make you smarter.
Thanks so much!
The Last 10 PyDevs of the Week