This website uses cookies
We use cookies to personalise content and ads, to provide social media features and to analyse our traffic. We also share information about your use of our site with our social media, advertising and analytics partners who may combine it with other information that you’ve provided to them or that they’ve collected from your use of their services.
Consent Selection
Details
  • Necessary cookies help make a website usable by enabling basic functions like page navigation and access to secure areas of the website. The website cannot function properly without these cookies.
    • Learn more about this provideropens in a new window
      _calendly_sessionIf consent is given by the visitor, this cookie allows the website to add events into the visitor's calendar.
      Maximum Storage Duration: 21 daysType: HTTP Cookie
      GCLB [x2]This cookie is used in context with load balancing - This optimizes the response rate between the visitor and the site, by distributing the traffic load on multiple network links or servers.
      Maximum Storage Duration: SessionType: HTTP Cookie
      rc::aThis cookie is used to distinguish between humans and bots. This is beneficial for the website, in order to make valid reports on the use of their website.
      Maximum Storage Duration: PersistentType: HTML Local Storage
      rc::cThis cookie is used to distinguish between humans and bots.
      Maximum Storage Duration: SessionType: HTML Local Storage
      _abThis cookie is necessary for making credit card transactions on the website. The service is provided by Stripe.com which allows online transactions without storing any credit card information.
      Maximum Storage Duration: SessionType: HTML Local Storage
      _mfThis cookie is necessary for making credit card transactions on the website. The service is provided by Stripe.com which allows online transactions without storing any credit card information.
      Maximum Storage Duration: SessionType: HTML Local Storage
      idPending
      Maximum Storage Duration: SessionType: HTML Local Storage
    • Learn more about this provideropens in a new window
      CookieConsentStores the user's cookie consent state for the current domain
      Maximum Storage Duration: 1 yearType: HTTP Cookie
    • Learn more about this provideropens in a new window
      __stripe_midThis cookie is necessary for making credit card transactions on the website. The service is provided by Stripe.com which allows online transactions without storing any credit card information.
      Maximum Storage Duration: 1 yearType: HTTP Cookie
      __stripe_sidThis cookie is necessary for making credit card transactions on the website. The service is provided by Stripe.com which allows online transactions without storing any credit card information.
      Maximum Storage Duration: 1 dayType: HTTP Cookie
      mPending
      Maximum Storage Duration: 400 daysType: HTTP Cookie
    • __cf_bm [x2]This cookie is used to distinguish between humans and bots. This is beneficial for the website, in order to make valid reports on the use of their website.
      Maximum Storage Duration: 1 dayType: HTTP Cookie
    • _cfuvid [x2]This cookie is a part of the services provided by Cloudflare - Including load-balancing, deliverance of website content and serving DNS connection for website operators.
      Maximum Storage Duration: SessionType: HTTP Cookie
    • OptanonConsentDetermines whether the visitor has accepted the cookie consent box. This ensures that the cookie consent box will not be presented again upon re-entry.
      Maximum Storage Duration: 1 yearType: HTTP Cookie
    • wordpress_test_cookieUsed to check if the user's browser supports cookies.
      Maximum Storage Duration: SessionType: HTTP Cookie
  • Preference cookies enable a website to remember information that changes the way the website behaves or looks, like your preferred language or the region that you are in.
    • Learn more about this provideropens in a new window
      countryThe cookie determines the preferred language and country-setting of the visitor - This allows the website to show content most relevant to that region and language.
      Maximum Storage Duration: SessionType: HTTP Cookie
      intercom.intercom-state [x2]Stores a unique ID string for each chat-box session. This allows the website-support to see previous issues and reconnect with the previous supporter.
      Maximum Storage Duration: PersistentType: HTML Local Storage
      wistia-video-progress-#Contains a timestamp for the website’s video-content. This allows the user to resume watching without having to start over, if the user leaves the video or website.
      Maximum Storage Duration: PersistentType: HTML Local Storage
      1This cookie is used in conjunction with the payment window - The cookie is necessary for making secure transactions on the website.
      Maximum Storage Duration: SessionType: HTML Local Storage
      statsig.cached.evaluations.#Pending
      Maximum Storage Duration: PersistentType: HTML Local Storage
    • Learn more about this provideropens in a new window
      intercom-device-id-#Sets a specific ID for the user which ensures the integrity of the website’s chat function.
      Maximum Storage Duration: 271 daysType: HTTP Cookie
      intercom-id-#Allows the website to recoqnise the visitor, in order to optimize the chat-box functionality.
      Maximum Storage Duration: 271 daysType: HTTP Cookie
      intercom-session-#Sets a specific ID for the user which ensures the integrity of the website’s chat function.
      Maximum Storage Duration: 7 daysType: HTTP Cookie
  • Statistic cookies help website owners to understand how visitors interact with websites by collecting and reporting information anonymously.
    • Learn more about this provideropens in a new window
      ajs_anonymous_idThis cookie is used to identify a specific visitor - this information is used to identify the number of specific visitors on a website.
      Maximum Storage Duration: 1 yearType: HTTP Cookie
      analytics_session_idAssigns a specific ID to the visitor. This allows the website to determine the number of specific user-visits for analysis and statistics.
      Maximum Storage Duration: 1 yearType: HTTP Cookie
      analytics_session_id.last_accessDetermines when the visitor last visited the different subpages on the website, as well as sets a timestamp for when the session started.
      Maximum Storage Duration: 1 yearType: HTTP Cookie
      dd_cookie_test_#Registers data on visitors' website-behaviour. This is used for internal analysis and website optimization.
      Maximum Storage Duration: 1 dayType: HTTP Cookie
      wistiaUsed by the website to track the visitor's use of video-content - The cookie roots from Wistia, which provides video-software to websites.
      Maximum Storage Duration: PersistentType: HTML Local Storage
      ajs_anonymous_idThis cookie is used to count how many times a website has been visited by different visitors - this is done by assigning the visitor an ID, so the visitor does not get registered twice.
      Maximum Storage Duration: PersistentType: HTML Local Storage
      analytics_session_idDetermines when the visitor last visited the different subpages on the website, as well as sets a timestamp for when the session started.
      Maximum Storage Duration: PersistentType: HTML Local Storage
      analytics_session_id.last_accessDetermines when the visitor last visited the different subpages on the website, as well as sets a timestamp for when the session started.
      Maximum Storage Duration: PersistentType: HTML Local Storage
    • Learn more about this provideropens in a new window

      Some of the data collected by this provider is for the purposes of personalization and measuring advertising effectiveness. The provider may use the IP Addresses for ads measurement and ads personalization.

      _gaUsed to send data to Google Analytics about the visitor's device and behavior. Tracks the visitor across devices and marketing channels.
      Maximum Storage Duration: 2 yearsType: HTTP Cookie
      _ga_#Used to send data to Google Analytics about the visitor's device and behavior. Tracks the visitor across devices and marketing channels.
      Maximum Storage Duration: 2 yearsType: HTTP Cookie
    • Learn more about this provideropens in a new window
      g.gifRegisters statistical data on users' behaviour on the website. Used for internal analytics by the website operator.
      Maximum Storage Duration: SessionType: Pixel Tracker
  • Marketing cookies are used to track visitors across websites. The intention is to display ads that are relevant and engaging for the individual user and thereby more valuable for publishers and third party advertisers.
    • Learn more about this provideropens in a new window
      __tld__Used to track visitors on multiple websites, in order to present relevant advertisement based on the visitor's preferences.
      Maximum Storage Duration: SessionType: HTTP Cookie
      ajs_user_idThis cookie is used to collect data on the visitor's behavior on the website - this information can be used to assign the visitor to a visitor segment, based on common preferences.
      Maximum Storage Duration: SessionType: HTTP Cookie
      gtm_idUsed to send data to Google Analytics about the visitor's device and behavior. Tracks the visitor across devices and marketing channels.
      Maximum Storage Duration: 1 yearType: HTTP Cookie
      ajs_user_idCollects data on visitors' preferences and behaviour on the website - This information is used make content and advertisement more relevant to the specific visitor.
      Maximum Storage Duration: PersistentType: HTML Local Storage
      ajs_user_traitsCollects data on visitors. This information is used to assign visitors into segments, making website advertisement more efficient.
      Maximum Storage Duration: PersistentType: HTML Local Storage
  • Unclassified cookies are cookies that we are in the process of classifying, together with the providers of individual cookies.
    • Learn more about this provideropens in a new window
      _cachePending
      Maximum Storage Duration: PersistentType: HTML Local Storage
      cal_anonymous_idPending
      Maximum Storage Duration: 1 yearType: HTTP Cookie
      _ketch_consent_v1_Pending
      Maximum Storage Duration: PersistentType: HTML Local Storage
      _swb_consent_Pending
      Maximum Storage Duration: PersistentType: HTML Local Storage
      _swb_consent__metadataPending
      Maximum Storage Duration: PersistentType: HTML Local Storage
      CALENDLY_AUTHENTICATED_USER_STATUSPending
      Maximum Storage Duration: PersistentType: HTML Local Storage
      chromeExtensionInstalledPending
      Maximum Storage Duration: PersistentType: HTML Local Storage
      customHistoryPending
      Maximum Storage Duration: SessionType: HTML Local Storage
      edgeExtensionInstalledPending
      Maximum Storage Duration: PersistentType: HTML Local Storage
      ffExtensionInstalledPending
      Maximum Storage Duration: PersistentType: HTML Local Storage
      lastIdentifyParamsPending
      Maximum Storage Duration: SessionType: HTML Local Storage
      statsig.last_modified_time.evaluationsPending
      Maximum Storage Duration: PersistentType: HTML Local Storage
    • _ketch_consent_v1_Pending
      Maximum Storage Duration: 400 daysType: HTTP Cookie
      _swbPending
      Maximum Storage Duration: 2 yearsType: HTTP Cookie
      _swb_consent_Pending
      Maximum Storage Duration: 7 daysType: HTTP Cookie
    • nfd-enable-cf-optPending
      Maximum Storage Duration: 1 dayType: HTTP Cookie
Cookie declaration last updated on 5/8/26 by Cookiebot
[#IABV2_TITLE#]
[#IABV2_BODY_INTRO#]
[#IABV2_BODY_LEGITIMATE_INTEREST_INTRO#]
[#IABV2_BODY_PREFERENCE_INTRO#]
[#IABV2_BODY_PURPOSES_INTRO#]
[#IABV2_BODY_PURPOSES#]
[#IABV2_BODY_FEATURES_INTRO#]
[#IABV2_BODY_FEATURES#]
[#IABV2_BODY_PARTNERS_INTRO#]
[#IABV2_BODY_PARTNERS#]
About
Cookies are small text files that can be used by websites to make a user's experience more efficient.

The law states that we can store cookies on your device if they are strictly necessary for the operation of this site. For all other types of cookies we need your permission.

This site uses different types of cookies. Some cookies are placed by third party services that appear on our pages.

You can at any time change or withdraw your consent from the Cookie Declaration on our website.

Learn more about who we are, how you can contact us and how we process personal data in our Privacy Policy.

Please state your consent ID and date when you contact us regarding your consent.
SELECTED PROJECTS

Featured Work

Real engineering for real business problems, from architecture and cloud platforms to web applications, payment integrations and e-commerce.

Current

Ongoing work

At the moment, I split my time between my own AI projects and helping a few customers with their projects. Details on request.

E-commerce

Prajaya

Prajaya is a Danish brand selling handcrafted singing bowls, statues and other crafts from artisans in Nepal and beyond. I built and maintain their online store, prajaya.dk, on the Shopify platform. Alongside the build, I run their SEO, Google and Meta ads, and social media marketing, learning the growth side of e-commerce hands-on. The store is bilingual, ships to several EU markets, and serves both B2C and B2B customers.

Fintech

Nordic Fintech Week

I built custom WordPress plugins for Copenhagen Fintech's Nordic Fintech Week 2026 website that show the event programme and speakers.

Software development agency

Tokerød Plus

I was part of a small team taking customer projects from idea and development through to deployment, including CarMatch and SmartBeboer. I also did technical architecture advisory work for customers such as Energi Fyn.

The piece I'm proudest of is a custom-built plugin for SmartBeboer that paid out money to users automatically through Danske Bank's secure business-banking web services.

Autotech

Dansk Motor Finans

I extended DMF's online payments to cover more of the ways Danish car dealerships actually pay through the company portal. I also built an internal tool that took over complex manual work for a business-critical team.

Satellite Communications

QuadSAT Cloud

QuadSAT's antenna measurement for ground stations ran only as desktop software. I designed and built the first version of its cloud platform: the APIs, user management and data pipeline that connect to the desktop tool and store measurement data centrally. I defined what the platform would be before any of it existed.

Water Technology

Grundfos iSOLUTIONS Platform

I was on the team that took Grundfos's iSOLUTIONS platform live for the first time. I built the core UI components and the data visualisation layer. I also proposed a modular frontend architecture so several teams could ship on the same platform without blocking each other.

Work with Prajwal

Ready to start a project?

I'm available for hire or freelance worldwide. Let's discuss your timeline and roadmap.