Our guest today, Devon Estes, approached us about the possible opportunity for Elixir to optimize and build out the pandas data analysis and manipulation tool, sharing why he thinks it would be a valuable addition to the Elixir open source ecosystem. But Devon joins us to contribute to our ongoing discussion about performance and training in the Elixir world, sharing about his current work on the beta for Sketch Cloud, his previous Erlang consultancy role at one of the largest banks in Europe, and the massive responsibility he carried while working on the bottom line application. He continues to advise listeners on the considerations for optimizing Erlang performance and solving database-specific problems, and the memory constraints he comes up against in the Sketch Cloud application. Devon talks about Benchee, a benchmarking library created by his friend, and how the two of them have continued to develop this tool, including its performance testing capabilities and how they deconstructed the benchmarking steps to build out the library. He also talks more broadly about the importance of considering the data when distinguishing between facts and opinions in conversations about performance.
Key Points From This Episode:
- What Devon believes would be a valuable addition to the Elixir open source ecosystem.
- Why optimizing and building out the pandas tool will be worth a company’s time and effort.
- Devon’s experience with pandas and Python, and recognizing the opportunity for Elixir.
- Working on the beta for Sketch’s Cloud that will allow real-time collaboration.
- Devon’s consultancy role at Klarna, one of the largest banks in Europe.
- The responsibility involved in working on the bottom-of-the-stack application at Klarna.
- Considerations for optimizing Erlang performance and why you should look at the tail.
- Solving the database performance problems – running queries and searches – at Klarna.
- The unique memory constraints of Sketch Cloud and the problem with receiving large files.
- More about Benchee, a benchmarking library, and all its performance testing capabilities.
- Deciding whether a function is responsible for other things when benchmarking.
- The time Devon spends on optimizing performance and the first two steps in the process.
- The profiling process of determining which function is slow and writing a benchmark for it.
- Distinguish between a fact and an opinion by considering the data (or lack thereof).
- Keeping in mind that truth is time-bound, and it also applies to benchmarking.
- Deconstructing the steps in the process of further developing Benchee.
- How Devon became a maintainer of the Elixir track for Exercism, and what the role involves.
Links Mentioned in Today’s Episode:
Devon Estes — http://www.devonestes.com
Devon Estes on Twitter — https://twitter.com/devoncestes?lang=en
Devon Estes on GitHub — https://github.com/devonestes
pandas — https://pandas.pydata.org
Python — https://www.python.org
Sketch — https://www.sketch.com
Klarna — https://www.klarna.com/international/
Erlang — https://www.erlang.org
PostgreSQL — https://www.postgresql.org
Ruby — https://www.ruby-lang.org/en/
Adopting Elixir — https://www.amazon.com/Adopting-Elixir-Production-Ben-Marx/dp/1680502522
Exercism — https://exercism.io
Benchee — https://github.com/bencheeorg
SmartLogic — https://smartlogic.io/
Elixir — https://elixir-lang.org
Elixir Wizards Podcast — https://podcast.smartlogic.io
What's Inside a Reduction? http://www.devonestes.com/inside-a-reduction