You can control Alexa Routine via Homekit with some simple workarounds

Photo by Andres Urena on Unsplash

Ideally when setting up your smart home, you want to get all your devices under a single ecosystem (e.g., Apple HomeKit, Google Home, Alexa, SmartThings).

Your smart devices are like employees of a company. The company functions best when all your employees are under the same boss and they can work with each other. If you are mixing devices that only work with some particular hubs or have limited functionalities when they are not connected to their preferred hub, you will have to find a way for the different bosses to each other.

In my case, I have invested in…


Photo by Micah Williams on Unsplash

It has been known that passwords are not good enough. Multi-factor authentication (MFA) adds extra levels of defense by asking the user to provide additional pieces of information apart from the password. There are the main three categories of information:

  • Something you know: Password, security questions, PINs
  • Something you have: Things in the users’ possession, e.g., smartphones, hardware tokens
  • Something you are: Things that prove the user is the person they claim to be — usually biometric factors (Fingerprint, Face ID, etc.)

A lot of websites provide 2FA by taking the password as the “something you know” and the token…


What I want to achieve is to provide a more seamless experience when users click on the “Blog” button on my webpage. I want to display in my webpage a list of recent posts that I have published on Medium and keep them up to date automatically.

This is part 6 of a series of posts I made for documenting my journey of setting up my personal webpage in an evening:

Part 1: Development Environment Setup
Part 2: Purchasing your own domain name and set up email forwarding
Part 3: Bootstrapping the app with Next.js
Part 4: Deploying to Production…


A common component of any personal webpage is a “Contact” form, since you want to provide a way for the visitors to reach you, while protecting your email address from robot spams.

In a traditional front-end/back-end setup, we implement contact form by hitting posting the payload to the backend, and within your backend web framework of choice (e.g., NodeJS, PHP, Python, etc.), you write code to send the email using some SMTP server that you have access to.

What do we do when we don’t have a backend?

This is part 5 of a series of posts I made for…


In the old days, deployment means FTP or SSH your website bundle into some remote web hosts. If you have a separate non-prod/prod environment, that means repeating the same process with different versions of code. It was time-consuming, tedious, and error-prone. IaaS platforms like Azure, AWS and Google Cloud Platform did not make deployment easy. Indeed, they only make it easier for scaling, but harder for getting things rolling.

Yet, with serverless or sometimes called backend-as-a-service, things have become truly easy for getting started.

To learn more about what serverless is and why it is a good choice for a…


Modern JavaScript development is notorious for being difficult in the initial setup, with the build pipeline being a random ensemble of transpilers, pre-processors, and post-processors. While a lot of things mentioned in How it feels to learn JavaScript in 2017 are very much still relevant in 2021, with scaffolding tools like create-react-app and create-next-app, you can get an opinionated project structure and a working build in minutes.

In this post, I am going to use create-next-app to bootstrap my Next.js project. If you are interested in why Next.js …


Out of all things, getting a domain name is the part that hasn’t changed much in the past 20 years.

This is the only expense (£10 per year) I have for the entire webpage.

This is part 2 of a series of posts I made for documenting my journey of setting up my personal webpage in an evening:

Part 1: Development Environment Setup
Part 2: Purchasing your own domain name and set up email forwarding (📍 You are here)
Part 3: Bootstrapping the app with Next.js


I have been out of the personal webpage game for a couple of years. Back in the day, I was hosting mine in my university network. Deployment was through SSH and it was hard to make changes.

It’s 2021 and my new year resolution is to start blogging and also recreate my associated personal webpage. Things have changed a lot these couple of years. While it has gotten much easier to get code deployed to the internet for free, there is a learning curve to know enough about all those frameworks, service integration and serverless to get something as simple…

Jeremy Chan

I’m a Software Engineer and a technolgoy enthusiast based in London. Also an aspiring conference speaker.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store