Software Engineering Techniques (Beginner Level)

As a user of scientific Python libraries like NumPy, Pandas, and matplotlib it’s worth asking how the maintainers of those libraries manage to keep the codebases running quickly and correctly when there are large codebases, many features, and many contributors. Those developers have to think deliberately about the design of their code; they use a number of techniques to make their lives easier, among them testing, debugging, profiling, and packaging. Exactly as these techniques are useful to library maintainers, they can also be useful to researchers, data scientists, and analysts who are trying keep code fast and correct as it undergoes changes. This tutorial will introduce attendees to deliberate code design, testing using the pytest framework, Python’s debugging tools, profiling code to understand performance, and how to reuse code in multiple places.

 Speaker: Matt Davis, Clover Health
 Speaker: Alyssa Whitwell, Clover Health