Systems | Development | Analytics | API | Testing

Latest Posts

The State of Elixir HTTP Clients

In today’s post, we’ll look at two Elixir HTTP client libraries: Mint and Finch. Finch is built on top of Mint. We’ll see the benefits offered by this abstraction layer. We’ll also talk about some of the existing HTTP client libraries in the ecosystem and discuss some of the things that make Mint and Finch different. Finally, we’ll put together a quick project that makes use of Finch to put all of our learning into action. Let’s jump right in!

Node.js Resiliency Concepts: The Circuit Breaker

In 2009 Node.js opened up a door for front-end developers to dip their toes into the world of servers without having to leave the comfort of their language. It’s almost effortless to get started with Node. You can basically copy-paste an entire HTTP server into existence and then install an ODM and you’ve got your CRUD app ready to roll! However, if we’ve learned anything from the amazing Spider-Man, it’s that with great power, comes great responsibility.

A Deep Dive Into V8

A majority of front-end developers deal with this buzzword all the time: V8. A big part of its popularity is due to the fact that it led JavaScript to a new level of performance. Yes, V8 is very fast. But, how does it perform its magic and why is it so responsive? The official docs state that “V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++. It is used in Chrome and Node.js, among others”.

Best Practices for Background Jobs in Elixir

Erlang & Elixir are ready for asynchronous work right off the bat. Generally speaking, background job systems aren’t needed as much as in other ecosystems but they still have their place for particular use cases. This post goes through a few best practices I often try to think of in advance when writing background jobs, so that I don’t hit some of the pain points that have hurt me multiple times in the past.

Git is About Communication

An SCM such as Git is more than just a database for source code. It’s not only the thing you need to interact with to get code to production, but also a log of changes on a project. It’s not just the last couple of weeks of commits that are worth looking at. Any commit remains relevant weeks, months and years later. A commit serves multiple purposes. The first one is to explain a change during its review and the second is to explain a change to a future reader.

Using Mnesia in an Elixir Application

In today’s post, we’ll learn about Mnesia, see when you would use such a tool, and take a look at some of the pros and cons of using it. After covering the fundamentals of Mnesia, we’ll dive right into a sample application where we’ll build an Elixir application that uses Mnesia as its database. Let’s jump right in!

JavaScript Growing Pains: From 0 to 13,000 Dependencies

In today’s post, we’re going to demystify how the number of JavaScript dependencies grows while we’re working on a relatively simple project. Should you be worried about the number of dependencies? Keep in mind that this blog post is related to the Ride Down The JavaScript Dependency Hell blog post that was released a while back. We’ll show a “real-world” example of how a project’s dependencies can grow from zero to 13K.