
Per Rovegård
- How has factor10 changed the way you think about software?
I have always strived to build high-quality software that meets the users’ expectations. At factor10, we do that, but to know what the expectations are, we want to put early versions of what we build in the hands of the users. factor10 has taught me the importance of releasing small things, possibly a little rough around the edges, to get invaluable feedback on where to go next.
- What’s something about factor10 culture that makes a real difference in your day-to-day?
The company trusts me to manage my work day in the best possible way. When I’m not working on-site at a client or working together with colleagues, I can be flexible with my work hours. For example, I can take a parent-teacher conference in the afternoon, or take my kid to the dentist, and then make up for that time when it suits me.
- What’s the best feedback you’ve received from a client or teammate?
Feedback like “wow, this system is never down” is nice, of course, but the best feedback revolves around the impression I have made on other people. For example, a developer I worked with at a client wrote years later that I really changed their perspective on how to work with Test-Driven Development to build better software.
- If you had to sum up what keeps you here in one sentence, what would it be?
I very much enjoy splitting my time between different clients, and the fact that we do not allocate 100% of our time to client work - there’s room to do other things as well. I think it makes it easier for me to grow in my profession. Sorry, that was more than one sentence...
- Tell us something about a colleague that they’re too humble to say…
Jimmy is very humble and not afraid to admit when there is something he does not know. He creates a climate where it is ok to talk freely and speak your mind. I also believe this is one of the reasons he’s so good at talking to business people.
Skills and interests
PhD in Software Engineering. My dissertation focused on requirements engineering, studied in an extensive collaboration between Blekinge Institute of Technology and the industry.
Worked in the telecommunications industry, focusing on the architecture and development of systems that handle categorization, tracking, and payment of traffic in mobile networks.
Have spoken about Domain-Driven Design and Test-Driven Development at conferences, both international and Swedish.
Represented Blekinge in the Swedish National Championship in Technology in 2001, together with two friends. Came second and won a trip to the United States with a visit to MIT Media Lab.
Active in open source projects mainly with projects related to video surveillance. Contributions focused on processing algorithms and performance optimizations.

Personal Blog Feed
Visit Per's blogDon't write code, generate it
A while back, I got fed up with writing code. Not writing code in general, mind you, but I did face a situation where I needed to write a lot of boilerplate code, and having to ...
Read more at programmaticallyspeaking.comReturn on Investment for Test-Driven Development
I recently came across a thread discussing Test-Driven Development (TDD) on one of the major social networks. The discussion revolved around when to use TDD and when it can be s...
Read more at programmaticallyspeaking.comDiscovering Nim, part 1
For this year’s Advent of Code, I use the programming language Nim. I wrote a little bit about Advent of Code yesterday.
Read more at programmaticallyspeaking.com🎄 Advent of Code 2022, at last! 🎄
The time has come for another December with the alarm clock set earlier than usual!
Read more at programmaticallyspeaking.comA quick look at Cypress component testing
Cypress has recently released support for component testing in their 10.0 release. Let's have a look.
Read more at programmaticallyspeaking.comConsequences of array covariance in C#
In today’s post, I’ll talk about array covariance in C#, how it hid a bug in code that was covered by a passing unit test (*gasp*), and some ideas for how to avoid such bugs.
Read more at programmaticallyspeaking.comTDD and prototyping—a love story?
How can you write tests when you don’t know which code you need to write?
Read more at programmaticallyspeaking.comGit-diffing Excel files, part 2
This post adds some details that are big enough to deserve a separate post. They are: User-level configuration of Excel diffing. How to get an Excel diff from git show.
Read more at programmaticallyspeaking.comNashorn's JSObject in context
The purpose of this article is to explain when the different JSObject methods are called during script execution and in some cases how they should be implemented.
Read more at programmaticallyspeaking.com
The whole team
Andreas Cederström
Get to know Andreas
Suzi Edwards-Alexander
Get to know Suzi
Markus Eliasson
Get to know Markus
Martin Hellspong
Get to know Martin
Cecilia Justad
Get to know Cecilia
Jimmy Nilsson
Get to know Jimmy
Lotta Nilsson
Get to know Lotta
Dino Opijac
Get to know Dino
Daniel Raniz Raneland
Get to know Raniz
Per Rovegård
Get to know Per
Nizar Selander
Get to know Nizar