On IKEA, Serverless computing and moving halfway around the world

A few weeks before Christmas 2016, I and my wife made a decision to move to a new city. What made this really interesting was that the new city was halfway around the world. So, wrapping up, mid-March 2017, we reached Düsseldorf, Germany all the way from a small city in south India.

Moving to a new country (with a new language) is like getting back to being a toddler. Oh yeah, we have two of them running around our house! You have no idea what everyone around you is talking about, and ‘Sprechen Sie English?’ becomes your go-to catchphrase.

Things went wonderful at work, where I joined a really talented team at Trivago working on some really cool stuff. I started working on some things which were totally new to me. One among them was moving some of our processes to AWS, and we were building some really fascinating pipelines using serverless.

So, if you can translate Cloud computing as ‘running your code on someone else’s server’, you could translate Serverless computing as ‘someone else managing the server for you’. This is truly magical! We need a database and Jeff Bezos’s elves manage it for us. We need a place to store things and the elves work overtime managing a storage server for us. Trust me, it really is pixie dust!

We really should form a union

So, all you have to do it link together all these components and build whatever you want. How about an example?

Most webpages we consume are optimised for the device you use. This is the reason the webpage loaded on mobile is much different from your laptop, which is different from your smart tv. Images play a major role in this, and we can expect most sites to maintain multiple sizes of the same image. Square Enix uses a serverless pipeline to resize its images.

Bottom line, creating a serverless pipeline is about glueing together several services. API gateway to File Storage to Functions to Database and to Functions again, and finally back to File Storage. Sounds a lot like a coach’s playbook.

So, I am building interesting pipelines at work, and when I come back home, what do I do, THE SAME!!

Enter IKEA. A blessing if you are looking for customisable and affordable furniture. The downside is they ship in parts and you assemble the furniture yourself. It’s never a downside if you love to build things and if you enjoy glueing smaller parts together to get a bigger working product. Hmm, sounds familiar.

Even though Jeff Bezos and Ingvar Kamprad will be cringing right now, I loved every bit of working with both their products. I really enjoyed building things and felt almost the same bliss God almighty felt at the end of the 7th day awing at his creation.

That’s me after fixing a chair

So, what did I find in common?

All the hard lifting is already done for us. I can only try to assume the complexities that go on with running an AWS Lambda function. Scheduling, latency, cold start and what now. Bamm.. pixie dust and all that goes away. I cannot also undermine all the prototyping, design and planning that goes behind every IKEA product. And me, I just have to tighten the screws or configure my AWS events.

It just works. Once you get anything running on AWS and if you really figure out how the ball is rolling, you are done. The data just flows and you are good to go. If you don’t throw away the small booklet IKEA ships with its product, you are already halfway there. IKEA knows all the mistakes that you could make and have everything covered. Just read the manual.

Customise, customise and customise. What if I wish to add an extra layer between my AWS Lambda function and S3 Data Storage, no problem. It’s really easy without anyone even noticing. IKEA products are the Mecca if you are into DIY. Switch out parts, customise parts, join products and whatnot.