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.

Advertisements

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:

2012, how about this year?

2011 has been hectic, to say the least. Full of enriching life-experiences (personal and professional). I had a few goals for the past year: my health, family, profession. Some things worked out quite well, other things…not so well (so what’s new?).

A friend of mine is going on about his big hairy goal. It’s intimidating and inspiring. Here are some things I’m hoping to dive into this coming year:

Not necessarily in that order.