Transitions pt.2 – a new beginning

This post is signalling an end to my time at Norwegian Broadcasting Corporation (NRK), even though it’s just a few months since I announced my career-move there. Before I go on about whats happening, I’d like to emphasise that NRK is a great place to be. I’ve met a lot of talented people and been exposed to a company culture that oozes of professionalism and encourages peoples creativity to flow.

That said, I’ve been given the opportunity to release the entrepreneur in me, and be part of creating something. During my time at Komplett, we created Bifrost, an open-sourced platform for application development. A bi-product of our efforts was a mindset towards application development and collaboration between team members that we found to be unique. Which is what has lead myself and Einar Ingebrigtsen to establish dolittle as a knowledge company.

We believe that writing code isn’t meant to be hard. It’s all about asking the right questions and getting the right answers in any given problem-domain. We believe Bifrost is part of the solution, allowing development teams to focus on the right problem; namely creating software that solves the needs of the end-user and the business.

Needless to say I’m excited about things moving forward, we see great potential in what we’re focusing on, and we’ll be keeping things up to date on the official dolittle blog.

I’d like to thank the people at NRK for the opportunity, and I hope to meet them again some time in the future.


As some of you may know, I’ve left the domain of scandinavian e-commerce and am no longer part of the web-team at Komplett Group.

My time at Komplett has been quite a ride; I’ve met some extremely skilled people, and worked on some really exciting stuff. Contrary to what some people might believe, the web-team is small and covers a lot of area. There was a lot of responsibilty and pressure, but also a lot of fun to be had. This has also allowed me to delve into several areas of software development that I couldn’t have on a larger team.

I now find myself neck deep within media / brodcasting production. To be more clear, I’m now part of the department for New Media at the Norwegian Broadcasting Corporation (NRK Nye Medier). Quite a large leap from e-commerce, but at the end of the day it’s all about delivering business value to the customer(s), and that’s something I’m getting the hang of :).

I’ve now started my commute to Oslo on a daily basis, and the team has welcomed me with open arms. They all seem thrilled to have me on board. It’s a good feeling, and I hope to find my role here, as I did at Komplett.

I like to think that it’s at Komplett I “found myself” as a developer. I’m looking forward to continue building upon my skills and continue my journey at NRK… :)

NDC 2012 : Impressions

Norwegian Developers Conference (NDC) is a the largest conference in Norway targeting the .NET community. It’s a 3 day conference with 2 days of workshops beforehand. The speaker line-up was also awesome, and the topics offer something for everyone.

I’ve had the opportunity of attending the conference and have had 3 intense days of learning, networking and eating… yea, lots of food.


This has been the first time I’ve attended a large conference of this kind, and I didn’t really know what to expect. I hoped to be wow’d by speakers and technology. Mainly I hoped to gain some insight and inspiration…. I had no idea!

I had initially thought to summarize each talk I attended, but quickly threw away that idea. So this is a write-up of the impressions I’m left with after NDC 2012. Hope you enjoy it.

What an opening

Aral Balkan pushed the boundaries this year and opened by performing the song “Pity the Child” from the musical Chess. This took us all by surprise and I was in awe; it was an awesome experience.

He moved on to emphasize the importance of our roles as developers. We are all designers of software experiences. Emphasizing the emotional reaction people have consciously and sub-consciously to the using our software. He moved on to describe the process involved in product design, and that this has to come from the top-down. It has to be something ingrained throughout the company itself, and effects ALL business decisions. Design and experience is NOT about pushing pixels and changing a color theme on your home page, it’s about commitment to your customers and a shared vision.

Truly inspiring, if you’re open to it… watch it here.

Decisions, Decisions

Dan North had a really challenging session on how software architecture is based on trade-offs. There are no absolute best practices when designing software, but there is a need to make conscious decisions based on the real needs.

He debated certain topics with the audience, or rather, he debated with himself, and the bored norwegian audience just sat and hoped someone else answered :)

Even though what Dan said isn’t new, it put things into perspective. He made some good arguments around Test-driven vs Test-first vs Test after.

The big take-away here for me was the concept of product half-time. How implementing features without tests / tests after could add more value. This, however, requires the developers to have an extremely solid grasp of how to write software, and structure the code in decent way. It doesn’t give you the right to write crappy code.

Code Ninjas

I went to the talk from Hadi Hariri named “Developers: The Prima Donnas of the 21st Century“, expecting a face-slap or a wake-up call of some kind, and behold…. *SLAP*!

Hadi had an awesome rant on what the software industry has become, and how developers put themselves on a pedestal above others. How we don’t know how to engage in customer communication, and expect people to understand our technical jargon.

At the end of the day, we don’t make software to have flame-wars on what technology to use, but to delivery good, working software to the end-user.

Also, I sat on the front row, and was addressed to as an Australian (something to do with whom I was sitting between).

Loved this session and recommend it to EVERYONE.


Billy Hollis had a couple of great talks on user experience. The first was about thinking outside the box. The time for features only is gone. Now the users expect features, but leveraged in an extremely easy to use way.
Billy took what Aral mentioned in his keynote and dove into theory and gave suggestions about how to take this back into the wild.

In his storyboarding talk, Billy emphasized the need to have lots of ideas or prototypes, and to not become attached to them. He showed some techniques and alternatives, and strongly suggested using paper / pencils for your creativity sessions. This reminded me so much about John Cleese’s talk about creativity.

He also made me promise to try storyboarding at home… I’ll save that for another blog post :)


To me, this conference has confirmed a lot of things I’ve been thinking and doing. It’s reinforced the fact that we, as developers, have to think about the user, even when “the business” gives us a defined user story / layout. It’s our job to say ‘no’, when people force us to remake the same old crap.

I’d also like to say that there’s a ton of other talks I loved from Robert C. Martin, Venkat Subramaniam, Jimmy Bogard, Damian Edwards… . Not to mentioned those talks I have yet to see.

I’m inspired, I’m eager and I’m ready to focus on what’s important.

NDC 2012 Giveaway @ NNUG Vestfold Meetup 9. May

That’s right! Thanks to the folks at Programutvikling, we’re going to be giving away a ticket to NDC 2012 at the next NNUG Vestfold meetup!

There’s gonna be frontend focus this meeting. I’ll be warming up the crowd with a session on “Forseti Driven Development”, and the main show is gonna be Marius Gundersen presenting “Building a 3D engine in Html5″.

More info on the talks, and the speakers on the meetup page.

Looking forward to it :)

Spread the word!

Sugarcoting your frontend, one ViewModel at a time..

Yesterday, Einar Ingebrigtsen and I had a co-talk at NNUG Vestfold, titled:  “Sugarcoating your front-end, one ViewModel at a time“.

We had a great turn-up and a good Q&A thereafter. I think we got a few people to star thinking slightly differently in regards to how to treat web-pages more like web-apps. We pushed hard on the MVVM pattern and how that conceptually fits the way web, and web-apps work. KnockoutJS certainly is a framework I’m starting to really love, and I’m sure there are other out there ready for it. We also emphasized the need for well-tested JavaScript testing of your code, and everything that’s involved. JavaScript is still code! :)

It’s really a jungle out there, and there’s no lack of frameworks and solutions. There is one thing for sure though, and this is valid for all frameworks, they all focus on enabling Single Page Applications, and users are starting to expect that exact functionality.

Checkout the slides on slideshare. Please don’t hesitate to drop off a comment :)

NNUG Vestfold Meetup 29. Feburary

NNUG Vestfold Meetup 29. Feburary

Announcing NNUG Vestfold’s first meetup of 2012.

I’m pleased to get started with the first NNUG Vestfold session this year. Last year didn’t really turn out the way I expected, with a total of 1 meeting!

In an ongoing effort to push my comfort zone, I’ve decided to hold a session for this meeting.

After talking to a colleague of mine, my small talk suddenly became a 2-man-show!

Without further ado, I’d like to welcome you to my first talk: “Sugarcoating your frontend one ViewModel at a time” a co-session with Einar Ingebrigtsen.

Sign up here!

Bifrost – A little background

In this past year at work, we’ve been in the process of developing a new platform from the bottom up with new functionality. One of the goals was to move away from an old unmaintainable solution to a new maintainable solution based on expected coding standards, and of course to meet the business’ needs about scalability and rapid feature development. With an overloaded domain, responsibilities were mingling with each other and business rules and validation was all over the place. Based on our needs, we felt it was that CQRS was the way to go. CQRS has been the talk in the DDD community for a while, and this pattern was something we could really relate to. In comes Bifrost!

Originally a helper-project for Einar Ingebrigtsen, we decided to leverage and contribute to Bifrost as an open sourced platform for web-app development. At it’s very heart Bifrost adheres to CQRS and is taking it “to the next level” by delivering a platform to deliver rich web applications.

Basic archtecture with an MVC application frontend - from Bifrost docs

Because of the way Bifrost as a platform was conceived, it has evolved in parallel with the product we are building. As project needs arise, amendments are made in Bifrost. This enables steady, controlled development on Bifrost without introducing features (too far) ahead of time. Though this is a good way of driving the project forward, it isn’t building out all the aspects of Bifrost. On the plus side, the platform is well-tested, thought through, and works well (with some known limitations and needed improvements).

On the web aspect of things Bifrost supports ASP.NET MVC and works well with the framework. Validation and binding of commands is something that just works, and I’m sure it’s something that people will appreciate. The next natural step is to actually not depend on MVC, and build out the client-side aspect of the platform. For this Knockoutjs comes in handy.

Knockoutjs is a JavaScript library that adheres to the MVVM pattern, which can be traced back to WPF and Silverlight. This allows the view (html) and viewModel (data, behaviour, commands) to be separate, sharable pieces of code. What this gives us is a clear way to bind our Query data from the server to a UI, and allow commands to be fired back into the system.

Bifrost has its implementation of CQRS quite well done already, and with it you can go in and whip up a great app with what’s there now, but you’re going to get little, to no help in regards to client-side features. There’s a clear focus on developing for the client-side aspect of things as well, which will enable Bifrost as an application platform. It’s a great convention-based platform that can solve many business needs, and its future looks bright :)

I hope to write more about the different aspects of Bifrost in the coming weeks. Until then, here’s some further reading: