Image for post
Image for post
Deploy Flask Application on AWS

Flask is a framework which many people learn as their first web framework as it is simple, lightweight and easy to learn.

AWS is one of the most popular cloud services available today, providing amazing solutions for many different problems which businesses face.

In this tutorial, I will give a visual guide on how you can deploy your first Flask application on to AWS. Lets geddittt!!

Lets get it from Giphy
  1. AWS Console Account

Overview of the steps

  1. Create an Ubuntu EC2 on AWS

Image for post
Image for post
Flappy Cats

I was always interested in Artificial Intelligence learning how to play games. From Alpha-Go to simple retro games such as Snake, it was always amusing to see how the AI learns to beat the game. Just having ended my university lift, I decided to start a project to learn how to create my own AI to beat a popular game, Flappy Bird (well, at least popular back in 2013). Of course, Flappy *Bird* is a bit of a cliche, so I added my girlfriend’s cat, Louie, instead.

What is Flappy Bird?

In case some of you never heard of Flappy Bird (which I sort…

Image for post
Image for post

I am back with another algorithm which sort of blew my mind. Its solves a problem which is seen many times and has a lot of different solutions to it. Boyer-Moore’s Majority Vote algorithm is really something. Lets dive into the problem statement of what this algorithms solves!

Problem: Given an array of n numbers, find the Majority Element. (Majority element is basically a number which appears more than n/2 times). Basically we just need to find the element which appears in more than half of the positions of the array. Here are some sample input/outputs.

Input 1: [1,3,4,3,3,3,3]


Image for post
Image for post

Today, I will be going through a Programming Question and the different ways to solve the question using the Kadane’s Algorithm!

The Maximal Continuous Sub-Array is a question which comes up in many Technical interviews and also on many programming challenges websites such as Hackerrank and LeetCode. The problem definition goes like this:

Question: Given an array of negative and positive integers, find the sum of a contiguous sub-array of numbers which has the largest sum.

Understanding the problem itself is not too hard. We just need a part of the input array who’s sum is maximal. …

Image for post
Image for post

Welcome to the last part of Introduction to Concurrency Programming in Java! In this last section we will quickly go through what Race Condition is how to resolve them! If you missed the last two articles:

Click here for Part 1

Click here for Part 2

The key concepts we will go through will be:

What is a Race Condition?

Until now, if you never searched about Multithreading, you wouldnt have heard of Race Conditions before.

Race condition is a situation where 2 Threads try to manipulate a shared resource at the same time, leading to unexpected results.

Lets break this statement down by taking…

Image for post
Image for post

Now that we’ve gone through the Introduction to Concurrency programming in Java, let’s take a deeper look into a important Thread function — “Join” which we can use! Also we will be taking a look at Java Thread State Diagram to understand how Java manages the different Threads.

So in this article, we will be going through:

  1. Important Function — Thread.join()

If you missed out on Part -1 of the series, Click here to read it!

1. Important Function — Thread.join()

Java Thread API provides a lot of important and useful functions which developers and programmers can use to easily manipulate…

Image for post
Image for post

In this article, we will be taking a look at Concurrency Programming and Multi-threading, a critical programming concept for serious programmers who want to make their code faster. I tried to make this programming concept as easy as possible so hopefully beginners can understand! This article will assume basic knowledge of Java.

There are a few key concepts we will be going through in this article:

  1. What is Concurrency Programming?

We’ve got lots to cover so lets get right into it!

1. What is Concurrency Programming?

Before we dive deep into this article, lets…

Image for post
Image for post
Sandwich shop

In this article, I would be doing my best to go through the Decorator pattern, what it is, how it is used and why it is good! Again, shout out to one of the best books I’ve read — Head First Design Patterns — for easy explanation of the topics.

Decorator Pattern

Lets look at the definition of Decorator Pattern is:

Attach additional responsibilities to an object dynamically. Decorators provide a flexible alternative to extending functionality.

Just like we did for the Strategy pattern, lets try and understand what the Decorator Pattern is using an example.

Lets take a look at a…

Image for post
Image for post
Lightning Speed

In this article, Im going to tell you about how I completely upgraded my portfolio using JavaScript Static Generator called Gatsby.js and a few other libraries. If you are considering about making a Website powered by the amazing React.js but still want the speed of a lightning strike, you should definitely consider using Gatsby.js. This blog itself was built on Gatsby.

My Portfolio: Click Here.

Source Code for Portfolio: Click Here

This article is not really technical, there isnt much code involved.

Why I wanted to upgrade my Portfolio website.

There were a few reasons why I wanted to change and redesign my personal portfolio website:

Kim Huiyeon

Software Developer | Incoming Analyst at Goldman Sachs | Writer

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