This week we welcome Irina Truong (@irinatruong) as our PyDev of the Week! Irina has been a speaker at several Python conferences and is a maintainer for pgcli, a Python package that is a command-line interface to the Postgres database. You can see what else she has been up to over on Github. Let’s spend some time getting to know Irina!
Can you tell us a little about yourself (hobbies, education, etc)?
I have a Master’s degree in Computer Science from from Kharkiv University of Electronics (in Ukraine). I do aikido, and ride my bike to places when possible. I also love flying (and hold a private pilot certificate), snowboarding and rock climbing, but those hobbies had to give way when my daughter was born (she is 4 years old). I love to travel. I’ve been to a few countries in Europe, but never to Asia or South America, so those are on my list of places to see.
Why did you start using Python?
I’ve been working for a long time in C# (.NET), but I was not very impressed by the whole .NET ecosystem. I wrote web applications in a few different languages, and yet there was no love at first sight. Until I encountered my first Python tutorial on building a small web application. The code was clear, concise, and the application did not need any servers set up to run locally. I knew I wanted to write in this language. So I wrote a small personal project in it. Then, I bought a ticket to my first PyCon, and this was where I found a new employer, one that would actually let me write in Python. Imagine that!
What other programming languages do you know and which is your favorite?
I wrote for a few years in Perl, PHP, Java, and a little in Ruby. I learned Scala, but never had the chance to use it in a real-world project. C# was the longest phase, but once I switched to Python, I never looked back. Occasionally, I had to do some work on the front-end (HTML/CSS/Java Script) but I prefer back-end. Python still has my heart, with Scala a close second. As any developer, I have to know SQL, even though it’s not a programming language.
What projects are you working on now?
In my day job, I am a developer for the company called Parse.ly. Our product is an analytics dashboard for digital publishers. To deliver all those beautiful charts and statistics, we collect and process lots of events using Apache Spark and Apache Storm in AWS.
Outside of work, I am the maintainer of pgcli. It is a better client for PostgreSQL, based on the amazing library called Python Prompt Toolkit. I contribute to other dbcli projects, such as mycli, which is a CLI for MySQL. I also wrote a little CLI for Docker called Wharfee, but that project, sadly, did not get much traction. Recently, I started contributing to Dask.
Which Python libraries are your favorite (core or 3rd party)?
I find bpython extremely helpful to quickly see “what happens if I do this in Python”. Pandas is great for looking at some data. And pipdeptree is wonderful when I need to figure out what dependency pulled in some package I don’t recognize. And as an example of API done right, I’d say requests library.
How did you get into speaking at Python conferences?
I had a friend who presented a talk at PyCon (Amjith Ramanujam, the author of pgcli). And then another friend (Esther Nam, the co-founder of PyLadies). Of course, they are both superhuman, but… Still, for a long time, I thought “I am not the smartest person out there, I have nothing to say”. At a certain point, more and more people started coming to me with questions at work, and I was able to give them good answers, so I realized I had things to say. But I was always extremely scared of putting myself into public view. I talked about it with both of my friends, and tried to learn from their experience and the ways they dealt with the public speaking challenge. In the end, I thought, “Well, surely it can’t be worse than passing my private pilot exam at 5 months pregnant?” I was right. It wasn’t.
Do you have any advice for people who don’t think they can speak at a conference?
Look at all those speakers at PyCon stage. How do they look? Confident? Knowledgeable? Funny? Inside, they are shaking in their boots. I know, because I talked to quite a few of them and asked about that. Nobody goes out there thinking “yeah, piece of cake, I’m going to be a star”. But it gets better with practice. So get as much practice as you can. First, turn on your video camera and speak to it. Review. Fix your behavioral problems (“um…”, “er…”, fidgeting), try again, and record. Repeat until you can say “you know, this does not sound too bad!”. At this point, present your talk at a local meetup. After the talk, get feedback from people. Bring a friend or two, so you can get better feedback, with more details. After you speak to a group of 30 people, speaking to a group of 500 people is really not so different.
Also, see some great advice here: https://ref.readthedocs.io/en/latest/advice_for_pycon_speakers/ . This phrase was especially helpful to me:
One contributor said, “I’ve yet to see a talk where someone was booed off the stage, and I’ve seen some horrific talks.”
So very true! You would not boo a fellow developer off the stage, would you? Then why are you afraid of other people doing something like that to you?
Is there anything else you’d like to say?
Being a software developer, you usually work in a team with other people. Do not tolerate it when other people treat you, or anybody else on the team, unprofessionally or unkindly. If someone is being a jerk, call them out, or bring it up with others. Be kind to others, and share your knowledge. If you end up in a group of people that are being unpleasant to you, through no fault of your own, leave.
Thanks for doing the interview, Irina!