Paid work

 

clients & products

Most recent / current

Screenshots from the FACY app store product page

FACY (Styler Inc)

Tokyo, Shibuya, Japan, 2019-2022

FACY aims to bring physical shops together with an ever more online audience of customers.

The business is in new retail and the app is a so-called OMO (offline merges online) applications that hopes to bridge the digital gap that has widened between traditional clothing and cosmetic stores in Japan.

The high street rents are continuously increasing and customers have come to expect brands to be online. At the same time, the shopping experience for clothes in particular, does not lend itself well for online shopping.

When buying clothes that are not fast fashion, you want to feel the quality of the brand and test the fit before buying. FACY brings the traditional retail inventory online and enables an omni-channel experience where digital and physical blends together.

Throughout my time in Styler Inc, the company behind FACY, I have worked in engineer and later as Chief Product Officer managing the development and design teams.

Collaborating in Japanese and English to bring business and development together as well as to understand and serve a market previously completely unknown to me has been a huge undertaking. I’ve been lucky to get to learn how to build and manage both an international team and a new type of product.

Our stack has involved working on AWS and GCP. Moving from Ruby to Python and from EC2 to Kubernetes to Serverless. Having to ingest, index and serve hundred of thousands of items from hundreds of shops we have had incredibly interesting challenges solved both by development inside FACY and relying on well established systems such as Firebase, BigQuery and Stripe.

 

Video Hearings, Ministry of Justice

London, UK, since 2018-2019

The Reform Programme is a huge undertaking of the UK government to bring the justice system up to speed with todays technology.

A part of the Reform Programme is the Video Hearings Project. The goal is to reduce costs and make justice more accessible by removing the need to travel to court.
 
The project wraps a third party video provider to give a full end to end user experience of the digital hearing. The product involves many parts before even getting to the hearing. Users are invited to the service, trialled for suitability and familiarised. Well on the day of the hearing the challenge is to emulate all that is the presence of the court, in a digital medium.
 
The tech stack includes hosting in Azure with deployments using Azure Devops. DotNet Core C# with Asp.Net MVC and Angular 6 with Typescript. All APIs are documented using Swagger. High test coverage and acceptance tests written in Specflow both for API and UI run on each commit. Code is open source and hosted on Github.
 
One of the major technical challenges in the project is to architect for evolution. Video presence in hearings is not a new concept but fully video hearings are. This means that we aim to build a system we don’t yet understand.
 
Another difficulty is the to support both the old with the new. The Reform Program modernises many justice services, but not all. Those modernised will integrate directly using a common platform. But, non-reformed services will need special customisation to integrate. This means the Video Hearings becomes a product in its own right, servicing clients.
 
Though the project is far from over we have made good progress this far. We have released a pilot version of the system, used in real hearings. Whilst this is happening we are working on a real release version. Focussing on CI/CD from the outset with high test automation enables quick releases. We aim to have the rebuild releasable within the first few months of restarting on the new platform. We have also managed to decouple parts of the domain into separate parts. This has allowed us to decouple concerns and keep a clean design, less susceptible to big rework.

 

Rakuten Delivery

Osaka, Japan, 2016-2018

Rakuten Delivery is the OnlinePizza or UberEats (or simply the 2nd biggest competitor to Demae-Can) of Japan.

The system, a marketplace connecting restaurants doing delivery with customers wanting to eat. Customers can use their Rakuten membership to collect points on purchases. These are then usable across all other Rakuten services. Restaurants sign as another channel for sales, or, to avoid writing a e-platform.
 
When I joined the team it was about to perform a big rewrite of the frontend. The frontend was at that point written in PHP and was using end-of-life frameworks. I helped get CI/CD setup using Jenkins and pushed it to become part of the development process. We rebuilt the new service, making sure to decouple the frontend from backend. We moved to a new technology stack, Java 8 with Spring Boot. We also made the new services possible to containerise for future proof hosting.
 
Challenges included figuring out the details of how a 10+ years old system works. As we ported over functionality to the new site, reading old code was key. We outsourced manual testing and focused on automation within the team. Finally, and maybe one of the hardest parts, getting into both the language and culture of Japan.
 
My by far biggest success was to not only learn how to lead a small team but in a language I didn’t fully control. My mistakes together with great advice from seniors taught me much. Hard work and the importance of language and culture as well. I cannot express enough my gratitude for the team members. They always patiently listened as I struggled to mentor with my broken Japanese.
 
Learning Java and Spring Boot coming from a C# background was very interesting. But as the two languages has grown similar it was more of a breeze than expected. More difficult was getting proficient with Bash. The deployments were all on Unix based servers, lots of them. Learning how to use the unix command line to manage and maintain deployments on 60+ servers was great. I’ve come to appreciate and love the flexibility for automation the *nix platform has.

 

Before then

Years ago

Porting Ruby on Rails to C#

Writing proprietary C# MVC and ORM frameworks

Silverlight and WPF desktop application development

E-commerce platform in PHP

Years ago

Document CMS

Designed and implemented a document management system for the Swedish Transport Agency. Using WPF, WCF and Visual Studio tools for Office

Batch processing

Work to maintain and improve the batch processing and related functions for the case management system of driver licenses in the Swedish Transport Agency

Years ago

Test automation

useMango, a rich desktop client using WPF, Selenium and HP UFT for test automation and execution

Framework development

Built proprietory frameworks for test automation in Ruby and VBA

Node.js server side

Using AWS and docker containers to host and run backend services