willem.com

Lemmid Store on Willem's Blog

Building a product platform

Designing for reusability, flexibility and extensibility

Jan. 31, 2021
Leverage platform capabilities to quickly launch new products, designing for reusability, flexibility and extensibility.

This month I am leveraging platform capabilities to launch a new product. Over the years I have developed the "Lemmid" platform, a set of building blocks that allow me to swiftly develop new products. Designing a platform takes some extra considerations, but if you follow some simple rules you can do it yourself!

Working with special hardware from China

On developing software without a manual

Dec. 31, 2020
This month I reversed engineered my way into developing software for a Chinese Android device with an embedded printer!

This month I received a shipment from China containing some special hardware, Android devices with embedded printers! To make life easier for the restaurant and business owners that use my food ordering app, I want these devices to automatically print new orders. If only I can get these machines to work with my software... challenge accepted!

Designing a multi dimensional capacity queue

Managing kitchen-, delivery- and pickup capacity

Dec. 2, 2020
Dealing with a capacity queue is challenging, but if you take the time to model it right it is possible to create a performant and reliable system.

This month I needed to create additional dimensions to a capacity queue mechanism. The food ordering app that I created needed to be able to restrict capacity based on the number of orders, the contents in individual orders and the dispatch type (takeaway/delivery). Read along to find out how I used a Lambda Architecture to do this.

Influencing purchase behaviour

Applying behavioural sciences principles to the purchase decision process

July 31, 2020
For my work I am continuously looking into scientific sources to improve e-commerce performance, conversion rates and online revenue. Use this useful report to apply behavioural sciences principles to your advantage.

This week I stumbled upon a brilliant report on how people make their purchase decision. For my work on the online food order app I am continuously looking into scientific sources to improve performance, conversion and online revenue. This report by Google discusses six biases influencing decision making. It's worth reading their full report, let me explain why.

Linking Lemmid Store with kitchens

Integrating with external systems that you don't control

June 12, 2020
Designing backend servers to connect with external services is challenging as you need to take into account unreliability and unpredictability.

As part of the food ordering app I am building, I needed to design a reliable way to link the app to external systems. These external systems are beyond my direct control and include different checkout registers, kitchen management systems and ticket printers. Read along for more on designing for the unknown and unreliable.

Scalable application design without magic

Leveraging client computing power for high performance with many users

May 11, 2020
I needed to design a scalable backend infrastructure that could handle lots of concurrent users. I did this by leveraging the client's computing power having it handle most of the user interaction workload.

As part of the online food ordering app I'm building, I needed to design a scalable backend infrastructure that could handle lots of concurrent users. Scalability is considered a hard problem to tackle. Often it's presented like it's something magical, done by million dollar companies using secret tools. But, there is no such thing as magic, or is there?

Designing an interface for a food ordering page

Striking a balance between powerful options and mobile usability

May 1, 2020
Designing a food ordering page is surprisingly challenging because of the many variables that need to be accommodated on a very small screen.

Online ordering pages are more important than ever before. The COVID-19 virus, the resulting lockdowns and the social distancing rules have emphasised the need for a well-designed webshop user interface. This is surprisingly hard to get right!

Designing and implementing a (micro) payment system

Monetising my blog with coffee, Apple Pay and Mollie

Mar. 25, 2020
Designing and implementing a micro payment system with an emphasis on simplicity. Read about how I did it in this post.

Online payments are now more important than ever as businesses are disrupted by the COVID-19 virus. It drives my customers to seek new ways to make money online. I designed and implemented a (micro)payment system. This post is about achieving simplicity by solving complex challenges.

All blog posts
Ordering food in three steps: list, detail, summary
Ordering food in three steps: list, detail, summary
Integrating external systems into your app is like fitting third-party parts to an engine: you must carefully consider their fit and reliability (image of a combustion engine, public domain)
Integrating external systems into your app is like fitting third-party parts to an engine: you must carefully consider their fit and reliability (image of a combustion engine, public domain)
The Lemmid platform is the foundation for the products that I build on top of it
The Lemmid platform is the foundation for the products that I build on top of it
Building upon a platform - the coloured blocks could be imagined as products upon a platform foundation
Building upon a platform - the coloured blocks could be imagined as products upon a platform foundation
Duplo brick design is brilliant
Duplo brick design is brilliant
Google Translate to the rescue!
Google Translate to the rescue!
Connecting frontend with backend technology, simple as 1-2-3
Connecting frontend with backend technology, simple as 1-2-3
Java code to drive the printer
Java code to drive the printer
Printed ticket - through an external connection - including detailed order data like product modifiers (customer's choices per product)
Printed ticket - through an external connection - including detailed order data like product modifiers (customer's choices per product)
A funky new and exciting idea
A funky new and exciting idea
Handling payment status updates
Handling payment status updates
Smartphones (and tablets, PC's) have become more powerful over the years (image: Apple)
Smartphones (and tablets, PC's) have become more powerful over the years (image: Apple)
Separating the main backend server from the external systems by introducing a purpose built 'connector server'
Separating the main backend server from the external systems by introducing a purpose built 'connector server'
Calling Mollie from NodeJS using promise based JavaScript
Calling Mollie from NodeJS using promise based JavaScript
Handling lots of traffic through distributed computing
Handling lots of traffic through distributed computing
If your platform design is good - adding new and exciting pieces to it should be child's play (and thus, a lot of fun!!)
If your platform design is good - adding new and exciting pieces to it should be child's play (and thus, a lot of fun!!)
Mollie is a payment provider that supports many different payment methods, including credit cards, PayPal, iDEAL, Sofort, Giropay, SEPA, various bank apps and Apple Pay
Mollie is a payment provider that supports many different payment methods, including credit cards, PayPal, iDEAL, Sofort, Giropay, SEPA, various bank apps and Apple Pay
Six biases influencing the purchase decision process (Think with Google)
Six biases influencing the purchase decision process (Think with Google)

More Lemmid Store on Willem's Blog

All blog posts