PyDev of the Week: Veronica Hanus

This week we welcome Veronica Hanus (@veronica_hanus) as our PyDev of the Week! Veronica is a regular tech speaker at Python and other tech conferences and meetups. You can see some of her talks and her schedule on her website. She has been active in the Python community for the past few years. Let’s take a few moments to get to know her better!

Veronica Hanus

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

I enjoy writing and taking pictures. For me, the challenge is to help someone feel what I was feeling when I decided the moment was picture- or story-worthy, and both take a combination of skill-that-you-can-study and plain-old-caring that I find immensely rewarding. Photo-taking excursions are one of my favorite ways to spend time with friends, because they’re a nice combination of “quiet, contemplative side-by-side activity” and “let’s get out and do something”!

I once carved out time to take silly pictures with a new conference friend in a funny upside-down room at the conference venue. It amazed me how nice it felt to be fussed over after the stress of my first conference talk. As I started speaking more, I started offering to take pictures of conference attendees and many shared the same sentiment. Many people find conferences overwhelming and it’s nice to take a few minutes and relax, make a new friend, and maybe go home with new headshots.

My education often surprises people because it violates many people’s expectations: I don’t hold a CS degree, and I never attended a bootcamp. In college, I studied Geology with a combined geochemical and planetary science twist. Since shifting into software, I have heard countless times “Geology!? That must have been such a… change”. Even today, comments like that feel challenging and exclusionary and early in my career shift it felt terrible. We hear again and again that having folks from diverse backgrounds help teams innovate, but when meeting someone who doesn’t fit our expectations, most of us still do a double-take. If I get that as a white, degree-touting former-scientist, imagine the uncomfortable responses folks in groups with more bias encounter when we express our surprise!

It turns out that my winding path toward programming has allowed me to make some of my most useful contributions. We don’t talk about it enough, but many use programming skills even if they haven’t written a line of code. If you’re considering development but are wondering how you will fit in, I encourage you to take a peek at communities like Write the Docs (their Slack), #CodeNewbie (their Twitter), or send me a hello via my Twitter or email.

How has your background in science influenced your programming career?

It wasn’t until I was doing research at JPL that I started to understand what programming was. There was a fair bit of “grit” need: I needed to learn MATLAB the semester before my internship so I found the one professor whose research relied on MATLAB and set up an independent study with him. The licensed computer was in the basement of a building across campus. He allowed me to practice during his office hours, so I hoofed it over there twice a week to learn as much MATLAB as I could. When my summer research mentor was from a code-heavy tech-school and when he saw me stumbling, he commented “and I thought you went to a good school.”

I didn’t learn to program that summer, but I started acting as a liaison between our team’s developer and the other interns who were testing his program by hand. During those meetings, we busted many of my personal programming myths. For example, up until that time I believed that proficient programmers would write a program in the same way I would write a letter to a friend, mostly top to bottom (maybe going back for a misspelling or two). That programs could be made from libraries of existing code and some “glue” blew my mind. I started reading our program and soon was pointing and suggesting changes. I started to compare the modules in our program to the processes we might run in the lab environment I was used to. Working in a programming-adjacent field made programming more accessible, even if I did need to beg my way into someone’s basement lab along the way!

Veronica Hanus

Why did you start using Python?

Two things drew me to the Python community: Python’s proximity to so many fields of science (with so many libraries developed for specific applications) and their welcoming community.

Everyone I spoke to as I was deciding to explore programming underscored the importance of a welcoming community and recommended I start with Python. Python got themselves a new “lifer”. While I found many of the general “programming” communities overwhelming (I may never carve out a place for myself on Stack Overflow), I quickly found my place at Boston Python (they had weekend-long tutorials running and I both attended and TA-ed with them). The email list of the Harvard Astro group, whose research questions sometimes overlapped with my interests, became my place to lurk and see how those who relied on Python used the language to solve their problems. There are lots of different ways to learn!

The interest in Python has only grown and there are a multitude of ways to engage with the community. I encourage you to find the way(s) that make the most sense for your learning and socializing styles. We aren’t all Meetup/conference people!

Online communities/forums: CodeNewbies and dev.to are two of my favorites! They have twitter check-ins, podcasts, blog post. I’m also part of the Recurse Center, lovingly called “the world’s best programming community with a three-month onboarding process” and pop into their chats from time to time.

Meetups: Vary by city, but I have most enjoyed ones that rotate their themes, publicize & support other Meetup communities, and make efforts to document resources. Some have active Slack communities that allow people to communicate easily between meetings!

Conferences: Are wonderful (for me) and each have their own culture. I’ve found the ones intentional about culture-building to give the best experiences for attendees and speakers (if they work to clarify attendees’ needs or explain the PacMan rule, I’m in!)

Informal resources: Having a few folks that you go to for advice is invaluable. Seek out those folks and nurture those relationships.
There are many ways to find support but it takes time to find the spaces you can grow in. Experiment!

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

I am pretty comfortable with HTML/CSS/JS, Django, and LaTeX. Python and LaTeX are my first loves and will probably always be my favorites. Few folks know about LaTeX, so I’ll share my story there.

LaTeX is a typesetting language created by Donald Knuth, who—besides his seminal work in the analysis of algorithmic complexity—measured kerning and leading space by hand to find the most visually appealing combination and the result is frankly gorgeous. LaTeX is widely used by academics in math and math-heavy subjects (eg. Physics) and appreciated by a few other typesetting nerds. I have run workshops on LaTeX, hoping to interest people in industry to use it. Alas, LaTeX is still waiting to become popular outside of CS and the sciences. At the moment, it remains a gem reserved mostly for academic use.

I dove into LaTeX because at both the internship I had during college and the first job I had after (at Caltech and MIT, respectively), I saw folks typing their homework, papers, and notes (I heard some were skilled enough to typeset even their class notes!) with beautiful results! I was from a liberal arts school and had never seen this before—math became as beautiful as art! I decided if I would put the hours into my math sets that I needed to, I might as well be able to make them look like an artist had arranged the words/symbols on the page! I started typesetting everything, motivated both by the beauty and desire to fit in, and to this day the sight of my resume (designed and typeset by me) brings a smile to my face. Learning LaTeX was the first time I felt the excitement, joy, and mastery of programming.

What projects are you working on now?

My favorite project right now is analyzing results for a 200-person survey on developer use of in-code comments. I was motivated to learn more about commenting practices after I saw so many new programmers encouraged to avoid comments, although they seem useful in many circumstances. I’ve started speaking about the results and will create an open dataset from the responses.

What advice do you have for others who want to speak at conferences?

I felt I “wasn’t the right person” to give talks for years although I wanted to (and I’m not alone! 75% of people avoid public speaking), so I am full of advice!

Brainstorm with friends for a jump start! Everyone has their own favorite method of putting their ideas onto paper and do whatever helps you turn off your self-doubt filter. I’ve found it especially effective to gather some folks who are also brainstorming and, after drawing up a list of broad categories (eg. “What was an interesting bug you’ve had?”), each person writes on their own sheet of paper their answers (as many as you can think of in 1 minute!). Group members swap papers and mark each of the ideas they would like to learn more about. You’ll quickly see not only how interesting your ideas are but hear some helpful suggestions.

Embrace the vulnerability and don’t give into the temptation to undersell your ideas, either to yourself or others! It is common, when asking for help, for folks to share their (often fantastic) idea and then immediately hedge with “oh but I’m not sure it will work”, “sorry to bother you”, etc. Instead, get as far as you can into talk prep–folks are much more willing (and able!) to help when you can provide them with material to give feedback on.

Get yourself a review team. I have five folks who I regularly send writing to and their comments (even just “I like it!”) give me the energy to move forward when I’m struggling.

It wasn’t until I overheard a seasoned speaker (he seemed to speak at every conference I attend!) say that he normally submits at least five proposals to each conference that I realized there’s a lot more to proposal selection than talk quality! Organizers work to curate a talk lineup that will have something for each of their attendees. If your submission is about a hot new piece of tech, it may be compared to several (or dozens!) of other submissions exploring that technology. It may take a while to create multiple proposals that you feel good about, but hopefully knowing that even the most seasoned among us take this precaution will help you push forward regardless of the outcomes of your first submissions!

Join a review committee! Most conferences put out a call for reviewers on Twitter. By reviewing, read enough proposals that you’ll recognize the most common errors (eg. when the author leaves out important information) and see styles you’ll want to emulate in your own proposals. You’ll also be providing support for your favorite conference and being exposed to areas of the field or language new to you.

Remember this secret: There are very, very few “bad talk ideas” and creating a successful talk relies far more on your continued interest and willingness to research, accept feedback, and revise than your idea. Remind yourself of this as many times as you need to put your worst “weird” ideas out there and see what you can make of them.

Anything else you want to say?

Having gone through both the “what, you’re a geologist?” part of my programming transition and the “maybe speaking is for other people” part of my journey to speaking, I’ve seen first-hand just how much who is seen speaking matters. By giving talks, we not only share our programming adventures but have the chance to share our mis-adventures and hearing about the parts of the journey that are difficult can be powerful—for everyone but especially for the folks who relate to us, because of shared experiences or identities. No one can tell your story like you can.

Thanks for doing the interview, Veronica!