PyDev of the Week: Jaime Buelta

This week we welcome Jaime Buelta (@jaimebuelta) as our PyDev of the Week! Jaime has written several books on automation with Python as well as on Docker. You can see some of his books over on Amazon.

You can also catch up with Jaime by visiting his website.

Let’s spend a few moments getting to know Jaime better!

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

I am a Spanish developer currently working as Software Architect in Double Yard, Dublin in projects bringing AI solutions to the educational world, which is an interesting challenge. I’ve been in tech for the last 20 years and worked in many industries, including aerospace, financial or gaming industry. I got a break for a couple of years where I set up a comic book store, which only lasted a couple of years.

I got a degree in telecommunications engineering in Alcalá de Henares University, near my hometown in Madrid. In Spain this degree was the traditional way to get into computer sciences, in a similar way that in other universities was through electrical engineering. Since I got my first computer, a ZX Spectrum, I’ve always been interested in computers.For my first professional years I was mainly developing in C, which is a great way of being frustrated while you learn how the machine works.

About hobbies, I play the guitar, though not as often as I used to. I am recently trying to get into making podcasts, a medium that I think is really interesting and I’ve been a long time fan. I also like very unsurprising things for a developer like Star Trek. What can I say? I guess I’m such a geek!

Why did you start using Python?

I started learning Python around 2008. It started more as a side project, I was looking for a new language to learn, tried a bit of Java because of my work, but I didn’t like it. I had heard a lot of nice things about Python, and I started learning in my spare time. My first Python code was pretty much “C written with Python syntax”

I really loved it, and started introducing it to more and more things in my job. One of the first things that I was able to do was pretty crazy macros inside Open Office (now Libre Office), which has an internal Python interpreter. The code was truly crazy, and probably much worse to what I would write today, I was experimenting a lot with the capacities of Python, but I was able to do a lot of data processing with spreadsheets.

I got so interested in it that I started looking for jobs that will allow me to work full time as a Python developer, which I did in 2010 when I moved to Dublin. And since then it has been the main language that I’ve used professionally. Still loving it!

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

C still has a place in my heart, though I haven’t used it much in recent years. I’ve done my fair bit of bash and Javascript and also used more sparingly languages like Ruby or Erlang. These days, using Kubernetes, feels like YAML files are their own language.

Python is still my favourite by a large margin.

What projects are you working on now?

Currently, I am working in a project to create a proctoring solution for online exams. During the last year this has been an area that has exploded in interest, due the COVID pandemic, so we’ve been quite busy. I’m working now closely with teams that do areas where I don’t have that much experience, like doing clients for Mac and Windows, while most of my expertise has been server side. Also there are AI components, which is another area that was totally new for me. So I’m learning a lot at the moment!

I also maintain a small utility that I created to search in the command line, called ffind. Most of development in the last couple of years has been to be sure that’s compatible with newer versions of Python, and improving the tests and CI pipeline. It was something that I created to scratch my own itch and I use it everyday and I’m quite proud of it, even if it’s tiny.

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

To me, the greatest Python library ever is requests. It’s such a joy to use for HTTP requests, the documentation is fantastic and the API is great to use. It’s the gold standard in third-party libraries, and that we all should aim to do if creating an external library.

I also like a lot Django REST framework, which is very useful for creating RESTful applications through Django. And another really useful one is sh, which allows to replace bash scripts with Python in a much simpler way.

The “batteries-included” libraries are very useful as well. I like argparse as well, it’s very easy to create a simple CLI for scripts.

If you had to pick one of the books you have authored as your favorite, which would you pick and why?

While I like them all, obviously, I think that I will have to pick “Hands-On Docker for Microservices with Python”. I think that I was able to get a lot of lessons that I learned about structuring systems and working with scalable systems. It covers a lot of things that interest me greatly, like RESTful services, containers, running clusters in production and creating healthy operations practices. I think I was able to talk about some of the things that took me a while to realise, so I hope it helps others to make the process a bit faster.

What have you learned from being an author?

That writing is hard! Sorry, I knew that from before… My grandfather was a writer and I got an idea from an early age on how much effort goes into writing something. Also, being Spanish my first language, it makes the process arduous.

Other than that, another thing that becomes obvious is that you learn a lot by doing the process of structuring what to write down, creating examples, etc. It really forces you to understand what you are explaining.

Is there anything else you’d like to say?

I have a blog that I update from time to time at https://wrongsideofmemphis.com/ , in case someone wants to take a look.

Thanks for doing the interview, Jaime!