Welcome to a brand new module of Beyond the Bootcamp! This is probably one of my favorite topics as it has a lot of different direct applications to speed up applications efficiently by leveraging computer hardware. Let’s get started!

As a 10,000 foot overview, we’ll be covering:

  • What threads are
  • How we can use more than 1 thread to take advantage of computer hardware
  • Common issues from multi-threaded applications, race conditions and deadlocks
  • What does it mean for code to execute concurrently compared to in parallel?
  • Synchronous vs asynchronous code execution

Don’t worry if you’re not familiar with a lot…

Welcome back to this week’s edition of Beyond the Bootcamp!

Today, we’ll take a look at how garbage collection can still result in memory leaks.

Recall in last week’s edition that we learned that garbage collection is the process in which the programming language tracks what pieces of memory a program is referencing. Once the program is no longer making reference to a particular piece of memory, the language’s garbage collector frees that piece of memory so that the program can reuse that memory address if necessary. While this sounds like a nice scheme, how can this go wrong?


Welcome back to another edition of Beyond the Bootcamp!

Today, we’re going to take a look at how the software side interfaces with memory. We’ll quickly review what the hardware side looks like then jump right into how programming languages like Java or Ruby deal with memory.

Recall the diagram from the first edition of this module:

Welcome back to the second edition of the Beyond the Bootcamp memory module!

Last week, we talked about how what caches were along with what spatial and temporal locality were. Let’s take a look at an example where not using spatial locality really hurts performance!

Recall that if we want to represent a grid, we can use an array of arrays to do so. In languages such as Java we would represent a grid as such:

Pictorially, we can represent this as so:

Welcome to the second module of Beyond the Bootcamp!

In today’s edition, we’ll go through a high level overview of what computer memory is and why it’s important to understand how computers utilize memory so we can write better programs.

Welcome to the first edition of Bits & Bytes on Medium! As I’ve stated in the email, I’m going to be migrating previous editions of the newsletter to this platform so it’s easier to search for editions you might have missed :).

In our last edition of Beyond the Bootcamp, we took a look at bit sets and learned how we could leverage them to save on a nearly 97% reduction of space. Today, to solidify our understanding, we’re going to take a look at code samples to see how much space we’re using to solve problems. …


Before we get into the meat of the content today, if you want to connect on a 1:1 consultation session about making the switch into software, resume reviews, or anything related to software engineering, I’m starting to open up 30 minute slots on Calendly free of charge! Click here to sign up!

Today, we’re going to motivate ourselves as to why we would want to use a bitset and the space savings we can get. Let’s jump into it!

Hash tables

Before we talk about what a bitset is, let’s take a step back to make sure we’re on the same page…

Since the creation of null in the 1960s by Tony Hoare, null or some form of it whether it be nilor None, has crept its way into many languages today as a convenient way to signify a non-existent object. In doing so, it has caused problems from making developers pull their hair out trying to track down a null reference, to even taking systems in production down.

What’s the problem with null?

Take for example the following snippet:

Excluding the DAO being null, there are three points of failure just from null in this snippet:

  • Since Long is not a primitive, homeListingId is allowed…

This is an article part of the It’s not just about a paycheck: Exploring the 4 important aspects of a software engineering job series.

As a college student or a new graduate, you may not know what kind of work you like. And that’s perfectly okay! Ideally, you’d try getting a taste of what you like through the sample platter of computer science electives at school, but even that isn’t always representative of what it’s like to work with those technologies on the job.

Even if you think you know what to do, try out different types of work. Your…

This is an article part of the It’s not just about the money: Exploring the 4 important aspects of a software engineering job series.


One punch man surely is having an impact in this world! Source.

Let’s face it, many of us strive to be software engineers because we want to make a difference in the world. It’s important to be aware that impact is different at every company.

At large companies like Google, Microsoft, Facebook, and Amazon, it’s true that code changes that you make have the potential to affect millions of people, but what about the impact on the company as a whole? …

Justin Harjanto

CS @ UW • SDE @ Amazon • http://www.justinharjanto.com

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