Alex Jacobs

Backend Engineering | Docker | AWS | Bioinformatics | Developer Infrastructure | CI/CD

Mastering Integration Testing with FastAPI

Follow along with all the code here Introduction If you’re a backend developer working with FastAPI, you already know the framework excels at simplifying API development with features like async support and automated Swagger docs. However, when it comes to integration testing–particularly mocking external services like MongoDB, AWS S3, and third-party APIs—the waters can get murky. This post is your guide to navigating these complexities. This isn’t a one-stop-shop for all things testing; the focus is squarely on integration testing within FastAPI....

17 min · 3618 words · Alex Jacobs

Effective Error Handling

All too frequently, we, as developers, are faced with the task of handling errors. By developing effective messaging for our users, we can make their experience with our software much more pleasant. While the task of crafting these messages can seem mundane, it’s a necessary step in making our software more user-friendly and intuitive. And yet, all too frequently, end users will go out of their way to completely avoid even attempting to read the error message....

December 14, 2022 · 5 min · 915 words · Alex Jacobs

Running Jupyter lab behind NGINX--Part 2

If you haven’t read part 1, you may want to start there. In the last post, we left off with a working reverse proxy, but we couldn’t access Jupyter lab due to its auth enforcement. Because of how we’re setting this up, we will be handling authentication upstream of Jupyter Lab, and we don’t want to rely on them for handling authentication. What we are going to do here is generally considered “unsafe....

June 15, 2022 · 4 min · 688 words · Alex Jacobs

Running Jupyter lab behind NGINX--Part 1

Background Jupyter Lab is an open source web-based IDE for notebooks with Python and R support, geared towards the data science crowd. It’s a powerful, mature application with a potentially complex configuration. Our requirement was to deliver Jupyter Lab to users so that each user would have their own isolated “instance .” There is an off-the-shelf solution for this called Jupyter Hub that probably makes the most sense for your organization....

May 8, 2022 · 3 min · 592 words · Alex Jacobs

Splitting SRA into FASTQ with SRAToolkit, Python, and Docker

Background SRA (Sequence Read Archive) is a file format used by NCBI, EBI, etc., for storing genomic read data. It works with multiple file types (BAM, HDF5, FASTQ). In our case, we’re going to be focusing on FASTQ. The first step of many pipelines is converting SRA into FASTQ, which will be our focus in this post. If you’re working as an individual or a scientist, you probably want to go ahead and use SRA Toolkit to download your files....

April 3, 2022 · 7 min · 1373 words · Alex Jacobs