Sharing Our Passion for Technology
& continuous learning
  • Woman writing on notebook and looking at charts on cell phone

    Glue ETL Development with Dev Endpoint Notebooks

    In this post I will go through a simple tutorial for using Dev Endpoints and notebooks for Glue ETL development. This tutorial will be intentionally basic, so that you can get an understanding of how dev endpoint notebooks can be useful for your ETL development without getting bogged down in...
  • testing icon

    A Test-driven Intro to Java Reactor

    A year ago I joined a team which made heavy use of the Java Reactor library for their pub-sub system. Reactor is a library for high-performance, parallel programming using a functional API. The code tends to look like this: Flux.from(p) .ofType(SubscribeToShardEvent.class) .flatMapIterable(SubscribeToShardEvent::records) .limitRate(1000) .buffer(25) .subscribe(e -> System.out.println("Record batch = "...
  • Two people discussing tests in front of a computer

    How My Team Uses Cypress for End-to-End Testing

    This blog is part of a series on end-to-end (E2E) testing in Cypress. In this post, we will take a look at how our team uses Cypress to benefit our workflow and increase the safety in which we deploy new features. This information is available in this presentation I give...
  • A person working on some sweet tests on their computer

    Cypress for End-to-End Testing: An Overview of the Platform and Its Uses

    This blog is part of a series on end-to-end (E2E) testing in Cypress. In this post, we will take a look at what Cypress is, why our team chose it, and things you may want to consider when evaluating it for your own projects. Future posts will expound upon how...
  • Colored pipes in an industrial setting

    Event Sourcing

    Software development teams are responsible for building a wide variety of software to solve a wide variety of problems. Many of these software development projects implement business flows that have defined activities completed by specific parties. An architecture that implements these flows by mixing validation logic with record updates becomes...
  • Man on computer with headset

    Tips and Tech to Thrive While Pairing Remotely

    Throughout my eight years at Source Allies, I have had the opportunity to work on several teams at our various projects. Most of the time our teams work in open collaborative spaces, where pair programming is done side-by-side. However, there are occasions where I have paired with developers remotely. As...
  • Close-up of hands typing on a laptop

    Breathing New Life into an Old Laptop with RancherOS

    While taking stock of my electronics graveyard I came across an old laptop. I had been looking for a reason to play with Docker containers and this laptop provided me an opportunity to do so. Since it was only going to be running Docker containers, I wanted a no-frills setup....
  • Teammates sitting together and looking at code

    Node Reference - Conclusion

    Prerequisites This article builds on the prior article: The “Join” Problem. Conclusion In this series, we walked the reader through the considerations of building a production-ready microservice. More important than the tools we used (e.x. NodeJS, AWS) were the questions we asked. You may choose different tools and libraries for...
  • Teammates sitting together and looking at code

    Node Reference - Change Events

    The “Join” Problem Modern applications no longer exist in a silo. They need to integrate with other systems within the organization. In a microservice architecture, this is even more valid since very few business processes can be completed by involving only one service. Let us suppose that our product service...
  • Teammates sitting together and looking at code

    Node Reference - Delete

    Prerequisites This article builds on the prior article: Node Reference - History. Deleting Humans make mistakes. Your users are humans, and sometimes they will create a product by mistake and will need to delete it. For that scenario, we need a DELETE REST endpoint. There are two main classes of...