** The views in this post are my own and do NOT represent or reflect the views of my employer or any organizations **

In this post, we will build an insecure web application. The goal is to share some of my learnings building AWS serverless apps. At the same time, I am hoping this would start a discussion that increases the awareness around security when architecting or developing software.

This came to mind as I went through the “Secure development training” program at https://academy.safestack.io/ lately, so thought that could be an opportunity to introduce a couple of security vulnerabilities…


Below are a few statements/assumptions that would help me explain the idea and the goal of this post:

  • We build software to solve problems for our customers or for people in general
  • It is important that the software is built and delivered in a reasonably short time
  • It is important that the software is built and delivered with a reasonable quality
  • There are lots of methods and ways of working to develop software, and there is no single way that is correct for all organisations
  • It is difficult to deliver software with both speed and quality

The goal of this…


If you’ve built a website, whether for personal or commercial use, you probably researched web hosting options. Lots of companies provide this kind of services. In this post, we will build a very simple website, and host it on Amazon S3 (Amazon storage service), which can be used to host a static website (a site that contains static content and client-side scripts).

The interesting part is that we will use AWS CDK to define the infrastructure we’re using. I’ve learned about this a couple of weeks ago, and thought to document my learnings through a blog post.

Below are a…


Lots of applications have a set of processes or operations that include sending emails to customers. This could be related to registration, resetting passwords, or notifications… Sometimes, teams choose to avoid the automation testing of email verifications and stick to testing it manually at the implementation time. This might be a fair choice if the area that is being tested isn’t going to be updated in the future, or isn’t impacting the business progress or success.

To automate or not to automate? Ask yourself the following couple of questions:

  • Is this an important part of the business, would it cost…


Most of the times, when we develop software, we rely on third party services to accomplish a certain outcome so that we don’t have to re-invent the wheel. However, this introduces a new level of complexity, especially around testability.

This post is based on a presentation I gave at the “Ministry of testing - Auckland” meetup. Mocking isn’t new, and there are lots of articles on the internet about it, but it is less frequent to see content about mocks in the context of a system testing or end to end testing. …


As I was getting into cloud development, and while still trying to figure out the best and fastest way to get my code tested and deployed, I learned about Lambda Layers.

Originally, the main satisfaction they provided was enabling me to see the Lambda code directly in the AWS Console, as they extracted away the dependencies I am using, which made my lambda code smaller as it should be. …


Assume you’ve been asked to create a VM on AWS to run some critical operations for your business; it needs to access the internet, but only can be accessed by the maintainers (e.g. people/services who would want to install/upgrade the software). How would you do it?

This is a series of 2 posts. In the first post, we went over what happens when we create an EC2 instance (VM) in AWS, where we explained how the instance gets attached to the default VPC and the traffic gets routed.

In this second post, we will go over creating a fully secure…


Assume you’ve been asked to create a VM on AWS to run some critical operations for your business; it needs to access the internet, but only can be accessed by the maintainers (e.g. people/services who would want to install/upgrade the software). How would you do it?

This is a series of 2 posts. In the first post, we will go over what happens when you create an EC2 instance (VM) in AWS; it would be an introductory post for another article about architecting a secure solution in a secure network in the cloud.

Why is that important?

When building solutions…


In this post, we will write infrastructure as code, using Cloud Formation, to set up a web server on an EC2 instance on AWS.

We will be covering the following items:

  • Create an EC2 instance manually using AWS console
  • Automate the creation of EC2 instance with Cloud Formation
  • Add a name to the instance and create a tag
  • Connect to the EC2 instance through SSH
  • Set up a web server on the EC2 instance (manually then through Cloud Formation as a startup script)

As the goal of this post is mainly infrastructure, we will just create a web app that…


As with any website, I wanted to add a navigation menu to my personal website (built with ReactJS) when I was developing it — https://ahaydar.github.io

In this post, I will go through my thought process and document my learnings about the tech used. I hope this will be helpful for anyone starting with React and React Router.

The navigation menu includes the following items:

  • The “home” menu item gives accessibility to the current personal site
  • The “now” menu item takes the user to a new page where I list what I am currently doing (inspired by “Now” page, which I…

Ali Haydar

Software engineer (JS | REACT | Node | AWS | Test Automation)

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