Speaker

Asbjørn Ulsberg

Asbjørn Ulsberg

Architect and developer at PayEx by day, musician and demoscener by night

Oslo, Norway

Actions

Software developer hobbyist since 1989, web developer since 1996 and professional full-stack developer since 2000, Asbjørn enjoys every aspect of development; from design and architecture to implementation, maintenance and operations. He is a passionate believer in the free and open web, dabbles in web standards when time permits and thinks Fielding might be on to something with his 2000 doctoral dissertation. He loves to both create and listen to music, the taste of whisky and beer and spending time with his wonderful daughter and wife.

Area of Expertise

  • Finance & Banking
  • Information & Communications Technology

Topics

  • REST API
  • REST
  • Domain Driven Design
  • Web
  • api
  • Hypermedia
  • Web API
  • Web Development
  • API Design
  • Programming
  • API Documentation
  • object oriented programming
  • Developer Experience

Hypermedia As The Engine Of Application State

Everyone familiar with REST has heard or read the acronym HATEOAS. Some may even know what it stands for and will be able to spell it out.

Few, however, truly understand what it means. This talk explains how you should think about your application as a state machine and how you can change the state of your application through hypermedia.

Versioning Is A Red Herring

For software developers, versioning is such an engrained part of what we do that we naturally think it applies to all sorts of software, regardless of how it is used. For long-lived, distributed systems, versioning takes a different form.

This talk explains how instead of a versioning strategy for your web API, you should have a change strategy. The talk goes through what this means in practice, a set of rules you should follow to ensure that you don't break clients all the while allowing your API to change and evolve with minimum code debt.

Evolving compositional user interfaces

Ever since we started breaking applications into services, be it in the era of SOA or more recently with microservices, we’ve struggled to incorporate user interfaces into our decoupled, distributed architectures. We’ve seen frontends versioned separately with tight coupling to our services, breaking cohesion. We’ve seen the rise of Backend-For-Frontend and the emerge of micro frontends. We talk about composition, yet so many projects fail to implement actual composition. Instead we end up with some kind of compromise, with repeated business logic in the front-end, back-end and API, making it hard to scale – especially when multiple teams are involved – causing lock-step deployment, latency, bottlenecks and coordination issues.

What if we could find a viable solution that allowed us to scale development, keep distribution and cohesion and also provide composition of user interfaces?

In this talk you are introduced to the evolution of compositional user interfaces and existing patterns while we discover their pros and cons, before diving into the architecture and development of compositional interfaces using hypermedia and micro-frontends. We go beyond the simple “Hello World” example that always seems to work, and you’ll learn patterns in modelling and design that will get you up and running with decoupled, composed user interfaces in your day job.

What's In A Model?

If you know the Model-View-Controller pattern, have you ever questioned why Microsoft's defaults encourage you to group everything by their type? Models here, Views there and Controllers over there. If grouping by type is such a good idea, why aren't we grouping all Strings, Integers and Booleans together as well?

Perhaps there's a better way? This talk will give you ideas for how to structure your applications differently and doing it in a way that will make you more proficient in your programming language all the while being able to more clearly represent and model the real world in code.

After this talk, you will appreciate and understand better when to respect the DRY principle and when to break it. You will learn the difference between a data model, a view model, a message model, a domain model and when to use which. You will learn when and why you should throw exceptions, when to use object initializers and when to use constructors.

This may all sound basic, but at its core, this is all very hard, since modelling is hard. And modelling is hard because it is essentially about distilling the real world into code and the real world has absolutely no interest in being modelled. The real world is complex and chaotic, so we need all the tools we can muster to bring it into order.

This talk will give you a few of these tools.

Øredev 2019

What's In A Model?

If you know the Model-View-Controller pattern, have you ever questioned why Microsoft's defaults encourage you to group everything by their type? Models here, Views there and Controllers over there. If grouping by type is such a good idea, why aren't we grouping all Strings, Integers and Booleans together as well? Perhaps there's a better way?

This talk will give you ideas for how to structure your applications differently and doing it in a way that will make you more proficient in your programming language all the while being able to more clearly represent and model the real world in code. This may sound basic, but at its core, this is all very hard, since modelling is hard. And modelling is hard because it is essentially about distilling the real world into code and the real world has absolutely no interest in being modeled. The real world is complex and chaotic, so we need all the tools we can muster to bring it into order. This talk will give you a few of these tools.

November 2019 Malmö, Sweden

Nordic APIs 2019 Platform Summit

What’s Your Problem?

An API isn’t stronger than its weakest link and what’s often ignored in the ongoing maintenance and development of an API is the constant effort required to provide great self-servicable error messages. What this means is that without great, user-friendly error messages, your API is not going to be great.
Just think about your first interaction with an API. How many failing requests have you sent before you have dug yourself through swathes of error messages and documentation to get to that one penultimate successful request making your heart sing and fists shaking in the air?

Great error messages make them not feel like errors, but like friendly guidance towards a working request. They should be detailed enough to let the developer fix whatever problem there is themselves, like a dialogue between a customer and a support technician.

This talk will give you ideas of how to handle errors and exceptions that occur in your application, be it with the incoming request, database failures or errors received from a 3rd party and how to serialize them into user friendly and actionable problem messages.

October 2019 Stockholm, Sweden

NDC Oslo 2019 Sessionize Event

June 2019 Oslo, Norway

Nordic APIs 2018 Platform Summit

Compositional UIs With Hosted Views and Hypermedia

In the new brave world of decoupled and autonomous microservices, there’s a lot of knowledge, best practices and attention given to APIs. But once you start integrating these APIs in a UI, it quickly becomes a monolith of highly coupled components that replicate a lot of the functionality provided in the underlying APIs.

As everyone probably knows and agrees to by now, monoliths are not a design goal. By making your UI compositional through hosted views and by moving some of the business logic from the client to the server through the use of hypermedia, you can achieve full vertical integrations that are horizontally decoupled in a microservice fashion all the way from the persistence layer and up to the user interface.

October 2018 Stockholm, Sweden

DevOps Pro Vilnius 2018

From Source To Production With Ease

When puzzling together a build pipeline, going from source code to a built artifact that is released to production, there's a lot of pieces that need to go together. How do you mint a version number? How do you perform the actual build? Where do you put the build artifacts? How do you securely and confidently deploy the artifacts to production?

This talk attempts to answer all of these questions by providing real-world experience with tools and techniques that solve each piece of the puzzle, using Cake, GitVersion, TeamCity and Octopus Deploy.

March 2018 Vilnius, Lithuania

NDC Lightning 2017 Sessionize Event

October 2017

NDC Oslo 2017

Get Better With All Things Git

Git seems like an impenetrable matrix of commands and arguments that only Linus Torvalds and his closest friends can understand. After this talk/workshop, you will know that this is not the case and even be able to contribute to open source projects on GitHub.

Git has some 157 commands, each with several arguments that can take a number of possible values. This complex matrix of seemingly infinite combinations unquestionably gives the impression that only Linus Torvalds and his closest friends are capable of truly understanding and using Git efficiently.

This talk/workshop will make you understand the core of Git and how the "command matrix" is basically just fluff. Very powerful and useful fluff, but fluff nonetheless. What Git does is basically introductory high school graph theory in its simplest form. If you understand nodes (or points) and edges (or lines) and are able to point your index finger at a node, you should hopefully leave this talk a bit more informed and perhaps hate Git an ounce less than you did before the talk.

After teaching the core of Git, the workshop (or talk) will go on to show how you can use Git Flow, GitVersion and GitHub in concert to become a much more efficient, structured and overall better developer.

June 2017 Oslo, Norway

Secure, Flexible & Modern APIs for Payments

At this free, half-day event, we gave an introduction to REST and Hypermedia, and spoke about the important role OAuth2 plays as the central piece of the authorization puzzle.

May 2017 Oslo, Norway

Nordic APIs 2016 Platform Summit

The REST And Then Some

This talk is for developers dabbling in REST, but who aren’t yet invited to Roy Fielding’s thanksgiving dinner. It will go through the history of REST and how it relates to SOAP and RPC-style APIs before delving down into the concepts of hypertext and hypermedia, how to implement them in your API and last, but not least; Why!

If you’ve started exploring the world of REST and miss the comfort of safe typing and service discovery of SOAP and WSDL, this talk is for you. You will learn why this is missing in the world of REST, what alternatives exist and how your API can embrace them and become much more self-descriptive and user friendly than RPC-style APIs could ever dream of!

October 2016 Stockholm, Sweden

WS-REST 2016

Workshop on Web APIs and RESTful Design

June 2016 Lugano, Switzerland

Asbjørn Ulsberg

Architect and developer at PayEx by day, musician and demoscener by night

Oslo, Norway

Actions

Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.

Jump to top