Development work at Verkkokauppa.com
Tags: ecommerce, scrum
Published: 2019-08-27 05:56:00

## TL;DR

We use React, Node, PHP, MariaDB and ~101 other open-source technologies in a big company. We are very pro and hip.

## Foreword

Verkkokauppa.com is the largest online retailer in Finland, turnover being roughly 500 million. We have developed our systems in-house and used open-source software since the company was founded in 1992. The strategy to have internal software development teams has been one of the key decisions to land where we are today, building one of the best ecommerce websites in the market.

But we are not just professional and proud of our work, we are also super trendy. We even started to blog what we do and how we do in order to give something back to the dev community. Being transparent is also an evil attempt to lure you to [join us](https://www.verkkokauppa.com/fi/tyopaikat). (fluency in Finnish is a requirement)

This article discusses briefly how our development work is done and what our technological choices are today. Focus is on the customer facing website.

## Organization

Roughly half of our sixty employees in the tech department are working with internal systems such as product management, storage, logistics, point-of-sale machines and other physical world problems. About a fourth of people are in supportive teams and roles such as infra, testing, planning, DevOps, SecOps and DBAs. And then there are two web teams dedicated to the website the customers face and use. One web team is focusing on the platform (APIs, integrations, build tools etc.) and the other team is looking after the user experience (design, usability, accessibility etc.)

## Process

We manage working by using agile model based on Scrum since 2013. Two weeks sprints are in use and we have dedicated Scrum Masters, Product Owners and a coach. Planning, Grooming, Cross-Team Planning, Retrospective, Review, Demo and Daily, we have it all! We have also opportunity to play and find new things every second sprint in Proto Friday.

From the developer's point of view it takes about 4-5 hours per week to participate all scrum meetings. Because heavy processes will always become overhead for the actual work, we try to keep the meetings as compact and relevant as possible. The same ideology goes with project management where Trello has been our choice since 2014.

We use git, GitLab and A Sane git Workflow to control our codebase state. Code reviewing is encouraged.

## Technologies

Finally here's a list of the most essential technological choices of our site that make it possible to deliver a great customer experience for thousands of simultaneous online users.

### Platform

* Kubernetes
* Docker

### Persistent data

* MariaDB
* MongoDB

### Non-persistent data

* Redis
* LocalStorage

### Back-end

* PHP: Symfony, Composer
* Node: Hapi, NPM
* Webpack, Babel, code splitting
* PHPUnit, Robot, jest

### Front-end

* React: Redux, universal rendering
* HTML: schema.org
* CSS: Sass

## Future

We are quite happy with our choices at the moment. Today radars are reporting on Styled Components, Preact, Svelte, GraphQL, WebAssembly but our focus at the moment is on refactoring codebase to use the technologies listed above and making new features for the users. Plus keeping the business people happy&ndash;you never know what they figure out next week.