Can you briefly describe your position and your tasks?
I am the CTO of Idfy and have the responsibility for our developers. In my role there is a variety of different tasks, but I spend most of my time in the development of our products. I am very fortunate to have highly skilled and independent employees, so I do not spend time micromanaging and I am mostly free to focus on other tasks. As we make relatively technical products such as APIs, I also participate in customer meetings with our sales department to ensure that both we and the customer achieve a good understanding of the needs and technical requirements for the solutions that we deliver.
Where do you work the most: in your office, at home, or at the clients?
Since we are a software company and not a consulting company, I do most of my work from my office. However as a CTO I also sometimes work with our clients and attend meetings and workshops to help them visualize how our solutions can digitize and streamline their business processes. As a father to two small children, I am also able to work from my home office during the "graveyard shift" when the kids are sleeping.
Can you tell a little about the projects you have been working on lately?
Lately I have been working with Vipps to develop a new product to be used for anti-money laundering (AML). New European AML regulations require all individuals who make financial transactions to be checked against terrorist and sanctions lists, as well as detecting whether they are politically exposed individuals in accordance with the definitions of the law.
Idfy assists Vipps with developing an API that simplifies the work of making these lookups. We have had a smooth and rapid development process that has been very educational, especially because I have been developing a lot myself. We use E2E-test APIs to ensure we can get publish versions quickly, as well as automatic tools for continuous monitoring of services.
How long have you worked as a developer?
I've been working as a developer since I graduated from university in 2008.
Have you worked in the same place all the time?
I started in a company called Uni Pluss that makes software for real estate management and maintenance. We developed functionality for digital signing of rental agreements early on, and over time we saw this feature was something we could further develop into a general solution and offer to other clients and industries. Therefore we started Idfy in 2012 (it was called Signere.no at the time), and last year we successfully demerged Idfy from Uni Pluss, and I moved over to Idfy.
How old were you when you first started to teach yourself programming?
I learned computer programming during the first semester at university when I was 20. I have always been fond of mathematics and logic, so programming was something that came very naturally to me, and I got a taste for it from the very start of my studies.
What kind of education do you have?
I have a master’s degree in Computer Science from the University of Bergen.
Which platforms do you normally develop for?
We have primarily developed services and software running on the Windows platform, but we see that solutions are increasingly built to run on Linux. We are therefore migrating our .NET code base to the .NET Core platform, which can also run on Linux.
Which PC platform/OS do you prefer to use?
I use MacOS because I like the simplicity and quality of the hardware. I have always been happy with the battery life and the quality of the portable Macs. At work I mainly use Windows today, but I see that Linux is becoming increasingly used in many contexts, so I should probably learn more Linux going forward.
Which programming language do you use?
What is the favorite language and why?
My favorite language is C# because I like the syntax, and at the same time I like the tools and frameworks that come with the language. Microsoft has done a lot with C# in the recent years, including support for extensions and LINQ, which makes C# a very powerful language to work with. Because it is a widely used language, there is also a lot of information available on for instance forums like StackOverflow.
Since C#/.NET has been open sourced and can run on Linux and Mac, it can now be used on any platform. Therefore, I think it is a language you can invest in learning, as I believe that platform independence is going to become increasingly important. I however think that any developer's favorite language will always be the language that he/she masters the best.
What two tools don't you manage without, and why?
Visual Studio with ReSharper (although I would like to test out JetBrains Rider) and Slack.
Visual Studio because I like the editor and its organization of projects, as well as the built-in tools for debugging. One thing I do not like so much about Visual Studio is that it requires a lot of machine power, so sometimes thing can get a little sticky. Slack we use a lot for internal communication because it reduces the number of emails considerably.
What kind of tasks do you best like to work with?
As a CTO I have many other tasks than just programming. When I get the opportunity to sit down with a complex and demanding problem, I feel privileged. I like the satisfaction it gives me to solve problems that at first glance seem impossible.
I am also very fond of designing solutions, ranging from how the API interface should look like to which components and frameworks to use. This is very exciting, because new technology is constantly introduced, making it possible to solve problems in new ways.
How do you make sure to keep yourself professionally updated?
I read a few blogs and follow podcasts and vlogs like Microsoft Channel9. In addition, we have purchased subscriptions for the video course solution PluralSight for all employees. I usually download courses on my iPad before flights, so I can get updated while on the go. Moreover, at Idfy we have many technical discussions, and we take time to explore and discuss new technologies and share knowledge within the organization.
To what extent have methods and technologies like DevOps, machine learning, cloud and containers changed the way you work?
The cloud is what has changed the way I work the most. The cloud allows us to easily provision services to test new ideas. I believe this allows smaller companies to access technology that was previously reserved for large enterprises. Technologies such as globally redundant web solutions, cache solutions and CDN can be set up in the cloud in the course of minutes.
I have mostly read about machine learning and not worked so much with it, but we see many possibilities for automating tasks with the use of this kind of technology.
One of the challenges that we experience with using microservices is all the dependencies. Although microservices in principle should not have dependencies, in practice we see that you end up with some depedencies regardless. This means that the development of a service often requires that four-five other services are running. Containers will simplify this, making it possible to create scripts that set up these services quickly with standard configurations.
Do you see any trends that will really change the everyday lives of developers?
I believe that the management of larger companies and state-run agencies are starting to see the strategic importance of IT, and that IT is no longer merely a support function. I therefore believe that developers will have greater influence and strategic importance for organizations in the future.
I also think that many people see the value of having technology expertise in-house rather than outsourcing to low-cost countries. There are plenty of glaring examples where outsourcing and offshoring of IT functions has not paid off.
We also see a trend of developers gaining greater responsibility beyond pure development and to a greater extend also manage and maintain the solutions they create. System development and DevOps are melting more and more together as disciplines, and this will probably change the way we create software.
What technologies or disciplines would you like to know more about?
I would love to learn more about container technology, which is something I am taking courses about these days. I believe there are great benefits of creating code that can run standardized regardless of whether it runs on Azure, Amazon, your local data center or locally on your machine.
Do you regularly attend conferences? If so, which is the most important for you?
I like to attend conferences, but in a busy life, it is not always easy to find the time.
What is your relationship to built-in privacy?
It is a positive thing that we have got more focus on this, since many developers have not necessarily had this top of mind previously. Probably this is historically related to the way software was created and used, as back in the day when one was building desktop software, these solutions were often limited to a network inside the organization, and hence security requirements were easier. When organizations now are moving to Software-as-a-Service solutions running in the cloud, focus and control of privacy and data protection are becoming key elements of any solution, and developers need to think security every step of the way.
Do you contribute, either through your job or in your spare time, to any open source project – if so, which?
I have contributed a little to an open source-project called Rebus. This is a .NET message bus framework. We use this framework extensively in our own solutions, and I think it is good to be able to give a contribution back to the community.
How much do you program in your spare time?
As an entrepreneur and a father of two small children, I do not have much spare time. I often develop in the evenings to extend my workday, so you could say I do quite a bit of programming in my spare time.
Do you have any (other) hobbies?
I have two boys of age 3 months and 3 years respectively, so all my spare time mostly goes to them. Taking them outdoors for walks and playing with them after work day gives me a nice break before the night shift begins. I'm also fond of cooking, so in the weekends, I like to prepare some tasty dinners.
What do you like the most about by working as a developer?
Having the opportunity to work with my hobby means that no days are boring. I like that I can use my creativity in problem solving, and that I do not have to do repetitive routine work.
Do you find that the job as a developer has any negative sides?
The workdays as a developer can be quite sedentary, although most people who work with me will say that I rarely sit still at my desk. As technology constantly develops into new directions, you must also stay sharp and develop new skills to continue to be relevant. For many this can be quite stressful.
Do you feel like you're getting the salary you deserve?
I am so lucky that I am a shareholder in Idfy, so hopefully this will provide a potential upside for me some time in the future.
What is the best perk you get?
Having the opportunity to work with exciting problems and being surrounded by talented colleagues. I also like having flexible work hours, which is very practical in a busy life with young children. Being able to catch up on work in the evening makes it easier to solve my daily schedule.