All posts by Marco Otte-Witte

Founder and Managing Director of simplabs

  1. Effective infrastructure for efficient development workflows

    Building software products of any kind is hard enough. Doing so without the support of powerful infrastructure that enables efficient workflows is even harder. Yet, many teams are suffering from the absence of such infrastructure, forcing them into very much inefficient workflows with substantial time and effort going into synchronizing the work of different engineers, tracking down bugs, and getting back to tasks later that were already thought to be complete.

  2. Ember.js in 2021 – a beacon of productivity

    Ember has been around since the early days of the frontend renaissance that already started several years ago by now. It's almost a decade old and dates back well before React, Vue, Svelte and all the others. The framework has never been on the forefront of the frontend hype train but quietly enabled teams to ship steadily and sustainably – among them Qonto and CLARK, two of Europe's Top 50 FinTechs in 2020 (more on their success with Ember below).

  3. 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.

  4. 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.

  5. How to over-engineer a static page

    When we set out to rebuild our own website simplabs.com in 2019, we wanted to use that project as an opportunity to ignore all economic considerations (and reason you could say) and dive deep into what was technically possible. Doing so would allow us to build something that was super customized for our specific needs and highly optimized for performance. We ended up spending a lot of time and effort but are quite pleased with the result.

  6. SPAs, PWAs and SSR

    Single Page Apps, Progressive Web Apps and classic Server side rendered websites are often seen as orthogonal approaches to building web apps where only one is best suited for a particular project and one has to make a choice to go with one of them. In this post we'll explore why that doesn't have to be the case, since all 3 approaches can actually be combined in order to achieve the best result.

  7. From SPA to PWA

    Progressive Web Apps are the next level of browser based applications. While Single Page Apps (SPAs) have already meant a giant leap forward, PWAs are taking things even one step further. They offer a rich user experience that parallels what users know and expect from native apps and combine that with the benefits that browser based applications provide. In this post, we'll look at how to turn a Single Page App into a Progressive Web App.

  8. Building a PWA with Glimmer.js

    We recently set out to build a progressive web app with Glimmer.js. Instead of building it with Ember.js, which is our standard framework of choice, we wanted to see how suitable for prime-time Glimmer.js is and what we'd be able to accomplish with it. To put it short, we are really happy with how building the app went and the result that we were able to achieve. In this series of posts, we will give some insights into how we built the app, why we made particular decisions and what the result looks like.

  9. On Computed Properties vs. Helpers

    Ember's computed properties are a great mechanism for encapsulating reactive logic and implementing consistent, auto-updating UIs. Since the past year or so though, there seems to be an increasing tendency in the community to use template helpers as the main tool for expressing this kind of logic right in the templates. Following up on a talk I gave at last year's EmberFest, I'll elaborate in this post why I think that is often not the best choice and what the drawbacks are.

  10. Class based Computed Properties

    We think Computed Properties in Ember are awesome. We also think they are in many cases the better alternative to template helpers as they allow for cleaner separation of where a computation is triggered and the implementation of that computation. In some cases though it is currently very hard to do things in Computed Properties (and Computed Property macros in particular) that are possible with Class based helpers. With the introduction of Class based Computed Properties we're aiming at making these scenarios solvable easily.

  11. Out-of-the-box FastBoot support in Ember Simple Auth

    Ever since FastBoot was first announced at EmberConf 2015 it was clear to us that we wanted to have out-of-the-box support for it in Ember Simple Auth. Our goal was to make sure that Ember Simple Auth did not keep anyone from adopting FastBoot and adopting FastBoot would not result in people having to figure out their own authentication and authorization solutions. Today we're happy to announce the availability of Ember Simple Auth 1.2.0-beta.1, the first release with out-of-the-box support for FastBoot.

  12. Using better element selectors in Ember.js tests

    We just released ember-test-selectors, an Ember Addon that enables better element selectors in Ember.js tests. It removes all data attributes starting with data-test- from the application's templates in the production environment so that these attributes can be used to select elements with in acceptance and integration tests without polluting the markup that is delivered to the end user.