Standardizing On Python For All Software Projects At Ascend.io

The Python Podcast.__init__

Episode | Podcast

Date: Mon, 12 Sep 2022 21:00:00 -0400

<div class="wp-block-jetpack-markdown"><h2>Summary</h2> <p>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.</p> <h2>Announcements</h2> <ul> <li>Hello and welcome to Podcast.__init__, the podcast about Python&#8217;s role in data and science.</li> <li>When you&#8217;re ready to launch your next app or want to try a project you hear about on the show, you&#8217;ll need somewhere to deploy it, so take a look at our friends over at Linode. With their managed Kubernetes platform it&#8217;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 <a href="https://www.pythonpodcast.com/linode?utm_source=rss&amp;utm_medium=rss">pythonpodcast.com/linode</a> and get a $100 credit to try out a Kubernetes cluster of your own. And don&#8217;t forget to thank them for their continued support of this show!</li> <li>Your host as usual is Tobias Macey and today I&#8217;m interviewing Sean Knapp about his motivations and experiences standardizing on Python for development at Ascend</li> </ul> <h2>Interview</h2> <ul> <li>Introductions</li> <li>How did you get introduced to Python?</li> <li>Can you describe what Ascend is and the story behind it?</li> <li>How many engineers work at Ascend? <ul> <li>What are their different areas of focus?</li> </ul> </li> <li>What are your policies for selecting which technologies (e.g. languages, frameworks, dev tooling, deployment, etc.) are supported at Ascend? <ul> <li>What does it mean for a technology to be supported?</li> </ul> </li> <li>You recently started standardizing on Python as the default language for development. How has Python been used up to now? <ul> <li>What other languages are in common use at Ascend?</li> <li>What are some of the challenges/difficulties that motivated you to establish this policy?</li> </ul> </li> <li>What are some of the tradeoffs that you have seen in the adoption of Python in place of your other adopted languages? <ul> <li>How are you managing ongoing maintenance of projects/products that are not written in Python?</li> </ul> </li> <li>What are some of the potential pitfalls/risks that you are guarding against in your investment in Python?</li> <li>What are the most interesting, innovative, or unexpected ways that you have seen Python used where it was previously a different technology?</li> <li>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?</li> <li>When is Python the wrong choice?</li> <li>What do you have planned for the future of engineering practices at Ascend?</li> </ul> <h2>Keep In Touch</h2> <ul> <li><a href="https://www.linkedin.com/in/seanknapp/?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">LinkedIn</a></li> <li><a href="https://twitter.com/seanknapp?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">@seanknapp</a> on Twitter</li> </ul> <h2>Picks</h2> <ul> <li>Tobias <ul> <li><a href="https://www.delverlab.com/?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">Delver Lens</a> app for scanning <a href="https://magic.wizards.com/en?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">Magic: The Gathering</a> cards</li> </ul> </li> <li>Sean <ul> <li><a href="https://typer.tiangolo.com/?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">Typer</a></li> <li><a href="https://duckdb.org/?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">DuckDB</a></li> <li><a href="https://amzn.to/3qAacCe?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">Amp It Up</a> book (affiliate link)</li> </ul> </li> </ul> <h2>Closing Announcements</h2> <ul> <li>Thank you for listening! Don&#8217;t forget to check out our other shows. The <a href="https://www.dataengineeringpodcast.com?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">Data Engineering Podcast</a> covers the latest on modern data management. The <a href="https://www.themachinelearningpodcast.com?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">Machine Learning Podcast</a> helps you go from idea to production with machine learning.</li> <li>Visit the <a href="https://www.pythonpodcast.com?utm_source=rss&amp;utm_medium=rss">site</a> to subscribe to the show, sign up for the mailing list, and read the show notes.</li> <li>If you&#8217;ve learned something or tried out a project from the show then tell us about it! Email <a href="mailto:hosts@podcastinit.com">hosts@podcastinit.com</a>) with your story.</li> <li>To help other people find the show please leave a review on <a href="https://itunes.apple.com/us/podcast/podcast.-init/id981834425?mt=2&amp;uo=6&amp;at=&amp;ct=&amp;utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">iTunes</a> and tell your friends and co-workers</li> </ul> <h2>Links</h2> <ul> <li><a href="https://www.ascend.io/?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">Ascend</a> <ul> <li><a href="https://www.dataengineeringpodcast.com/ascend-data-automation-episode-320/?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">Data Engineering Podcast Episode</a></li> </ul> </li> <li><a href="https://www.perl.org/?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">Perl</a></li> <li><a href="https://en.wikipedia.org/wiki/Sawzall_(programming_language)?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">Google Sawzall</a></li> <li><a href="https://en.wikipedia.org/wiki/Technical_debt?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">Technical Debt</a></li> <li><a href="https://www.ruby-lang.org/en/?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">Ruby</a></li> <li><a href="https://grpc.io/about/?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">gRPC</a></li> <li><a href="https://golang.org/?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">Go Language</a></li> <li><a href="https://en.wikipedia.org/wiki/Java_(programming_language)?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">Java</a></li> <li><a href="https://spark.apache.org/docs/latest/api/python/?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">PySpark</a></li> <li><a href="https://arrow.apache.org/?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">Apache Arrow</a></li> <li><a href="https://thrift.apache.org/?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">Thrift</a></li> <li><a href="https://en.wikipedia.org/wiki/SQL?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">SQL</a></li> <li><a href="https://www.scala-lang.org/?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">Scala</a></li> <li><a href="https://www.snowflake.com/en/?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">Snowflake</a> runtime for Python <a href="https://docs.snowflake.com/en/developer-guide/snowpark/index.html?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">Snowpark</a></li> <li><a href="https://typer.tiangolo.com/?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">Typer</a> CLI framework</li> <li><a href="https://pydantic-docs.helpmanual.io/?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">Pydantic</a> <ul> <li><a href="https://www.pythonpodcast.com/pydantic-data-validation-episode-263/?utm_source=rss&amp;utm_medium=rss">Podcast Episode</a></li> </ul> </li> <li><a href="https://www.pulumi.com/?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">Pulumi</a> <ul> <li><a href="https://www.pythonpodcast.com/pulumi-infrastructure-as-code-episode-261/?utm_source=rss&amp;utm_medium=rss">Podcast Episode</a></li> </ul> </li> <li><a href="https://pyinfra.com/?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">PyInfra</a> <ul> <li><a href="https://www.pythonpodcast.com/pyinfra-configuration-management-episode-270/?utm_source=rss&amp;utm_medium=rss">Podcast Episode</a></li> </ul> </li> <li><a href="https://www.packer.io/?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">Packer</a></li> <li><a href="https://plotly.com/dash/?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">Plot.ly Dash</a></li> <li><a href="https://duckdb.org/?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">DuckDB</a></li> </ul> <p>The intro and outro music is from Requiem for a Fish <a href="http://freemusicarchive.org/music/The_Freak_Fandango_Orchestra/?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">The Freak Fandango Orchestra</a> / <a href="http://creativecommons.org/licenses/by-sa/3.0/?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">CC BY-SA</a></p> </div> <img alt="" height="0" src="https://analytics.boundlessnotions.com/piwik.php?idsite=1&amp;rec=1&amp;url=https%3A%2F%2Fwww.pythonpodcast.com%2Fascend-python-standardization-episode-377%2F&amp;action_name=Standardizing+On+Python+For+All+Software+Projects+At+Ascend.io+-+Episode+377&amp;urlref=https%3A%2F%2Fwww.pythonpodcast.com%2Ffeed%2F&amp;utm_source=rss&amp;utm_medium=rss" style="border: 0; width: 0; height: 0;" width="0" />