Past few weeks, I was putting together a simple homepage with Laravel which is featuring few Livewire components such as email subscription and polling-based tables. It’s a simple, introduction-type landing page.

I thought I’ll capture steps of going from localhost to live HTTPS URL with AWS. Predominantly because content online overcomplicates this process.

Steps in a nutshell:

  • Launch Amazon Linux 2 EC2.
  • Setup NGINX and PHP-FPM
  • Setup HTTPS with Let’s Encrypt
  • Get in the code
  • Resolve group and user issues
  • Compile assets

Launch Amazon Linux 2 EC2

Go to EC2, make sure the Region you are in is where you want to launch the instance…


I got an upgrade project. React Native application which has not been released for a year with the last commit on 29/02/2020.

The task, as simple as it might sound, is a challenging one—get the app compiling for Andriod and upgrade it to the newest (0.63.4) React Native version.

You guessed it right—the app does not build. The team who inherited the app from another team are full-stackers but after spending a few days on it decided their time is better used in other parts of the projects and outsourced the compile-fix and upgrade to yours truly.

Let’s crack on…


SPAC, SPAC, SPAC — the word of 2020 for the majority of amateur traders and investors.

We have seen 248 SPAC IPOs with over $82 billion in capital. Results ranging from disappointments to +300% in returns. The SPAC popularity continues in 2021 with an even bigger momentum, just look at the first quarter!

A reader which is not familiar with SPACs would benefit from this quick Investopedia intro-post.

So, how do you track all SPACs?

There’s a handful of services. Some were around from 2010 when the SPACs started to regain popularity after the 2007–2008 financial crisis. Some are new, created and launched in 2020 to meet…


The current app I’m building is a FinTech project and requires an accessive use of currency and decimal number formatting both in business logic and presentation.

One of the examples is a Compact Number Format, instead of showing a long integer we want to compact it to a short integer with K, M, B, T padding.

<?php$fmt = new NumberFormatter('en_US', NumberFormatter::PADDING_POSITION);for ($i = 1; $i < 1.E10; $i *= 10)
echo $i .' => '. $fmt->format($i) . PHP_EOL;
* * *Output:1 => 1
10 => 10
100 => 100
1000 => 1K
10000 => 10K
100000 => 100K
1000000 => 1M
10000000 =>…


A very particular problem on my hands — make sure we are not allowing access to a disabled user. The check (is user disabled or not) is performed against another service via API call.

Fairly simple task on the surface, but who does not like a good edge case?

Steve (our fictional character) has signed in with “Remember Me” (by default the cookie expired in +5 years). Two days later Steve’s account is disabled by the system administrator. Unsuspecting Steve comes back to the platform five days later, authentication process recognises a valid “Remember Me” cookie and allows access.

I…


I found myself in a peculiar situation — working with multiple, legacy and greenfield, PHP projects thus in need to have my local development environment supporting 7.1.x, 7.2.x and 7.4.x.

My choice for a local PHP development environment is Laradock, love this project. It does support multiple project setup but sadly, at the moment of writing, does not support multiple PHP versions. There’s an open issue from 2017 with recent (2019) updates which talks about this challenge.

This was a must-have for me.

The Process

  • Clone LaraDock.
  • Get your .env in order.
  • Amend docker-compose.yml to introduce new php-fpm services.
  • Configure NGINX sites…

Peter Quill

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