Development

Sometimes you know exactly what you want to study and learn, sometimes one thing leads to another and you face something you would have never faced otherwise. In my case when I studied in Arcada I had the aspiration for web development, however, I would have never been able to imagine how the development work looks like today, it has changed a lot!

This page is about my development skills and where I’ve worked over the past years.

Being a developer is like being on an endless journey, you never know how the development scene will change and what will be the new thing to learn.

My skillset My workplaces

My skillset

I’ve listed here my current skillset and what I’ve worked with.

Languages

PHP

I’ve mostly worked with PHP in WordPress. WordPress offers great tools for lots of things but these have not always been enough when handling more complex data. Depending on the PHP version used in the project, I always try to write the code using strict functions.

Javascript

Ever since I started working as a developer I’ve had to use JS as an additional language to frameworks. I used to love jQuery but nowadays I feel like you can get almost anything easily done with ES6. If I’m doing something more complicated, I would stick to some state-managed frameworks like React and utilize TypeScript for type safety.

CSS (also SCSS)

I find CSS for some reason very interesting. I feel that once you get the hang of all the selectors and how to use (or abuse) the CSS with SCSS, you can do a lot of things. One example of this would be a CSS matrix that I made, with each unit separately animated according to a mathematical function.

I’ve also worked a fair bit with Tailwind, finding the experience to be great for more simple designs.

CSS matrix

HTML

“but HTML is not a programming language!”, maybe not but I still felt it necessary to add it here. I’ve been working with several customers who have required WCAG 2.1 AAA levels of accessibility on their sites and one of the best ways to do that is by utilizing HTML to its full extent. Divceptions are a thing of the past.

Frameworks

React

I’ve worked with React since I started working at Evermade, but I never got to do solely it but rather have it as a part of the bigger picture. I’ve worked with both modern and old React stacks and also used Redux at some point. I feel that React Hooks and Context API make Redux almost obsolete, but that’s just my opinion. I’ve created various interfaces that fetch, filter, and show data. If I need a state-management framework I would most likely use React as I’m most familiar with it.

Node

I’ve used Node for various smaller applications to support my JS-based apps with validating and caching GET/POST data as well as sanitizing it.

Vue

When I worked at Sofokus I got to extend one of their Vue applications. It was a pagebuilder-like solution that I extended with more features. I cannot recall exactly how much I worked with Vue, but one thing that has stuck with me is that it’s really similar to React (duh).

jQuery

Good ol’ jQuery. Sometimes if you need to quickly create a dynamic event trigger, jQuery is the fastest solution. I always try to avoid using jQuery and have refactored it at the time of writing a part of the Linear-plugin codebase from jQuery to vanilla JS. I appreciate the strengths of jQuery but I want to get rid of the package that you are forced to load on every site using jQuery, saving bits also improves page load times.

Hugo

Hugo is a framework for building static sites with Go. My friend has a Hugo site and the framework looked cool so I decided on creating my own Hugo site from scratch. I used the documentation of both Hugo and Forestry CMS and managed to create https://olli.works
When comparing Go and PHP I felt that Go had much fewer tools available, so if you wanted something a tad more complicated, you had to do it yourself. Building my own site with Hugo in Go was a very good learning experience and showed me that despite not knowing some languages the same concepts are used everywhere.

How olli.works is built

CMS-platforms

WordPress

I’ve worked with WordPress at all my workplaces (Linear, Evermade, Sofokus, Mysteerio, Aste Helsinki, and LevelUp). I consider myself a WordPress professional. I’ve worked with all kinds of WordPress sites, the smallest being one-pagers and the biggest ones being massive multisites with tons and tons of features. I have also experience with WooCommerce and how it can be utilized in other ways than just a simple B2C shop. I also have plugin development experience since at Linear I’m the WordPress plugin maintainer.

Forestry CMS

I used Forestry CMS for my own site as it was the best free alternative out there. My site is built as a page builder site and fully managed via Forestry CMS. I like that all the content on all the pages is actually just interpretations of various .md files.

Hubspot

When working at Evermade I was faced with the challenge to build a Hubspot site for one of our clients. I was able to implement our page-builder-like base to Hubspot and also came up with some smart ways to handle template-loading issues.

ProcessWire

The main developer at Liideo told that he had been looking at a free alternative to ExpressionEngine and found ProcessWire. I decided to give ProcessWire a try and built a few client sites with it. The experience was quite barebones but you were able to make your own fields and easily organize data.

ExpressionEngine (EE)

I helped on developing sites at Liideo as a trainee and was told to improve their current clients’ sites that were built on ExpressionEngine. I felt that EE was ahead of its time, the experience looks quite much like WordPress combined with ACF. When I used EE it was a paid CMS, and not from the cheapest end.

Other tools

Git (and SVN)

I use Git both professionally and privately. I’m not a Git wizard but most often manage well by myself. I’m not scared of merge conflicts and I try to build features in feature branches. I also have some experience with SVN since the WordPress Plugin repository uses it. Of the two, I prefer Git more since it’s more streamlined and easier to use.

Docker

I’ve used Docker in various circumstances and also have my own local setup running on Docker. I’m not too keen on debugging and setting up Docker containers but rather try to find ready solutions since someone most likely had already faced the same or a similar need.

Cypress

I use Cypress for front-end testing. I don’t have too much experience with it but e.g. at Linear, I’ve made my own test to see how many of our clients use the latest version of the plugin I manage, and that way can inform the Customer Success Manager if there is anything that might break if the client doesn’t update their plugin soon.

Composer

I like using Composer for managing the PHP package versions. It is really handy when developing WordPress as you can easily roll back to earlier versions of other plugins and try to find a potential conflicting issue.

Webpack/Babel/ESBuild

I think that it’s good to have assets bundled and I’ve worked with these tools to make it happen. I’ve used Webpack and Babel to bundle WordPress assets on various sites and also configured the bundling configs whenever necessary. I’ve used ESBuild with Hugo, which again hasn’t needed any configuration as it’s more of a plug-and-play solution.

My workplaces

I’ve got to experience quite a few different companies and how it is to work with them.

Linear

After working with the same kind of client-work with WordPress in various agencies I knew I needed to change something to improve myself. This is when I found Linear, a startup that digitalizes the real estate industry.

I started at Linear in 2022Q2 as their WordPress developer, primarly taking over their plugin development but also coming up with new ideas on how we could use WordPress to leverage a better service to our clients. We’ll see what time brings 😉

Granlund Oliver Egon Tmi.

VAT Number: 3001992-5

I’ve photographed events, built smaller sites, and designed keyboards in my spare time.

2020Q3 I decided to change what my company would do and strive to make things that pursue my passion despite it perhaps not being a viable business. At this point, I’m not too worried about the viability of my company as long as I enjoy what I do.

Evermade

Started working here 2019Q1 and stayed for little over 3 years. I’ve been a part of both bigger and smaller projects as well as contributing to our internal tools and broken our CTOs kilometrikisa winning streak.

Evermade is said to be the biggest WordPress agency in Finland but there are also other things than just WP. Hubspot and React applications. Evermade’s site is pretty cool, check it out at evermade.fi

Other previous employers

I’ve been able to work with a lot of great people over the years.

Sofokus Oy | 2018Q1 - 2019Q1
Mysteerio Oy | (mostly consulting Aste Helsinki) 2017Q1 - Q4
LevelUp Oy | 2016Q1 - Q4