Three lessons


An integral part of Software Engineering is the ability to work on a team. During my time at Flatiron School (a coding Bootcamp), I participated in many small group projects. These group projects helped me learn many important skills, however, due to the short project timelines and the immediate access to team members I had the luxury of being very informal with my project development.

This year I participated in the development of two large web apps. Both projects were managed using the Scrum Agile methodology and both projects used similar technologies. …

Besides Practicing LeetCode Questions

About Me

I am currently a third-year Software Engineering who has never had work experience in this field. Leading into the third year I had the one goal, securing a summer internship for the summer of 2021. Having experienced coding challenges I was very nervous and asked my friends for any tips they may have. Every single one responded with the same thing, “Practice LeetCode Questions”. While practicing LeetCode questions will always be important, I have found it is not the only thing one must do. Below I have included what I do leading up to and during the interview.

Preparing for the Interview

When preparing…

Using NodeJS Express and MongoDB

In this guide, I will show you how to verify email addresses by sending users a verification email. This is a very important step when developing applications as it has many benefits. Some of these benefits include:

  • Direct communication with the users. By asking users to verify their email addresses you ensure you have an up to date direct communication line to the user. This is useful when informing the user about policy changes or aiding them in an account recovery process.
  • Prevents site abuse. By asking users to verify their email addresses you can prevent thousands of accounts from…

Explained using Java; however, the topics can be implemented in a wide range of other languages, just have to follow the language’s syntax!

Now that we have covered objects and classes, we can begin to deep dive into the final pillars of Object-Oriented Programming: inheritance, polymorphism, abstractions, and encapsulations.


Inheritance is defined as the mechanism of basing objects and class upon another object or class. The definition is much scarier than what inheritance truly is. Inheritance is the idea that a child class takes attributes defined in the parent class, much like how a child has common features with their parents. For example, let’s create an animal class and have a dog inherit its attributes from the animal class.

Explained using Java, however, the topics can be implemented in a wide range of other languages, just have to follow the language’s syntax!

Understanding the functionalities of Object-Oriented Programming (OOP) is essential since it is one of the most prevalent coding practices. Object-Oriented languages allow the programmer to create a base structure, reuse code, and develop the code faster.

As a beginner programmer understanding how to implement and take advantage of the features available in OOP can seem daunting. OOP is divided into six fundamental pillars: objects, classes, inheritance, polymorphism, abstractions, and encapsulations. Below I explain the main ideas and the uses of OOP using Java. …

Any sufficiently advanced technology is equivalent to magic.

-Sir Arthur C. Clarke

This quote by Sir Arthur C. Clarke accurately depicts how advanced technology is, at times confused with magic. Introducing my parents to Siri was one such experience. In their mind, Siri was the equivalent to a human, where conversations where to be had and tasks resolved. Even though a smart assistant understands and can complete a wide range of tasks, it is not really as smart as you may think.

What is Language

First, I should begin by explaining how languages are divided up. To generalize languages, I will divide them…

Image of a version control diagram. We will refer to this diagram when addressing features of version control.

As a beginner in the tech industry, understanding what and why version control is essential is a must. Version Control is a system that allows programmers to keep track of changes made to the source code over time. If a mistake in the code were to arise, the programmer would be able to refer to an earlier version of his/her code. When adding features to the program, this ability to reload previous versions becomes imperative when correcting mistakes. The most popular software for version control in today’s world is Git. Understanding how to properly use and implement version control is…

Hans Krohn

Software Engineering student at Western University, with a passion for technology.

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