Blog

Engineering & UX Blog

Telia Design System: Why and how are we building one?

Posted 2021-06-26T00:00:00.000Z — 3 min read
You may have heard, last year the global Design System team was established, and we’ve been building something that all countries and teams could benefit from. We call it Voca, and we’d like to tell you a bit more about it. TL; DR Why to use Voca…

Get Shit Done days: How to get time for maintenance

Posted 2021-06-18T00:00:00.000Z — 3 min read
Sometimes it is hard to be able to do things that we know are nescessary in development. There could be multiple reasons for that. Productivitiy blockers are one of them. Another is plain old time. In this post, I will describe one of the ways we use…

Productivity killers in enterprise programming - and how to overcome them

Posted 2021-06-10T00:00:00.000Z — 19 min read
This article is about "the death [of productivity] by thousand cuts" - about the many obstacles that make enterprise development unnecessarily slow, costly, and painful. And it is about the "invisible cost" of ignoring them. I look at the top…

My first months in Telia

Posted 2021-04-26 — 2 min read
Let’s be honest, starting a new job is challenging! New people, new culture, and new ways of working. I joined Telia in January this year and must admit I had my doubts about working for such a large company. Turns out, I love my job and Telia really…

We exchanged Babel&TSC for SWC and it was worth it!

Posted 2021-03-29 — 4 min read
After reading about SWC, and how it is supposed to be both a transpiler á la babel and a typescript compiler, while doing both blazingly fast, we wanted to check if it could improve our build times. And it really did! The details of our setup will…

Micro frontends with Webpack Module Federation

Posted 2021-03-22 — 9 min read
Micro frontends with Module Federation This article explains how our team has implemented a micro frontend architecture using Webpack Module Federation. If you're interested in understanding why we decided to use a micro frontend approach read THIS…

Why We Chose Micro Frontends

Posted 2021-03-22 — 6 min read
Our task was to merge two existing apps, and in the same process, merge two existing teams. The existing apps were MinBedrift – an enterprise mobile self-service application – and MinPortal – an enterprise datacom self-service application. Both were…

My first month of Rust

Posted 2020-01-30 — 8 min read
A month ago I have started learning Rust and would like to share my impressions, the good things I have appreciated, and the things I have struggled with. Why Rust, do you ask? Primarily to challenge myself, to leave the land of managed runtimes…

AWS Fargate: Troubleshooting the dreaded 'service .. is unhealthy'

Posted 2019-12-06 — 3 min read
So you have just deployed your Docker container to AWS Fargate but it keeps on restarting with the event "service XYZ (..) is unhealthy .." and you have no idea why. I have spent many bloody hours here and will gladly share my insights with you. The…

How Clojure helped us recover from bad data

Posted 2019-12-02 — 5 min read
On a calm autumn morning we got a desperate call from our customer service. Our biggest customer had just started a pilot of our "expense share" functionality - and was missing half of their data. And they absolutely needed them for sending salaries…

Choose Clojure not because it is easy but because it is "weird"

Posted 2019-11-11 — 2 min read
When I was deciding what new language to learn, I could have picked the quite familiar Scala but chose instead Clojure - not despite of its lack of object-orientation, its immutable data structures, its too many parentheses on a single line - but…

Testing HTTP errors and retrial

Posted 2019-09-20 — 1 min read
If you call a remote REST service, you perhaps want to retry automatically upon recoverable errors. Make sure to test that code - so that you won't end up surprised that it is completely broken, as I was :-) What follows is a few simple tips for…

Clojure vs Java: Troubleshooting an application in production

Posted 2019-03-07 — 6 min read
I have just gone through the painful experience of troubleshooting a remote Java webapp in a production-like environment and longed for Clojure's explore-and-edit-running-app REPL. I want to demonstrate and contrast the tools the two languages offer…

Cross Platform Builds & its merrits

Posted 2019-02-19 — 4 min read
We've recently been developing a cross platform application. In its core, it is not cross-platform as in mobile versus desktop, but moreso one language intertwined with another. Let's walk through our challenges and discoveries when building this…

Java/Spring App Troubleshooting on Steroids with Clojure REPL

Posted 2019-02-01 — 7 min read
We have a Java/Groovy Spring Boot webapp, mainly running a bunch of batch jobs fetching, transforming and combining data. It is challenging to troubleshoot production issues because some production APIs are only accessible from the production servers…