HTML
SCSS
Firebase
React
TypeScript
Material-UI
React
TypeScript
Material-UI
React
TypeScript
Material-UI
Node.js
JavaScript
Express
This portfolio was developed using only HTML and SCSS. I chose this approach, since I wanted to explore
CSS more thoroughly. It allowed me to realise what I could achieve with CSS. During the development,
I focused a lot on making sure the webpage was responsive and working on all devices.
The webpage is hosted using Firebase Hosting. Setting up Github Actions allows me to automatically deploy to Firebase as well.
Feel free to view the Github.
After being tired of always having to search for recipes, or be given recipes with non-specific measurements, I decided to
create a website to make things easier for myself. The most important functionality I required was the ability to do basic CRUD operations.
Along with the CRUD operations, I did also set a few more requirements for the website, such as: predefined measurements, ability to section up the instructions,
and being able to upload a photograph of the prepared item.
The website was developed using React, Redux and TypeScript, along with using Material UI as a component library. It also has a Back-End
developed in Node.js and Express that is using a MongoDB to store the recipes.
When it comes to responsive design, the website works on both desktops and mobile devices. This was particularly important, since my primary tool for reading recipes is a phone.
Feel free to view the Website or the Github.
League Watcher was developed due to me wanting to play around with Riot Games' API. Whilst playing around with the API I thought it might be a good idea to
try to use it to develop something useful. The result was League Watcher. The main purpose of the application is to find and view your own, or anyone else's match history.
In order for the match history to have any value it also has to include detailed specifics about each match, not only whether it was a win or a loss.
In order to achieve this, I implemented an integration layer that would call all the necessary endpoints on Riot Games' API, in order to transform the data into a usable format,
based on the given Summoner Name. This is necessary due to the required data being given by calling a multitude of endpoints.
The website itself was developed using React, Redux, TypeScript and Material-UI.
Feel free to view the Website or the Github.
NOTE: Currently in progress.
Handling translations for an app isn't always straight forward. The easiest way is to include the strings within the app itself. Doing it this way however,
will make it difficult to ensure that the strings match on both Android and iOS. One way to ensure that they are always in sync, is to store the
strings outside the app, and instead have the app fetch the strings whenever you update them.
Internationalization is designed to solve this issue. By storing the original strings, and their translations, we can then export them as .xml (Android) or .string (iOS) files,
which could easily be integrated into the app. This will ensure that the exported strings are always in sync across both Android and iOS. There will also be a CLI that fetches the corresponding files, and adds them to the app correctly.
This project came to life when I first needed a simple Back-End for one of my first ever websites. Due to my interest in Web Development, I decided to create a Node.js and Express server since I could utilize my JavaScript knowledge.
Connection to a MongoDB Atlas Database is done through utilising Mongoose.
Both Stripe and Sendgrid have been integrated into the server, giving it the ability to handle payments and send out e-mails respectively.
The server has evolved over the past few years and is now acting as the Back-End for most of my websites. Each website has a different set of API routes set up for it, in order to handle the necessary CRUD operations.
Any code-changes is automatically deployed to production, through Heroku’s CI / CD.
Feel free to view the Github.
I have a Bachelor of Engineering in Computing from Western Norway University of Applied Sciences. During the degree I specialised in Front-End development.
Through my thesis I used React, Redux and TypeScript in order to solve the task. Material-UI was also used as a component library.
My first real job in IT was at Dataloy, whom I had previously written my thesis for. At Dataloy I worked as a Front-End developer, where I primarily used React and TypeScript.
After Dataloy, I joined TietoEVRY, where I work today.
At TietoEVRY I am working as a Consultant, primarily developing apps for Android. Though, I also do some iOS development from time to time.
In addition, I have also developed serverless APIs in Azure, by writing Azure functions in F#.
In my spare time I often end up developing small sized webpages using either the MERN stack, or just plain HTML and CSS.
I also like to keep up to date when it comes to the Front-End universe, by either reading articles or completing new courses.
Occasionally you may find me dabbling around in Unity or Unreal Engine.