PyDev of the Week: Reindert-Jan Ekker

This week we welcome Reindert-Jan Ekker (@rjekker) as our PyDev of the Week! Reindart is a freelance teacher who teaches Python, Java, Django, Bash and more. You can learn more about what he teaches at Code Sensei. Reindart also teaches on Pluralsight.

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

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

Hi! My name is Reindert-Jan, I’m 44 years old and I live in Amsterdam, The Netherlands. I’ve been into computers and programming ever since I was a kid. Writing code is a lot of fun and I’ve found that it unlocks my creativity. These days I mostly teach, so the code I write is usually for demos or for personal projects.

When I’m not working I do all kinds of different things – I like to read sci-fi and fantasy books, get some exercise (sasa dancing and tennis, among other things), hang out with friends, go out to see a band.. I don’t really have any hard-core hobbies that I stick with for years, maybe because I just like variety.

I studied Artificial Intelligence in Groningen (The Netherlands), back in 1996, which I absolutely loved. After that, I became a programmer and worked mainly in Web Development with Java. Honestly, I was never happy as a professional programmer. I hated having to work on “corporate” projects and hated the deadlines. I still did well though and became a team leader and a Scrum master.. But I didn’t like coding that much anymore. I even stopped writing code in my spare time because I didn’t feel it was fun anymore.

At some point I felt it was enough, I was missing something. I quit my job and took a sabbatical to make up my mind. That was when I realized I wanted to teach. I had done this in the past, at university, and greatly enjoyed it.

So I took the leap and got a teacher’s degree. I was a Computer Science teacher for a while, and these days I have my own company – Code Sensei – where I teach coding skills.

I mostly do in-company classroom training, or online content for Pluralsight, focusing on Python and frameworks like Django, Flask, or data skills with Pandas. And I love it! I’ve refound the joy and creativity of coding and I love to share my skills and experience with others.

Why did you start using Python?

This was during the last years of my study, probably around 2002. In those days I would write hobby projects either in C++, Perl or Bash. When I first heard about Python and checked it out, I was amazed at how clean and readable it was. Back then, Python was also a smaller language and you could read the tutorial in a single evening, which I did. I don’t think I ever wrote a lot of Perl or C++ after that.

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

I first learned to program on an old home computer – a TI 99/4A, which has its own BASIC. I remember seeing other kids play games on their MSX and trying to program those myself.

When we got our first PC at home (I was probably 14 or 15), I installed Turbo Pascal. I had to get a library book to learn about Pascal, because we did not have a modem and the internet did not exist yet.

During my studies I learned many other languages – C, C++, Prolog, Lisp, Perl, to name a few. And then I became a Java web developer. I once counted and I’ve written code in more than 30 languages – I won’t name all of them here, some are quite obscure!

So I wrote code in many languages – but Python is my favorite. I always loved Lisp as well and I’d love to learn Clojure one day.

What projects are you working on now?

The past few years I’ve been focusing mostly on teaching and I haven’t written any code outside of my hobby projects. The big projects I work on are mostly courses – recently I finished a new Pluralsight course on FastAPI and right now I’m starting on a set of courses that will hopefully go live later this year – unfortunately I’m not allowed to tell you what those are going to be. I’ll also be updating some of my existing courses. So that will take most of my time and leave no room for serious, professional development.

Of course I do have lots of non-commercial and personal projects on the side. I’m the main developer on the Django website for “The Teachers Tribe”, a cooperation with colleagues who also teach coding skills, where we share opportunities with each other.

I also have several Python projects for my business – I like to write my own tools, like a custom invoicing system.. and I write lots of shell scripts as well, mostly short scripts for convenience or system administration. That’s something that always goes on so it’s kind of a project in itself.

By the way, I write all my teaching materials in Org Mode, using Emacs. I basically live in Emacs and I keep all my notes, planning, and more in Org files. I’m currently rewriting the site generator that creates my online course materials from the Org source code. This is an emacs-lisp project, and I’ve actually been pleasantly surprised by that slightly weird language. But it will never replace Python as a general-purpose language.

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

That’s a hard question! I don’t usually have strong feelings about libraries. One library that I really like at the moment is click,it makes it so easy to create programs with a command-line interface. Because of click I find myself reaching for Python instead of bash more often than before.

Another favorite of mine is pytest. I’m never going back to writing test classes again. Speaking about tests, another cool library is hypothesis. The combination of pytest and hypothesis has made my test code shorter, simpler and yet more correct and complete.

I’m also very happy with Pathlib, which was added (relatively) recently to the standard library. Every time I work with paths, I feel
happy to have this available.

I should also talk about web development for a moment. It might be boring and predictable, but my favourites there are Flask and Django. Django, because it’s such a mature and complete project, and still a joy to work with. Flask on the other hand because it’s minimal and elegant. I feel like these two projects showcase how Python lets us create beautiful interfaces with an elegance you cannot find in many other languages, and at the same time Python gives us lots of power to solve real-world problems.

How did you end up being an author for Pluralsight?

This was back in 2013. I was teaching Computer Science, and I was already considering becoming a freelance teacher. I was teaching some C# classes and I would sometimes watch a Pluralsight course about C#. Pluralsight at that time was still a tiny startup with mostly C# content.

One night after work I received a marketing email from Pluralsight about their new courses. At the bottom it mentioned that they wanted to add more topics to their library, including open source and Linux related content. I saw this as a huge opportunity – e-learning at that point was still relatively new and I thought that it would probably become huge.

I stayed up late to translate my CV into English and write an email. I received a reply the same night and interviewed with Pluralsight the same week. They asked me to create a course about Bash, which I did, and which turned out to be quite succesful. This was the impulse I needed to start as a freelancer – over the next year I created more and more content and once I earned a basic income from that, I quit my job and became a freelancer. I never looked back 🙂

What are the top 3 things you have learned as an author?

Let me keep this short:

1. You can only learn to program by writing code. Even the most talented people cannot learn how to program from watching someone else explain it.

2. Kill your darlings. Many programmers who start teaching, spend too much time talking about what they think is important. But that tends to not be very important or useful for your audience.

3. Less is more. Not everyone needs to know everything about Python. More and more I see how important it is to teach just the

Thanks for doing the interview, Reindert!