Home Work About Contact
Portrait photograph

Glenn Robert Strandos
Web Developer

Hello! My name is Glenn.

I am a developer located in Bergen, Norway. My interests lie within the space of web development, where I enjoy working with technologies such as React, Sass, TypeScript and more. Occasionally, you may find me creating APIs with Node.js and Express.

Projects

Screeenshot of this website

Portfolio

HTML

SCSS

Firebase

Screenshot of the Recipes website

Recipes

React

TypeScript

Material-UI

Screeenshot of the League-Watcher website

League-Watcher

React

TypeScript

Material-UI

Screeenshot of the internationalization website

Internationalization

React

TypeScript

Material-UI

Image of Node.js, Express and MongoDB

Node.js Server

Node.js

JavaScript

Express

Portfolio

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.

    Features

  • Automatic Deployment
  • Hosted on Firebase
  • No JavaScript or TypeScript
  • Sending E-Mails through contact form

Technologies

  • HTML
  • SCSS
  • Firebase
  • Github Actions

Cookbook

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.

    Features

  • Create, Read, Update and Delete Recipes
  • Ability to add both ingredients and instructions
  • Recipes are categorized and filterable
  • Includes a photograph of the prepared item

Technologies

  • React
  • Redux
  • TypeScript
  • Material UI
  • MERN Stack

League-Watcher

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.

    Features

  • View any player's match history
  • Save your most frequent searches as favourites
  • Get detailed information about each match
  • Integration towards third-party API

Technologies

  • React
  • TypeScript
  • Material-UI
  • Riot Games' API
  • Node.js

Internationalization

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.

    Features

  • Translations of strings
  • Supports co-operation between people
  • Restricted access to projects
  • Exporting translations to .xml (Android) and .strings (iOS)

Technologies

  • React
  • TypeScript
  • Material-UI
  • Google OAuth

Node.js Server

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.

    Features

  • Google OAuth authentication
  • Handling CORS through a whitelist of urls
  • Automatic Deployment
  • Sending E-Mails
  • Handling Payments

Technologies

  • Node.js
  • Express
  • Mongoose
  • JavaScript

About

Studies

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.

Work

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#.

Spare Time

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.

Contact