This week, we welcome Max Kahan (@max_does_tech) as our PyDev of the Week! Max is a Python Developer Advocate and software engineer. You can see Max’s code over on GitHub if you’re curious about what Max has been up to.
Let’s take some time to get to know Max better!
Can you tell us a little about yourself (hobbies, education, etc):
Hi Mike! Thanks for having me as a guest on your blog, it’s great to (virtually) be here.
Sure! I’m a Developer Advocate and for the past year, I’ve focused mostly on Python. Before that I worked as a Software Engineer and Developer Advocate for a popular messaging technology, and before that, I studied for a Master’s degree in Physics at the University of Manchester, UK. I love technology but outside of that I play guitar, drums and generally like to make music.
Why did you start using Python?
Python first appeared on my radar after I couldn’t get a project done for NASA. I spent the third year of my degree on exchange at the University of California, and whilst there I did a summer internship in an experimental cosmology lab. My lab was funded by NASA and focused on lasers – actually, focusing lasers on spacecraft to propel them. I was super excited to be involved!
What I didn’t realise beforehand was that in order to control a laser array, I needed a whole lot more computing knowledge than I had! As a Physics student, I’d only learned to code to graph lab results and compute confidence intervals. I made some headway, but if I’d known how to do some relatively simple machine learning, I would have crushed the problem I wanted to solve.
When I got back to the UK, I chose to study a master’s in a topic that would give me the opportunity to teach myself to create machine learning algorithms in Python, and that’s how I really got going.
What other programming languages do you know and which is your favorite?
Python was the language I decided to specialise in because I really like how widely applicable it is – whatever the project or domain, Python is usually at least the second best choice. I also like how it’s written, and the ‘at-your-own-pace’ learning curve – it can be as simple or as complex to use as you like. This makes it accessible, whilst still containing all the complexity of other, more verbose languages, when you’re ready to dive in.
What projects are you working on now?
Right now, I’m the maintainer of my company’s Python tooling. I look after Python code related to communications, which can take many different forms.
Recently I added mutation testing to the CI process for one of the open-source SDKs I look after. Mutation testing is a super interesting area, and one of the topics I’ve been speaking about at several conferences this year. I’m also interested in security, so I’ve been exploring this topic a lot (and presenting on it too!). In my spare time, I’ve also been playing with some Python CLI stuff.
Which Python libraries are your favorite (core or 3rd party)?
That’s a tough question! I probably use requests most often as I deal with a lot of http calls in my day job, though I’m exploring async options like aiohttp and I’m hoping to get more experience with those soon.
I recently added some new features to a Python SDK that used Pydantic, and I think that’s an awesome package – it’s helpful for the situations in Python where you find yourself wishing that the typing system was just a little stricter.
What is a Python Developer Advocate?
That’s a big question that I’ll do my best to answer. A developer advocate exists in tech companies that make software for developers. The job can be a lot of things, but essentially the main goal is to improve the experience of developers who use a piece of software. To do this, developer advocates act like an API between external developers who use our software, and the internal organisation we work for.
Externally, we do this by speaking to developers, attending conferences, doing online research etc. and trying to understand what developers want and need. We create tooling, sample code, demos, tutorials and blogs to make everything easier to use.
Internally, we advocate for developers by feeding back to core engineering/product teams what developers want to see in our software. We try to act as a voice for our users so it’s not just product managers and marketing executives making the decisions that affect developers’ lives.
A Python Developer Advocate is someone who focuses on Python developers specifically – in my day job, I maintain all our Python tooling and samples and create demos, docs and blogs using Python so Python developers can see how cool things can be! You’ll also probably find me at various PyCons – if so, come say hi.
Do you have any tips for people who would like to get into speaking at conferences?
Sure, I started doing this last year and I’ve been lucky enough to speak in the UK, Canada, Portugal, Belgium, France, Germany and the Philippines (virtually!) I’m not an expert, but here’s how I think about it.
- Speak about something you’re really passionate about. It’s much easier to give a good talk this way.
- Read the guidelines in the call for proposals (CfP) because they will explain what the conference is looking for; tailor your talks to fit these.
- The goal of a conference presentation can vary for different audiences and presentation styles, but the aim is never, ever, ever to speak your slides out loud – your aim is to engage people, to inform, connect or entertain.
- I’d actually like to throw this back to you, Mike, because I’m also trying to improve and you’ve given a lot of talks! Do you have any tips for us?
Is there anything else you’d like to say?
If you want to get in touch with me, Twitter’s currently a good place for that and you can find me at https://twitter.com/max_does_tech.
Thanks for doing the interview, Max!