Published Feb 21, 2023

E74: Dev-First Testing with AtomicJar & Testcontainers

Explore the developer-first testing revolution with Sergei Egorov, CEO of AtomicJar, as he delves into Testcontainers' innovative cloud-based tools, the startup's strategic growth leveraging community, and the significance of integrating real dependencies for enhanced testing accuracy.
Episode Highlights
Open Source Startup Podcast logo

Popular Clips

Episode Highlights

  • Cloud Development

    AtomicJar's Testcontainers Cloud leverages cloud resources to enhance local and CI development environments. explains how the platform connects developer machines to the cloud, offering a seamless experience akin to local environments but powered remotely 1. This approach ensures consistency across local and CI environments, with a tiny agent facilitating the connection to cloud resources 2. Egorov highlights the importance of minimizing latency, drawing parallels with cloud gaming, to provide a smooth development experience.

    We try to keep it global, so that everyone has the same experience and get the best of two worlds.

    ---

    This innovative setup allows developers to focus on writing and running tests without the hassle of managing container environments.

       

    Testcontainers

    Testcontainers, an open-source project, simplifies testing by allowing developers to run self-contained tests without additional commands. clarifies that Testcontainers does not mimic databases but uses Docker to start actual instances of technologies like PostgreSQL and Kafka 3. This approach eliminates the need for staging environments, which Egorov finds problematic due to past experiences. The project, originally created by Richard Norris, addresses inconsistencies in testing environments and enhances developer productivity 4.

    No need to run with me, no need to start additional commands, just clone and run.

    ---

    Testcontainers' philosophy focuses on real-world testing scenarios, providing a robust solution for developers.

       

    Kafka Challenges

    Integrating Kafka into Testcontainers presented unique challenges due to its complex protocol. describes the difficulty of running Kafka on random ports, a necessity for avoiding conflicts during testing 5. The solution required deep understanding of both Docker and Kafka's configuration to dynamically update ports. This intricate process underscores the importance of comprehending underlying technologies to provide seamless abstractions for users.

    Knowing how Docker works, you also need to know how all these underlying technologies work.

    ---

    Ultimately, Testcontainers simplifies the user experience by handling these complexities internally, allowing developers to focus on their core tasks.

Related Episodes