Projects
Some noteworthy projects I have done.Product offers API
The existing API structure for getting "offers" for "products" at Twill was complicated and hard to extend. To be able to re-use funtionality for an Amendment flow I set out to redesign the entire API around the business processes.
- Model the business processes
- Design multiple new API's
- Lead the team during implementation
API-First transformation
There was much to be improved on the API Design front at Twill. I've starting a project to adopt API-first within the organization. Starting by convincing leadership team to buy in to the idea, followed by introducing new API guidelines and some workshops to get the teams up to speed.
- Achieve company wide buyin before starting the movement
- Create API-Guidelines and get consensus from teams
- Educate teams on API First design in workshops
Domain service
To reduce the amount of resources used by our team I planned and executed this project to transform 25 microservices into a single deployable unit. Because some people were afraid this might fail I set it up in a way that we could switch between microservices and the domain service by changing a single configuration. I wat able to achieve this with a modular setup and Spring autoconfigurations. In the end we were able to reduce cloud spending for our team by about 70-80%.
- Convince architects of the advantages vs trade-offs
- Restructure project setup
- Streamline migration process
Composit build
Because our microservices used a lot of cross cutting library code that was updated fairly often a lot of time was spent on keeping everything up to date. Often it happened that a changed was incompatible with a single or few microservices which resulted in more updates. To avoid this I changed our build into a single gradle composit build in our mono-repo where all libraries became code/project dependencies. Combined with build caching we could not update shared libraries and immediately build everything effected to see if anything was broken. This ended up saving a lot build and maintenance time.
- Convince business and team of the advantages vs trade-offs
- Restructure project setup
- Streamline migration process
Mono Repo
Because a lot of features span multiple microservices we often had issues with combining multiple pull requests and merging in the right order. By merging all applications into a Mono repo we could now do everything in a single PR, which ended up saving quite some time in review, but also in development.
- Convince business and team of the advantages vs trade-offs
- Restructure project setup
CRUFD Framework
I designed and developed a generic and reusable way (Framework) to reduce boilerplate to a bare minimum for developing and maintaining complex product configuration flows. The CRUFD framework is named after it's 5 actions (CRUD + finalize). Using this framework (and some other improvements) we were able to scale up the supported configuration flows from 5 to 25 without requiring additional development effort.
- Designed API
- Created framework
- Implement Async command handling
- Create extension tasks library
Dashboard
To phase out various deprecated web and desktop applications I created a dashboard to add solutions for various small tasks done by internal users. The dashboard is a frontend where users have access to the tasks they need to do (roles mapped through the organizational structure from our active directory). The backend consists of various (micro)services that run the actual tasks. Later I was also able to automate many manual processes using this approach.
- Develop frontend application
- Develop various backend services
CI/CD
To improve the developer experience at Printforce I introduced CI/CD and set up a way to deploy our application in a docker cluster running on a bunch of VM's. We ended up running quite a bunch of things from the dutch department in this cluster using the CI/CD setup. The german department rather wanted to stay with CVS.
- Try to convince other developers that using GIT is better than CVS
- Setup continuous integration
- Setup continious deployment
- Setup docker cluster
Rotatris
Streef Games
Casual mobile puzzle game for Android and iOS. Featured on Google Play and played by over 250.000 people. Unfortunately, due to changes to the platforms over the last decade the app is no longer supported and unavailable for download.
- Designing the gameplay and parts of the UI
- Develop REST-api and backend for score keeping
- Develop Android, iOS, desktop and console applications
- Marketing & promotion
EXO-L Anklescanner
EXO-L makes 3D printen ankle braces and needed a solution to scan the ankles of their customers. Together we created a solution using 2 structured-light triangulation scanners saving a lot of manual work with hand scanners and making the product more accesable.
- Develop UI as per EXO-L design
- Developing structured light triangulation scanner (hardware and software)
- Develop algorithms & software for calibration & pointcloud stitching
val-IT Smart
Together with an Automation partner we created a solution consisting of 3 Laser triangulation systems in a robot cell. With this device we scan Aluminum cast gearboxes to check for distortions and other defects. Achieving a higher accuracy than manual quality checking and allowing all parts to be scanned in stead of only samples.
- Develop and implement laser triangulation scanning and calibration algorithms
- Select and test laser triangulation hardware
- Develop quality control software
- Develop frontend for configuration & validation
- Integrate scanners in robot cell
- Functional testing of the entire solution