PyDev of the Week: Oleg Broytman

This week we welcome Oleg Broytman (@phd_ru) as our PyDev of the Week. Oleg is the maintainer of the SQLObject project. According to their website “SQLObject is a popular Object Relational Manager for providing an object interface to your database, with tables as classes, rows as instances, and columns as attributes.“. You can also see what else Oleg is a part of via Github and his website. Let’s take a few moments to get to know Oleg better!

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

I was born in Central Asian part of Soviet Union. I relocated to Moscow, Russia to study computer science at CS department of Moscow State University. I started to program before IBM PC era, my first computers were Soviet clones of PDP-11 and IBM/360.

Outside of my professional job I spend a lot of time with computers taking parts in Free Software projects.

Other than that I live usual life spending time with my family, reading books, listening music, watching videos.

Why did you start using Python?

At the end of DOS era I’ve got a habit of writing a lot of huge bat-files to automate every routine thing I did with computers. I was using a lot of helper programs and a number of different command line interpreters (command.com was definitely inadequate for my needs). Once a friend and a colleague of mine looked over my shoulders and saw those scripts. He advised me that I should try shell scripting in Unix.

Somewhere around 1995/96 when all people were switching from DOS to Windows 95 I started to switch to Unix (BSD/OS and SunOS initially, Linux and FreeBSD later). I learned shell scripting and all those small sublanguages (awk, grep, sed and all that). It was really nice but I needed something more so I tried a number of bigger and more complex languages. I didn’t like most of them. Perl 4.036 was especially hard; certainly not my kind of a language.

In September 96 another friend suggested to me to try Python. I started to look at it and found that it suits my brain much better that anything I tried before. In October Guido van Rossum released version 1.4, and I was sold. I subscribed to the mailing list @cwi.nl and the rest is a history. 20 years later I’m still around.

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

Pascal, especially Object Pascal. Before switching to Python I was using a lot of different compilers (remember, I was using different pre-IBM PC architectures and OSes). During DOS era it was mostly Borland/Turbo Pascal. If I were to drop Python now I’d use FreePascal except for the web.

As a web developer I write a lot of client-side JavaScript. Without Python I’d use full-stack JS (NodeJS + clent-side JavaScript) for web development.

I still love shell scripting and write big and small scripts every day.

What projects are you working on now?

Professionally I am a programmer working in health care. Initially it was by accident but now I’m happy it turned out that way. Since 1990 I’m working at telemedicine laboratory of National Research Surgery Centre (sorry, our sites are mostly in Russian).

In 1990s I was using Turbo Pascal to develop computer monitoring programs that monitor the status of a patient during open-heart surgery, collect information, present it to the anesthesiologists and save to a database. Somewhere around 1996/97 I started to use Python to implement the web interface to the database. I am still working on it – both on Pascal programs and Python web interface.

Unfortunately the salary is low so I regularly have to find side contracts to gain money for my family. Currently I am involved in developing yet another Certification Authority. It is not free software but we publish a lot of free software libraries:

  • https://github.com/SmartTeleMax
  • https://github.com/riffm
  • https://pypi.python.org/pypi/pygost

At the front of Free Software I am the maintainer of SQLObject. I started to use it at 2004, joined the development team at around 2006 and I’m still supporting it.

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

Not exactly libraries, rather development tools.

Virtual environments. virtualenv and virtualenvwrapper. Recently I fixed a minor problem with bash completion in virtualenvwrapper and now I recommend everyone to try it. Combine that with the power of setuptools and convenience of pip.

pytest. I am amazed by its tricks (rewritten asserts), detailed tracebacks and error messages.

tox. I have been using it for some time already but only recently I started to understand the power of its declarative programming.

Sphinx. flake8; I use it via vim-flake8 plugin. lxml (finally a library!)

Where do you see Python going as a programming language?

In all possible directions. Python is used in science and industries, in healthcare and web development, in cryptography and database programming, big data and deep learning neural networks, desktops, servers, mobile platforms, GUI, command line, daemons, w32 services, millions 3rd-party libraries for any task. There are very few areas where Python is inadequate language.

What is your take on the current market for Python programmers?

Oops, this time I must admit I don’t know. I seldom change job. I have been working at NRSC since 1990. When I work as a contractor I usually work quite long – 10-12 years.

But when I’m looking for a new contract I find it, and usually quick enough.

Thanks for doing the interview!