PyDev of the Week: Aly Sivji

This week we welcome Aly Sivji (@CaiusSivjus) as our PyDev of the Week. Aly is an organizer for the Chicago Python Users Group (ChiPy), one of the largest Python groups around. If you’d like to see what Aly is up to, you can visit his blog or check out his Github profile. You can also connect with him on LinkedIn.

Aly Sivji

Now let’s take some time to get to know Aly better!

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

I live in Chicago and work as a Senior Backend Engineer at Noteworth. Noteworth is a seed-stage startup building a Digital Medicine platform that providers use to track and monitor patients. I love working on a close-knit product team developing innovative solutions that positively impact people’s lives. We are growing quickly and are always looking for talented Engineering and Product folks — please reach out if you see a position you are interested in! We are fully remote with employees all over the world.

I wasn’t always a developer: I graduated with a degree in Computational Mathematics from the University of Waterloo. While I did take a few (required) programming classes, my interests were mainly in the financial markets. I worked at a few large banks and a couple of specialized trading shops in Chicago before realizing that the world of derivatives and financial engineering wasn’t for me.

This was around the time that MOOCs were becoming popular and I spent lots of time outside of work trying to figure out what was next. I enrolled in every class that sounded the least bit interesting and completed the handful I cared about. One class stuck out: Healthcare Informatics with Dr. Mark Braunstein (latest version on EdX); this class outlined different ways technology could be used to improve healthcare delivery models in the US. Healthcare affects us all and it seemed like a fulfilling industry to work in. After the class was complete, I enrolled in the online Healthcare Informatics Master’s program at Northwestern University and started the process of changing my career.

A couple of quarters before graduating, I moved from a Data Analysis / Data Engineering role at IBM Watson Health to a Backend Engineering role at a small healthcare startup in the laboratory testing space. The startup didn’t make it and I spent a couple of years working as a backend engineer at large market research firms to pay bills. Being an enterprise programmer is a grind and I was close to calling it quits and moving into a Developer Relations or Product Manager role. Fortunately, I decided against that and joined another healthcare startup.

I feel like I had a lot more hobbies pre-pandemic. I still try to get outside and run a little bit each week. I also enjoy watching old TV shows like I Love Lucy, M*A*S*H, Three’s Company, and Perry Mason. If it’s on MeTV, my TiVo is probably recording it.

Why did you start using Python?

Both Python and R were used to teach data science classes on Coursera. I was initially more comfortable with R since I used it in a couple of college classes, but I found myself struggling with the R ecosystem and RStudio.

Python felt like a programming language I could use anywhere. Once I started digging into the Python Data Model, dunder methods, and the Zen of Python… I was __hooked__!

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

I know JavaScript. Mostly work with vanilla JS, but I’m also comfortable jumping into a framework like React. One of my goals for 2021 is to complete a complex feature for our front-end React app at Noteworth.

I also have a lot of experience with Excel VBA from my finance days. It’s been almost a decade since I was an Excel Power User, but those skills never go away.

What projects are you working on now?

I’m one of the organizers of the Chicago Python Users Group (ChiPy). ChiPy is one of the largest Python-focused communities in the world with over 6_000 members! Before COVID-19, ChiPy held 4-6 events every month in the offices of our very generous sponsors around the Chicagoland area. During the pandemic, we’ve transitioned to a virtual schedule: we livestream talk events to the Chicago Python YouTube channel and have monthly Project Nights where folks can collaborate in our Gather.Town space.

One benefit of the pandemic is that the Chicago Python community is not just local, we’re global! We’ve had speakers from Zimbabwe, Israel, Czech Republic, Croatia, Canada, and all over the US! It’s been amazing connecting with the worldwide Python community! We’re always looking for speakers: please reach out if you are interested in giving a talk.

A couple of years ago, I started building a community engagement Slackbot called Busy Beaver. This project started off as a weekend hackathon to build a GitHub activity bot for the ChiPy Slack workspace and has since grown into a fairly complex Flask application deployed to my Kubernetes clusters on DigitalOcean. I’ve led Open Source sprint sessions at PyCon, PyCascades, and PyOhio on Busy Beaver and the project has contributors from around the world! I gave a detailed talk on Busy Beaver at PyCon Africa 2020 for those wanting to dig a bit deeper.

Another project I work on is finite-state-machine, which is a lightweight, decorator-based implementation of a Finite State Machine (FSM) in Python.

At Noteworth, I’m building an integration service that sits between our clients and our backend platform. The service leverages the AWS SAM framework and is deployed as a serverless application. This project is completely greenfield and I’ve had the opportunity to insert a lot of my opinions into the repository which has been a lot of fun! I will be giving a talk about how Noteworth uses AWS SAM and LocalStack at the Python Web Conference in March 2021.

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

“Explicit is better than implicit” is my favourite line in the Zen of Python. I try to be as explicit as possible when I’m coding and libraries like django-fsm and jsonschema help me design robust features that are easy to debug. I love django-fsm so much that I built a non-Django version with a similar API.

From the standard library, I always use `typing.NamedTuple` to create Data Transfer Objects. Also a huge fan of itertools.

How did you get into giving tech talks?

Doesn’t matter how much you know about Software Engineering or Data Science, it’s always hard to get your first tech job. I knew I had to stick out from the crowd in order to convince a team I was worth taking a chance on, especially as a career changer without any formal training. I knew Python, but so did every other applicant.

In 2017, I started a blog to document the process of building small side projects. I was very methodical in my approach: I broke problems into smaller chunks and referenced where I learned the things I learned (shoutout to Code Complete]!). I also started speaking at meetups and conferences to get my name into the minds of hiring managers. Fortunately, all of my hard work paid off: I was able to point to a talk I gave at PyOhio during interviews which led to my first development job.

Since then I’ve been using tech talks as a way to learn a new technology, a new framework, or a new way of doing things. People seem to click with my presentation style and I love the feeling of helping others learn something new or look at what they already know in a different light.

Links to my videos and slides for all talks are available at https://github.com/alysivji/talks/

What are the top three things you have learned as a Python user group organizer?

1. Everybody knows at least one thing that they can talk about for 5 minutes.

One of the reasons Chicago Python is so active is that we have a lot of members who volunteer to share their knowledge with our community by giving talks. It may take a little coaxing and encouragement, but everybody has at least one thing they are able to speak about in front of a group of people for 5 minutes.

2. Have a plan for recruiting sponsors

Most of ChiPy’s sponsors are local companies looking to hire motivated engineers and in-person events are a great way to recruit. I wrote a scraper to create a list of companies that are actively hiring Python developers. Cold emailing recruiting and hiring managers is not a lot of fun, but it works and helps us find venues for in-person events.

3. Virtual events are here to stay

The ease and convenience of virtual events means local organizers have to start thinking of a virtual strategy on top of an in-person strategy.

Not sure what the effects of COVID-19 will be once it’s safe to meet in large groups. Will sponsors allow random people into their offices? Will livestreaming events affect in-person turnout? Whatever the future brings, organizers will have to adapt accordingly.

Is there anything else you’d like to say?

The pandemic has been hard on everybody and it’s going to be a while until things go back to normal. Please make sure to take time for yourself and recharge. Mental health and well-being are important.

Thanks for doing the interview, Aly!