Recent Rotations

In Which an English Major Interns in Tech

Over the course of the past few months, I’ve had the pleasure of interning at Rotational Labs as a technical writer. I’m excited to share a little bit about my experience and provide some insight from the perspective of someone who is entering the world of distributed systems for the first time.

Read more

Effective Programmers Read Code

As programmers, we tend think of ourselves as authors of code, but our daily engineering practice probably requires us to spend more time reading code than writing it. Perhaps this is even a source of stress for you. Changing your mindset to think of yourself as an avid code reader may not only alleviate this anxiety, but also make you a more effective programmer, capable of architecting complex mental maps of code, a technique I refer to as “building the glass castle”.

Read more

Transparently Mocking gRPC Services

gRPC is an effective way of implementing service-to-service APIs. However, there are limited tools available for mocking and testing gRPC services out of the box. One option is to set up a live test server, although this comes with its own challenges and costs. In this blog post we will demonstrate a more lightweight solution using the bufconn package and a hand-built mock. Don’t worry, this is easier than it seems!

Read more

6 Things You Didn't Realize about Crypto

As a distributed systems company, we’ve had the privilege of speaking with dozens of vendors building crypto-adjacent solutions over the past few years. We’ve learned a lot along the way, especially about some of the key misconceptions that continue to challenge builders, users, investors, and other crypto stakeholders.

Read more

Marshaling Go Enums to and from JSON

Customizing JSON serialization for your data types seems relatively straightforward on the surface, but it’s easy to get turned around in receiver, value, pointer, and indirection confusion. Many of the patterns and rules-of-thumb you use in your normal Go code can lead you astray. In this post, we’ll illustrate exactly how and why to handle these edge cases.

Read more

Achieving Total Ordering With CRDTs

Conflict-free replicated data types (or “CRDTs”) are inspiring the creation of more collaborative applications and improving the experience of users of distributed systems. In this post, we will explore how these data structures can be used to achieve a consistent, total ordering of events across many peers.

Read more

Getting Started With Tmux

If you’re working in distributed systems, having a good terminal setup is pretty important! On MacOS iTerm2 is a popular choice. It has tabs, autocomplete, a built-in password manager and a fantastic screen splitting feature. If however you’re like me and aren’t using a Mac it can be difficult to find a replacement that fits your needs. Tmux is here to help!

Read more

Data Curation: A Whale of a Problem

Once you become an AI/ML practitioner, you quickly realize that the machine learning work is often the least challenging step in the pipeline. So what’s still really, really hard? Getting good data! In this post, we’ll explore why that is and introduce a new open source tool for data curation, Baleen.

Read more

Translation Monitoring for I18n Projects

Developing applications for global users usually requires an internationalization (i18n) process that translates contents or user messages into different languages. Given how manual these process tend to be, the more we can automate the better – for our sanity, for our wallets, and for our users. That’s where Rumi comes in!

Read more

Fake It When You Make It: Creating Mocks in Go

In the age of microservices and containerized applications, software is less monolithic and more interdependent. How do we write tests which account for this new reality? One common strategy is to create mocks for services. In this post, we’ll explore some of the challenges with testing in Go and dive into some concrete examples where creating mocks can help alleviate these problems.

Read more

Predicting Star Ratings: Sentiment Analysis Built on MongoDB

If you want to build a robust machine learning model, the most important ingredient is data – but keep in mind that tuning your model will rely on devising a systematic way to store and query that data! In this post, we explore a project to understand a large dataset of Amazon reviews and predict start ratings using open source sentiment analyzers and the MongoDB ecosystem.

Read more