PyDev of the Week: Parker Allen

This week we welcome Parker Allen as our PyDev of the Week! Parker works at BentoBox a restaurant software company that uses Python on its backend.

Parker Allen

Let’s spend some time getting to know Parker!

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

I have a non-traditional route into becoming a software engineer. I studied business with an emphasis in entrepreneurship at Loyola Marymount University, and became interested in crypto currency in 2017. I began building mining computers with 6 graphics cards, and only accessible by bash scripts in the Linux command line. This was my first true encounter with programming. I was awestruck at what was possible with the union of hardware and free open source software. This was the moment I knew I had to learn how to code and I began teaching myself for over a year every day after work.

It eventually consumed my interest entirely and I left my job working in a vineyard to pursue programming full time. I went to a coding school (Codesmith) in LA to sharpen my skills and haven’t looked back. Being close to business decisions and product development is one of the reasons why I love working at start-ups.

When I am not building on top of the world wide web, I enjoy spending my free time golfing, cycling, and finding ways to take a break from the screens.

Why did you start using Python?

The first company I worked for had a Django backend and I was admittedly a JavaScript purist at the time (it was all I knew). Django allowed us to leverage complex SQL aggregations for customer dashboards and build restful APIs consumed by a React frontend. It wasn’t long before Python’s simple, straightforward approach to syntax was a pleasure to work with. Also, Python just looks good and helps with readability. It’s always easier to write code than it is to read it. There were some business needs that weren’t fully automated, and Python was a great tool for processing large CSV data files. I had built a cool script that pulled CSV files from a AWS bucket and could run management commands with different arguments. This allowed us to avoid committing a CSV file into the repository and remove it after it was finished.

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

Eloquent JavaScript was the first programming book that I read and definitely is my first love. I just started to learn Solidity which has been a fun challenge. I’m hoping to learn Go at some point in the future.

What projects are you working on now?

Right now my team is working on building an integration framework to support many 3rd party point of sales systems to work with our application’s core features. This project presents lots of interesting challenges around data integrity. For example, a 3rd party model could be represented with many-to-many relationships while our models have one-to-many relationships for similarly held data. Mapping and maintaining those relationships during updates, deletions and creations of objects is not a simple task. Add to that the need to have data available quickly, but critically important that the data is not stale requires a smart cache invalidation approach. Imagine ordering a dinner plate, the checkout goes through but the restaurant is actually already sold out. Stale data is highly risky in this scenario. It’s been great using Python’s Redis client for managing a solution.

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

I have to say without a doubt the Requests library is a must for API development. It makes working with request objects super simple and allows us to build robust API clients very quickly.

Django and Django Rest Framework are the next two I would say are my favorite. Django’s simplicity in interacting with the database is delightful to work with, but can cause pitfalls in efficiency if not managed properly, so don’t forget to prefetch!

How do you use Python at BentoBox?

At BentoBox we have a Django backend so Python is a given there, but more specifically we heavily leverage object-oriented programming with Python for most of our business logic. Additionally, since upgrading to Python 3.6 we have begun using Python’s type hints which have been a huge plus for our team as a way of self-documenting an ever-growing codebase.

Is there anything else you’d like to say?

Appreciate the spotlight for Python developers, thanks for interviewing me!

Thanks for being a part of the series, Parker!