Channing realized during his senior year of college that the Economics and Finance degrees he’d just earned didn't match up with what he really wanted to do with his life. So he moved to San Francisco, hope-rich and cash-poor, and began building with Rails. A few years later he fell in love with React and has focused on the…

As one of the "elder statesmen" at MojoTech, I interview a lot of engineers. Over the years, I've come to see this more and more as a discipline in itself. I've found that the craft of conversational interviews, like many inexact sciences, consists of navigating tensions between opposing forces. It's all about finding the right balance. Here are a few…

On paper, MojoTech's resume looks pretty impressive. Since its inception in 2008, MojoTech has launched more than 100 products by partnering with clients to deliver software that solves their most complex business problems. MojoTech was ranked the 42nd fastest growing software company in America by Inc. Magazine, and was listed as one of 2016’s Best Places to Work for…

Elias obtained his CS degree from Grinnell College, a tiny little school in Iowa. He initially intended on majoring in physics but realized that he didn’t find physics jokes funny. In contrast, he took to programmer humor immediately. Elias is passionate about programming language design and theory and wants to explore how engineers can better use programming language concepts…

Andy Davies is a designer from Providence, but got his start in San Francisco, where he built a lot of websites for startups before moving into building systems and identities for foundations and open-source movements. Andy originally studied print design, but annoyed his professors by turning every project into an app or website. In his free time, Andy enjoys drawing…

Writing and maintaining a useful test suite can be difficult. Today I’ll discuss some common causes of bad tests, and how to fix them. Messing with global state Global state is shared by all your tests. Mutating it in one test can lead to spurious successes or failures in other tests. It can lead to different behavior depending on…

You are likely one of the many folks (myself included) who have recently learned to love Elixir. I initially started down the wrong road with Elixir, but I learned a valuable lesson as I corrected course. It takes some adjustment to view the world in terms of a functional language, with lightweight processes, running on the Erlang Virtual Machine. My…

As software applications grow in size and complexity, it becomes even more important to identify and maintain boundaries. One way to set these boundaries is by employing microservices. This approach has its pros and cons, but I’ll leave that discussion for another post. Instead, I’d like to focus on the role of message queues in a microservices architecture.…

Don't let failing APIs get you down. (Zing!) If your software depends on various services, service failures can compromise part of your application or bring your application down entirely. This simple problem gave rise to a powerful software pattern called a circuit breaker. It allows your software to stay up gracefully, even if it depends on something that is experiencing…

Load More