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
Google Translate to the rescue!
Google Translate to the rescue!
A Duplo brick is can be so much more than just a brick
A Duplo brick is can be so much more than just a brick
People use the app to order food - orders are forwarded to kitchen and delivery staff
People use the app to order food - orders are forwarded to kitchen and delivery staff
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
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)
Developing the user interface using Blink and Inspect Browser on iPad
Developing the user interface using Blink and Inspect Browser on iPad
Lemmid Store - an app to order takeaway food
Lemmid Store - an app to order takeaway food
The Messy Middle model (Rennie Et Al., 2020)
The Messy Middle model (Rennie Et Al., 2020)
Three capacity constraints: kitchen / delivery / pickup
Three capacity constraints: kitchen / delivery / pickup
Transfer of preference from original choice to fictional brand, per shopping category (Rennie Et Al., 2020)
Transfer of preference from original choice to fictional brand, per shopping category (Rennie Et Al., 2020)
New combinations can create novel products
New combinations can create novel products
Java code to drive the printer
Java code to drive the printer
Handling payment status updates
Handling payment status updates
Server under high load handling multiple concurrent users
Server under high load handling multiple concurrent users
Steve Jobs announcing the Keynote app at MacWorld 2003, joking that it was build for himself, him being an underpaid beta tester
Steve Jobs announcing the Keynote app at MacWorld 2003, joking that it was build for himself, him being an underpaid beta tester
Its party trick is the embedded printer - super useful in the context of handling (online) orders
Its party trick is the embedded printer - super useful in the context of handling (online) orders
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
Calling Mollie from NodeJS using promise based JavaScript
Calling Mollie from NodeJS using promise based JavaScript

More Lemmid Store on Willem's Blog

All blog posts

Articles (148)