PyDev of the Week: Adam Hopkins

This week we welcome Adam Hopkins (@AdmHpkns) as our PyDev of the Week! Adam is a core developer on Sanic, a Python server / web framework. You can see what Adam has been up to over on GitHub.

Let’s spend some time getting to know Adam better!

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

The most concise way is to point you to my profile.

I am a Lead Sr. Software Engineer at PacketFabric. I’ve been building web applications for over 20 years at this point, but software engineering is my second career. I practiced law for a number of years before I made my career switch. I consider myself to be very lucky that I was able to turn my hobby into a career. I graduated from the George Washington University in DC, and then law school at the New England School of Law. My computer and development background is 100% self-taught.

Hobbies? People have time for that? Between my job, the open source work that I do, and the five kids I have at home, there is little time for hobbies. Someday I would like to get back into homebrewing, and I also am slowly slowly trying to build up a home workshop for woodworking. I do try and spend a good chunk of every week reading, and I try to also write as often as I can.

Why did you start using Python?

My first exposure was sometime in the early 2000s. I had been using PHP at the time, and as I mentioned I was self-taught. I was starting to come upon the realization that PHP was seriously broken. I cannot recall exactly what was my first exposure to it, but I remember thinking that it just felt so natural to me. To learn PHP, I spent most of my time reading the documents because of the complete inconsistency of the language. To learn Python, I just had to look at code and play with it. I feel like the language taught me.

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

Having spent so many years doing web: Javascript. But, I remember the early days before Typescript so I still harbor resentment and disdain for it. As I mentioned, I left PHP behind almost 20 years ago. I have done some work in Java, C, C++. Python, however, is my home. It is where I am the most comfortable and productive. I have also been playing around in Rust on some side projects. It is a nice language that I do enjoy working with. I taught myself how to use it by writing a DB engine: https://github.com/ahopkins/merkava. I am sure a seasoned Rust developer would have a lot to say about it, but it was fun to learn something new.

What projects are you working on now?

I spend a lot of time managing and working on Sanic. For the last three or four years, I have been helping to spearhead it as a community-developed framework. It has been a lot of fun and incredibly rewarding. The new June release (21.6) will be out soon, and shortly after that I plan to release a new package sanic-ext that will add some date validation and other helpful utilities for API developers.

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

Of course, I am biased towards Sanic, so we will leave that aside. However, it really highlights the amazing addition that the asyncio module brought to Python. I think that is my favorite standard library module because of what it has brought to the language. It was an incredible addition at a very good time and has matured nicely since its introduction. It is tough to say what my “favorite” third-party package is. So I will answer the question by giving my own question: what third party package could I not imagine building something without? tox. It is a workhorse and just plain makes my life easier.

Is there anything else you’d like to say?

Reflecting back upon my career so far, the one thing I would stress more than anything else is: never underestimate yourself, but never overinflate yourself. “Imposter syndrome” was an issue for me for sure for a while. Getting involved in OSS really helped me gain some confidence. On the other hand, don’t build up your ego. There are always going to be people that know more than you, so do what you can to learn from them. The OSS community is at its core filled with some amazing people. Our world is a better place because of them. From the newest and freshest of developers, to the most seasoned professionals, every developer has a duty to try and help out in whatever small way they can. I honestly believe there is a place for everyone to pitch in to make some small corner of the Internet and the World a little better, bit by bit.

Thank you for doing the interview, Adam!