Career switching complete ✅

I went to a coding bootcamp from November 2019 to March 2020 and graduated just in time for the global pandemic to hit — worst timing to be looking for a job.

Jumping with excitement after graduating Flatiron School
Jumping with excitement after graduating Flatiron School
Graduation day

Fast forward to March 2021, and I’m happily employed and loving my first job as a software engineer. How did I get here?

Bootcamps are very intense but well-structured. Your schedule is all planned for you, you just need to keep up and put in (a lot of) effort. …


My favorite ways to tackle algorithms

Photo by Michael Dziedzic on Unsplash

When practicing solving algorithms, I found myself using particular functions and problem-solving techniques over and over again. Here are my best friends when it comes to solving algorithms.

For loop

A for loop repeats until a specified condition evaluates to false and looks like this:

for ([initialExpression]; [conditionExpression]; [incrementExpression])

As an example, if we need to loop over an array, it’d look like this:

for (let i = 0; i < array.length; i++) {// do something for every element of that array}

It’s useful when we need to loop over something and we need that something’s index (or the index…


Recursion 101 with JavaScript

What is recursion? Recursion is a function that calls itself.

We’re used to functions calling other functions. In the case of recursion, instead of a different function, we call the same one. So why is recursion so tricky to understand?

Let’s start things simple. If we were to create a function that would print out the count from 5 to 0, we could do the following:

But that’s very repetitive, and it can only count from 5 to 0. Ideally, we’d be able to pass in any number, and the function would count down from it. How can we do that?

Let’s rename the function to countDownFrom(num), where num


Or how to make your machine read Roman numerals with this JavaScript algorithm

Photo by Thomas Bormans on Unsplash

We’re so used to our regular numbers — 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 — that we forget we haven’t always had those. There were quite a few numeral systems in the history of mankind, but most of them are no longer in use. However, Roman numerals are still in (sort of) use, especially if you have a grandfather’s clock and want to know the time. 😁

Most of us have been taught how to read Roman numerals as kids and we do that almost instinctively. Here’s a primer how to read them:

Roman numerals are…


Not movie matrix though — matrix spiral algorithm in JavaScript ;)

Photo by Markus Spiske on Unsplash

If you were asked to create a square matrix of a given size, where elements were in spiral order, how would you approach it?

Let’s take 4 x 4 matrix spiral as an example. Here’s how it’d look like:

As you can see, it’s an array of 4 subarrays, and the numbers are increasing in a clockwise direction. Who the heck would you build something like that?

It’s not an easy problem to solve on the spot. It helps if you imagine that you walk around the perimeter…


An introduction to algorithms for those who are scared

Photo by Joanna Kosinska on Unsplash.

For all of you who are afraid of algorithms, you don’t have to be. Yes, I’ve been there. No, I’m still not entirely comfortable with some of them. But all it takes is learning and practice, practice, practice.

Let’s start practicing by reversing a string. I’m going to show you three ways to do that.

1. reverse() method

The first way is so easy it’s almost cheating. Think about it: Is there a built-in reverse method that can do that? True, there are no built-in ways to reverse a string, but what about arrays? Yes, there is one! Surprisingly enough, it’s called reverse()


Proudly presenting EventBit app 😁

Before I transitioned into software engineering, I spent a few years organizing developer conferences — hello droidcon NYC!

Feminati gang at droidcon NYC 2018

I love events — chatting to friends you haven’t seen in a while, bumping into new interesting people, learning interesting stuff, and of course the parties! Unfortunately, traditional conferences can’t happen in times of COVID-19, which led to online conferences springing up left and right. While I understand the need for conferences to transition to the online format, I was disappointed with how it was done.

The way online conferences are organized is purely functional. You join at a specified time and…


Or how to add a README to your…


Or at least learning what they are

Photo by Zyanya BMO on Unsplash.

When I first started learning React, there was one thing I knew for sure: If you want to use its state and lifecycle methods, you need to use class components — not functional components.

Why React Hooks?

According to the docs, hooks let you use state and other React features without writing a class.

It might be confusing to understand why hooks came to be. If you have some time, I recommend watching Dan Abramov’s introduction to Hooks at a React Conference in 2018 to get more context. …


Or how I built DoggieTracker, Fitbit for dogs 🐶

At the end of the program at Flatiron School, everybody has to build a solo project. You have 3 weeks to do whatever you want. Seriously, no lectures, labs, or code challenges. Just you and your project.

Photo by Andrew Neel on Unsplash

How to choose what to build?

It makes sense to do something in the field of what you want your future job to would be. For example, if you want to work in Fintech, you’d do a budgeting/investing app, or if you want to work at a particular company, you use their tech to be familiar with it for future interviews.

Or there is a different approach — do…

Natalie Galligan

Developer conference organizer => software engineer! Follow me for stories what’s it like to be in a coding bootcamp and start your career in tech ;)

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