Summary
Every software project is subject to a series of decisions and tradeoffs. One of the first decisions to make is which programming language to use. For companies where their product is software, this is a decision that can have significant impact on their overall success. In this episode Sean Knapp discusses the languages that his team at Ascend use for building a service that powers complex and business critical data workflows. He also explains his motivation to standardize on Python for all layers of their system to improve developer productivity.
Announcements
Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science.
When you’re ready to launch your next app or want to try a project you hear about on the show, you’ll need somewhere to deploy it, so take a look at our friends over at Linode. With their managed Kubernetes platform it’s easy to get started with the next generation of deployment and scaling, powered by the battle tested Linode platform, including simple pricing, node balancers, 40Gbit networking, dedicated CPU and GPU instances, and worldwide data centers. And now you can launch a managed MySQL, Postgres, or Mongo database cluster in minutes to keep your critical data safe with automated backups and failover. Go to pythonpodcast.com/linode and get a $100 credit to try out a Kubernetes cluster of your own. And don’t forget to thank them for their continued support of this show!
Your host as usual is Tobias Macey and today I’m interviewing Sean Knapp about his motivations and experiences standardizing on Python for development at Ascend
Interview
Introductions
How did you get introduced to Python?
Can you describe what Ascend is and the story behind it?
How many engineers work at Ascend?
What are their different areas of focus?
What are your policies for selecting which technologies (e.g. languages, frameworks, dev tooling, deployment, etc.) are supported at Ascend?
What does it mean for a technology to be supported?
You recently started standardizing on Python as the default language for development. How has Python been used up to now?
What other languages are in common use at Ascend?
What are some of the challenges/difficulties that motivated you to establish this policy?
What are some of the tradeoffs that you have seen in the adoption of Python in place of your other adopted languages?
How are you managing ongoing maintenance of projects/products that are not written in Python?
What are some of the potential pitfalls/risks that you are guarding against in your investment in Python?
What are the most interesting, innovative, or unexpected ways that you have seen Python used where it was previously a different technology?
What are the most interesting, unexpected, or challenging lessons that you have learned while working on aligning all of your development on a single language?
When is Python the wrong choice?
What do you have planned for the future of engineering practices at Ascend?
Keep In Touch
LinkedIn
@seanknapp on Twitter
Picks
Tobias
Delver Lens app for scanning Magic: The Gathering cards
Sean
Typer
DuckDB
Amp It Up book (affiliate link)
Closing Announcements
Thank you for listening! Don’t forget to check out our other shows. The Data Engineering Podcast covers the latest on modern data management. The Machine Learning Podcast helps you go from idea to production with machine learning.
Visit the site to subscribe to the show, sign up for the mailing list, and read the show notes.
If you’ve learned something or tried out a project from the show then tell us about it! Email
[email protected]) with your story.
To help other people find the show please leave a review on iTunes and tell your friends and co-workers
Links
Ascend
Data Engineering Podcast Episode
Perl
Google Sawzall
Technical Debt
Ruby
gRPC
Go Language
Java
PySpark
Apache Arrow
Thrift
SQL
Scala
Snowflake runtime for Python Snowpark
Typer CLI framewo