Skip to main content

Writing messages for unexpected downtime


Total service stops are rare but happen to every system at some point – it’s just not possible to control every variable in the universe. What is possible though, is handling such situations in ways that leave a somewhat better impression by responding to the rapid change in information needs. That’s why we use failures not only to develop even better systems but also to improve our communication.

Read Writing messages for unexpected downtime →

Shipshape Shipping Guide

Shipping Guide is one of our oldest applications. As part of a large internal project we knew we were going to do quite a few changes to it. The project was born on the 26th of September 2008. Since then 91 people have worked on the project, contributing 17863 commits to the master branch. Our team did not have much experience with the project and making large changes across the codebase seemed like a daunting task.

Read Shipshape Shipping Guide →

Configuring jenv the right way

Since many of our applications are continuously being upgraded to latest java versions, most of us may have already installed jenv command line tool. But, does it really work the way it should for you? Or, are you struggling to understand or configure it the right way? Background jenv is a cool tool that helps you switch between different java versions in your development machine.

Read Configuring jenv the right way →

DIY UI Tips for Backend Developers

Do you ever find yourself having to build user interfaces for web applications without an interaction designer or UI developer in sight? What on earth is a fullstack-ish backender supposed to do?! The UXers are off gathering insights, graphic designers are in a different corporate silo all together, the nearest frontender is busy. Fear not! While design work sounds like a scary slippery slope away from coding, there is great pleasure in actually coding the right stuff.

Read DIY UI Tips for Backend Developers →

Our journey through java9 module hell… and then to java10

We run many micro-services based on java, j2ee technologies and usually try to keep up with all the updates coming in on a day to day basis in the technologies so when java9 was announced we thought that “Hmmm… that’s new”. It was the first java release that wasn’t backward compatible, came with a declaration that it will surely break all our environments and would need time and effort to solve it.

Read Our journey through java9 module hell… and then to java10 →

The Websocket Bug Hunt

The following writeup is the story of a fairly exhausting search for a bug in Mybring, that we encountered because we thought that the now 7 year old websocket standard would be safe to use. It’s a fairly comprehensive writeup that covers a few hectic days in January where we got familiar with the RFC, how the http-websocket upgrade handshake works, driving to a customer in order to debug the problem on-site with wireshark and lots of trial and error.

Read The Websocket Bug Hunt →

The Web Team in Numbers

Sometimes it’s fun to take a break and look back at what’s happened in the past and do a little reflection. Or maybe we just think numbers are fun – there’s probably a reason why we like computers! So today we have sat down and looked at the recent past to try to find some interesting numbers. Everyone knows there’s strength in numbers, so here we go!

Read The Web Team in Numbers →

Forecasted alerts with Grafana and InfluxDB

There’s a saying that goes “an ounce of prevention is worth a pound of cure”. As a software developer, I definitely prefer being able to anticipate and prevent problems rather than stressfully fixing broken systems. Frequently when something in a computer goes haywire, it’s because it ran out of something important, like database connections, disk space, inodes, file descriptors or kernel magicians.

Read Forecasted alerts with Grafana and InfluxDB →

Is it okay to…? Yes! It’s okay to…

We really like an idea that the team at Government Digital Service (GDS) wrote about last year in a blogpost: It’s ok to say what’s ok. 🙌 Maybe we just need to say what’s ok. To be explicit about the things that those of us who have been here a few years take for granted. So our team wrote a list of things it’s ok to do at GDS.

Read Is it okay to…? Yes! It’s okay to… →

Making helpful user interfaces for scripts

There is a lot of value in automation and providing software developers with scripts that can perform common tasks. To get good adoption and awareness of a suite of scripts, it is very important to provide a nice user experience. Just like in frontend, there’s a lot to be said for making things consistent. Little things, like using flags in a manner that is consistent with other command line interfaces matter quite a lot.

Read Making helpful user interfaces for scripts →

Can we open source this?

Can a design system for the Norwegian postal service be open source? Can the GitHub repo be public? YES! We think that would be awesome. But we work in a large organisation… And while rogue dev teams may be happy to open source — it’s understandable if other departments around us are not equally familiar with the idea. So we wrote up the benefits, showed that we have considered risks and concerns — and found cool examples of other companies doing the same as we want to do.

Read Can we open source this? →

Connection Pooling with c3p0

We at Bring have been using c3p0 in several of our applications, over the past years. Recently we faced an issue where we started to see lots of CannotGetJdbcConnectionException errors. The underlying database is MySQL for reference. We thought that the issues were related to a migration to a new data center at first, but we ruled that out once we checked out that there were not enough slow queries to back this claim.

Read Connection Pooling with c3p0 →