# process

The guide to making remote work work

Remote work has been a hot topic in the tech community for decades. While in the late 90s and early 2000s, relatively few people were actually doing it and there were quite some limitations to overcome to make it work at all, today in 2020, remote work is well possible in many industries and even the norm for many companies already. And of course, the global pandemic that forced everyone to work from home gave remote work an extra push. In this guide, we will share some techniques to make a remote working model actually work well for everyone and not just something we all have to cope with because an international crisis struck.

Marco Otte-Witte

November 16, 2020

# elixir

Bringing the Matrix Protocol to Elixir

Matrix is an open-source, end-to-end encrypted, real-time, open standard communication protocol designed to protect people's privacy. The technology has applications not only in messaging and Voice over IP (VoIP) but similarly in Internet of Things (IoT), Augmented Reality (AR) and Virtual Reality (VR).

Niklas Long

November 2, 2020

# ember

Testing your Mirage.js setup

Mirage.js is a universal library to mock out HTTP-based APIs. It has proven quite useful to us in several client projects, where it helped us write a lot of acceptance tests in a concise, but flexible manner.

The issue with tools like this is that you are not testing "the real API" though. This is where end-to-end tests are useful, but since those kinds of tests are quite slow and complex it would be quite costly to use them for all the kinds of tests in a modern web application.

One solution to some of the challenges of using a mock API is to test it and make sure it matches what you would expect from your real API. In this blog post we will show you how we started writing tests for our Mirage.js setup and why it might be useful for you too.

Tobias Bieniek

August 28, 2020

# process

The True Cost Of A Quickfix

Picture this, a sprint is underway, development is running smoothly, then QA reports a rather odd bug, you begin to investigate and lo and behold you find the following comment:

// Dear programmer:
// When I wrote this code, only god and I knew how it worked
// Now, only god knows
Patsy Issa

August 3, 2020

# elixir

Writing Rust NIFs for Elixir With Rustler

A Native Implemented Function is implemented in C (or Rust when using Rustler) and can be called from Elixir or Erlang just like any other function. It's the simplest and fastest way to run native code from Erlang but it does come with a caveat: a crash in a NIF can bring down the whole BEAM. This makes Rust a safer option than C for implementing NIFs as its type system and ownership model guarantee memory and thread-safety.

Niklas Long

June 25, 2020

# process

Failing (and winning) at planning software projects

Scoping and planning software projects of any kind is a challenging task that many teams struggle with. The negative consequences of mis-planning are manyfold – teams are unable to give reliable estimates, synchronize dependent activities (e.g. marketing) with the project's progress or maintain a high level of quality that will allow maintaining and evolving an application over the long term. In this post, I will analyse these typical problems in some detail and present techniques to address and overcome them, reducing uncertainty, risk and frustration.

Marco Otte-Witte

June 17, 2020

# pwas

The state of PWA support on mobile and desktop in 2020

Progressive Web Apps have evolved rapidly over the past few years and are now supported better than ever. In the past 2 years, Microsoft and Samsung have joined Google in the quest to actively support and promote PWAs. Since early 2020, Apple seems to have realized that not all apps belong in the App Store. With the release of iOS 13, most basic PWA features are now finally fully supported on iPads and iPhones.

There are still limitations for some operating systems (OS) and browsers, so when you are considering building a PWA it is important to take this in mind. That's why we made this overview.

Arthur Poot

June 10, 2020