Personal details

Frank H. - Remote

Frank H.

Timezone: Amsterdam (UTC+2)

Summary

Besides that code must be functional, I believe a developer's goal is to write maintainable software.

Hi! I am Frank, a full stack software engineer and team lead at Qfact, based in the Netherlands. I like to help people design and build great software experiences.

I can help with system and database designs regarding:

  • Microservices
  • Event-driven systems
  • Event-sourcing
  • CQRS

Database design:

  • SQL (MySQL, PostgreSQL)
  • NoSQL (MongoDB, Cassandra)
  • Eventstore (Eventstore.org)

Technologies:

  • NodeJS
  • VueJS
  • GraphQL (Apollo)
  • REST APIs
  • HTML/CSS
  • JavaScript

DevOps:

  • Docker
  • Kubernetes
  • Google Cloud Platform
  • CI/CD automation (e.g. Gitlab CI)

Work Experience

Team Lead & Architect
Qfact | Jan 2018 - Present
PHP
Node.js
MySQL
MongoDB
Docker
Kubernetes
Event Sourcing
GraphQL
RESTful API
Vue.js
At qfact I am the architect and team leader of a young and fast-growing team of currently 5 developers. Since I started working there, there have been a number of milestones: **New target architecture & phased roadmap.** Before I was hired the company's development process was outsourced, on top of that the software could use an upgrade. The goal: form a team and gain control over the development of all software within the company. In order to support the future application landscape and at the same time reduce complexity, I designed a microservices architecture. Which allowed for a phased roadmap. **Migration to Kubernetes with Google Cloud Platform** In the transition phase to internally picking up the outsourced software, a new hosting provider was needed. To pre-sort for the new architecture and facilitate scalability in the future, I chose Kubernetes here. **Development of backend according to target architecture** Building various backend services in Node.js. In addition, the phased migration of the old backend to the new backend. **Setting up development processes and Continuous Delivery** To ensure quality, I introduced a process where changes are submitted by raising a pull-request. In addition to manual review, automated tests are used to approve or reject changes. **Phased replacement of client applications** Designing and developing new applications with modern techniques (including Vue.js) to replace the existing PHP applications.