What I do
I am first and foremost a developer. For me, software development is about solving problems in a creative way, which is awesome!
It's like playing with lego, without the risk of stepping on one.
The user perspective and the business side of software development is something that I find interesting.
We shouldn't forget that the end goal of all software is to solve human problems.
I've been often described as a good teacher. Which is quite useful when trying to explain software and getting different people to work together.
Co-Founder — Gamesome
Gamesome is a software consultant company with a long term goal to grow into developing our own products.
At Gamesome I use my experience of building products to help other companies to realize their product ideas or to develop existing products in order to solve user pains. When I’m not helping customers I work on our own product ideas or just create some small project in order to learn and develop new skills.
Product manager — Lime Technologies
After working as developer for four years, I got a position as a product manager at Lime. That sounded like fun and I wanted to try it out. One big advantage to going from development to product is that it gave me a huge advantage when communicating with developers and consultants who deliver our products. It was also great when talking to technical customers, partners using our API:s and our tech support. However, It wasn't all good. One of the big challenges for me, was focusing on the "problem space" and not the "solution space", that is something that I have to actively think about.
As a PM I was responsible for the whole user journey. I worked with marketing in order to attract new customers through ads and relevant content. I worked with sales to maximize hit rate and conversion. I built product roadmaps and prioritized tasks together with the dev team. Finally I made sure that the users stayed happy together with customer success and a great support team.
Software developer — Lime Technologies
Lime is the swedish market leader on CRM. They develop, sell, deliver and support their CRM products. This is quite great if you are a developer, because you are always close to the actual user. You direct input from users when developing new features, and quick feedback when something breaks.
I joined Lime when the development department was still quite small so I got a chance to work on all of their three CRM products though me to be versatile and to treat languages and code stacks as means to the end of solving user problems. I never really stopped being a developer during my time at Lime. Even tough my job title had changed, I always seamed to stumble upon occasions where programming was helpful if not necessary.
As the company grew and I gained more experience, I started taking on different formal and informal engineering roles. To state a few examples: I worked as tech lead responsible for technical decisions. I had a brief period as team lead and manager. I filled the role of technical advisor during technical due diligence in the process of company acquisitions. Lastly I had the role of an architect designing how different pieces of software should work together.
BS in Software development — Lund University
After starting a few programs, I finally finished a degree in software development. What's cool about This specific program, is that it was
Programming Tutor — Lund University
During my studies, I worked for Lund university as a tutor, helping other students with programming classes. This was fun and useful because in order to hold a lecture about programming, I had to read up and really try to understand the concepts we were taught.
Study — Lund University
At this point of my life, I couldn't really decide on what I wanted to do. To solve that problem I just enrolled to as many courses as I could. I started an degree in engineering and another in finance, but I didn't finish any of them. I did however learn about physics, mathematics and accounting.
Projects I've worked on
When my daugther was born, I found my self going on a lot of long walks in the rainy Swedish winter, and before i knew it I had to change a diaper. But where can I do that?
I was faced with a problem that I didn't know I had. Being a developer, my first thought was is there an app for that? The answer was both yes and no. There were plenty of apps showing where public bathrooms are, but none of them provided information about the availability of a diaper changing table.
So I built an app to solve that exact problem.
Bathroom Finder is completely free and available for iOS and Android. Building this app solved a real life problem that I had and provided a learning experience of developing and releasing a cross platform app built with flutter.
E-Space Survey Manager
E-Space is a company that offers online surveys for their customers to engage with users in order to improve their websites, products and services. E-Space helps their customers to design engaging surveys, analyze the responses, present aggregated results and suggest improvements. They use a proprietary tool called “Survey Manager” to publish surveys, collect and analyse responses.
In order to scale their business they wanted to make the Survey Manager available for customers to publish their own surveys and get an overview of the response data. Additionally they wanted to help their customers make sense of the data and find insights into their users behaviours. E-Space then relied on their own expertise to provide deeper analysis and suggest improvements.
This presented a couple of interesting challenges, where I had to use my entire toolkit from development, through UX design and product management.
Firstly, the Survey Manager had to be visually and functionally redesigned to cater to both the expert analysts at E-Space, and newer less experienced users.
Secondly, we needed to automate and simplify some workflows performed by the analysts that the new users expected to be able to do themselves.
Finally, we had to rework pricing and marketing strategies where license fees and expert services should complement each other to provide a good customer experience.
Lime CRM add-ons
Lime CRM is an interesting product, with a really bad name. It's not really a CRM at all. It's more like a platform for building data manipulation tools.
Out of the box, what you get is a relational database, a web API that can serve the data, a client that can visualize the data and some micro services that can do other things with the data. For example there is a search engine that can make the data searchable and message queue that can tell you when the data has changed.
The cool thing is that all of this stuff is extendable and customizable. You can specify your own schema and object models, which will then be available everywhere. You could extend the API with your own custom endpoints containing your custom business logic. You could event customize user interaction by building custom Web Components that visualize and interact with the data in your own way.
Because of my experience in development, I was an early tester of these customization tools. The result was a couple of MVPS and one shippable add-on (a packaged combination of the aforementioned customizations). I learned a lot by being involved at such an early stage. Imagine building a React app with the React core team in the room next door. 😎
In October of 2018, Lime acquired a company called Netoptions, who built tools for digital marketing. I was involved in this project from the very beginning, helping out with the technical due diligence and later managing the integration of these marketing tools to Limes existing CRM systems.
Netoptions marketing tools were repackaged into add-ons, but due to their complexity they warranted their own development team and product management. The process of integrating the products was a great learning experience, and it was extra fun to learn about a new domain.
Go was my first real experience with web development and working with SaaS. Go is a SPA built on modern web infrastructure with micro services running in docker containers, an ASP.NET server, and a ES6 client.
Lime Go is sold with all of the nordic business contacts already included in the product. This presented some cool challenges as we had to think about separating the information already present in the system from the data entered by the user to protect their privacy. But at the same time merge the two data sets and make them available for the user.
I started managing Lime Go when the product was just coming out of the introduction phase of it's life cycle and going in to the growth phase. My primary focus was to maximize user acquisition and minimize churn in order for the product to become self sustaining and profitable.
The product and the brand had gotten some traction during the introduction phase so my work was directed at product positioning and make sure we had a product that delivers value to our customers and stands out in a heavily competitive market.
Easy is the first "real life" software product I've worked on so maybe it's not so surprising that it taught me the most.
When I started working with Lime Easy, the objective was to take a very popular product and modernize it. Both in terms of tech stack and in terms of visual design. Later the objective shifted towards just maintaining the product and move users to Limes other products.
Lime Easy is a Win32 program written in C++ by a tight group of developers over 20 years. Oh, and with no tests to speak of. It's safe to say it had quite a few pitfalls and caveats. It was not trivial to add or alter functionality without breaking something else. The book "Working Effectively With Legacy Code" by Michael C. Feathers was of great help when trying to figure this out.
Some people may cringe at the thought of working with Win32 and COM, but I'm very glad I did. Concepts like the Windows message loop are borrowed and reused in modern frameworks like Redux. COM was one of the earliest attempts at cross platform, language-neutral communication between software programs. At it's essence it's quite an elegant way to have a self documenting API.
Contrary to Lime Go, I started managing Lime Easy at the end of it's product life cycle. My key objectives were to keep users happy enough to minimize churn while maximizing "positive churn" by migrating customers to Limes other products.