Photo by Headway on Unsplash

The technical interview can be one of the most dreaded parts of finding a job as a software engineer. Depending on the company where you’re interviewing, your experiences can vary widely, which makes preparing even harder.

Having been on both sides of the hiring process, I know how difficult it can be. So, I want to offer some tips for success.

Maybe these aren’t the tips you’ll need for interviews at the biggest, baddest tech companies out there, but hey, not everyone needs to work at a FAANG company. …


Photo by Kobu Agency on Unsplash

Note: I’ve written up my interview tips for 2021 here!

A few years ago, as a brand-new apprentice developer, I was doing an AMA session on campus with current students of the bootcamp I had attended when a student asked me about the job search. Without missing a beat, I said, “It sucks.” They all laughed, betraying the horror on their faces at the blunt confirmation of their worst fears. Some people in the back might have cried.

Afterward, my manager advised me to maybe not say that. But it was true then, and it’s definitely true now.

So, basically…


How to help your growing team grow its book club

Photo by Daria Nepriakhina on Unsplash

Our weekly technical book club is one of the things that I think makes our engineering team at the Flatiron School special. Since I joined the team over three years ago, I’ve been a keen participant, and I have honestly learned so much with some of the coolest and smartest people.

If your goal is to level up as an engineer, there’s really no better way to grow besides reading a bunch of technical books (aside from pairing, pairing is great for learning and knowledge sharing).

Our team itself has grown in my time here, and one of the challenges…


or, be the changeset you want to see in the world

This post explains how Ecto.Changeset can help you make safer changes to
your data by providing a foundation for thinking more strategically about
providing multiple update policies.

Photo by Ross Findon on Unsplash

A troublesome update scenario

Imagine you're building an application that does a lot of complex business workflows. Like creating invoices and sending them out.

Maybe there are different types of invoices: invoices for deposits and invoices for tuition installment payments. You can create invoices and schedule them. You can cancel them. You can edit their due dates. But what if you try to change the due date and accidentally cancel the invoice while you're trying to update the…


Photo by Campaign Creators on Unsplash

Maybe it’s a little presumptuous to call this the “ultimate” checklist, but then again, maybe not.

Whenever I need to generate schemas, I tend to overlook the same things over and over again, so I decided to put together a quick post to remind myself of some important considerations — just a few points to think about before pushing migrations to production.

1. Sketch the domain.

Use diagrams to sketch the domain and to figure out what tables you need. Using Google Docs is probably your best bet if you’re working with a team and
anyone on that team should be able to update the…


Inheritance is easy — until you have to deal with technical debt and taxes.

When Learn’s main codebase came into existence five years ago, Single Table Inheritance (STI) was pretty popular. The Flatiron Labs team at the time went all in on it — using it for everything from assessments and curriculum to activity feed events and content within our growing learning management system. And that was great— it got the job done. It allowed instructors to deliver curriculum, track student progress, and create an engaging user experience.

But as many blog posts have pointed out (this one, this one, and this one for example), STI does not scale super well, especially as the…


As an Elixir novice, I think one of the hardest things about getting started in
Elixir is figuring out what kind of data structures to use. My team
has recently started going all in on Elixir, so I’ve been trying to brush up
in earnest. Often, however, I’ll be reading over some of my team’s code and have a hard time deciphering what I’m even looking at. The syntax looks very similar to Ruby (which I know pretty well), but the patterns, conventions, and data structures are just slightly different. …


Learn about the engineering process and tech stack behind Learn.co’s IDE in Browser.

This post originally appeared on the Flatiron School blog.

This week, Flatiron School’s Engineering team rolled out the Learn IDE (Integrated Development Environment) in browser — complete with file tree, text editor, and terminal window. Now, when you do a lab on Flatiron’s Learn.co platform, you need only click on the “Open IDE” button to launch a functional development environment right in your browser!

We’re particularly excited about this feature because it allows students new to coding to get a taste of programming with real tools that developers use on the job. Unlike a REPL (a read-eval-print-loop) that executes a…


Ask any developer what part of their jobs they loathe the most and you’ll frequently hear the words “code review”.

Photo by Artem Sapegin on Unsplash

Code review is sometimes the step blocking you from shipping. It may even be the final thing standing between you and the end of your project sprint — the one you’ve been working on for months and can’t wait to end. More poetically, it’s a time when you, the developer, the craftsman, the artist, present your work before a council of critics and beg them to bless your masterpiece with a thumbs-up emoji and a “LGTM.”


Test-driven Learning on Learn.co

If you’ve ever done a lesson on Learn.co, one of the first things you’ll notice is the lights. That’s what we affectionately call the little icons on the right of our lesson pages — those little markers of progress that change whenever you complete a required task, or, “assessment” in code-speak, for the lesson. The lights on Learn.co are one of the most important, beloved, and magical features on the platform, and they’re also one of my favorite parts of the app.

When I first joined Learn.co over two years ago as a student, I remember being mystified by how…

Tracy Lum

Software Engineer // 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