I attended The Flatiron School’s in-person Web Development Immersive bootcamp in the fall of 2017 at the Manhattan location. (It was the only location there was at the time — they’ve grown a lot since the WeWork acquisition). Since I’ve started working in the industry, a lot of prospective and post-bootcamp students have asked for my perspective on the entire process. Based on my limited experience, I want to share some of the qualities that I think can prepare you for the bootcamp experience. How do you know if a programming bootcamp is right for you?


Avi Flombaum, co-founder…

Knowledge of git and Github is one of the most valuable skills I’ve ramped up immensely since joining the engineering team at Glossier. Working alone or with a partner in the bootcamp environment, you can try your best to work in a branching flow, but I learned a ton out of necessity in a large production code base working with 30 other engineers. I want to share some of the collaboration skills and git commands that have proved indispensable to me in the last few months.

Collaboration Tips

Learning to work more locally: Unless someone else needs immediate exposure to the commits/branch…

This post is a follow-up to my previous post, which researched the reasons for TDD/BDD in development. Now, assuming you already have a project with a package.json file to manage your dependencies, here’s a step-by-step guide on how to set up unit tests with mocha in a separate directory from production code. (If not, run npm init and accept defaults to add mocha as default for tests in your package.json)

  • Do a global install of mocha with npm install -g mocha if you haven’t already. This will allow you to run mocha test in the terminal
  • Add mocha to project…

As I look forward to landing my first job as a developer, I’ve noticed one critical skill keeps popping up in interviews: “TDD” or Test-Driven Development. At Flatiron we worked through seemingly infinite labs designed around getting tests to pass to self-evaluate our knowledge of a concept but I never had the opportunity to do anything other than manual testing within my application. To better prepare myself for the real world of production code, I decided to research frontend testing more thoroughly and try to write some tests of my own.

Why Test?

Testing is code that checks that the…

Here’s a quick post to understand the ways a binary tree can be traversed. In a binary tree, each node can have at most two children.

Pre-order Traversal

Log the root first then move (traverse) left. Finally traverse right.

In-order Traversal

Move left first until the node you hit has no children. Log that node, then log the root. Then move on to the right subtree. Typically, for binary search tree, we can retrieve all the data in sorted order using in-order traversal.

Chatbots are conversational AIs that converse in human terms. They may express a bit of personality based on how they were programmed (Alexa is often described as “sassy”) but they are not so sophisticated that they would pass the Turing test.

“Ok, Google: Show me articles on self-awareness.”

Bots have been making a splash in the headlines for the past several years. These plucky AIs have plenty of commercial applications, from entertainment to productivity, to news, to banking and more. Consumer-facing bots can help customers with difficult transactions, make recommendations, and gather data. They can even package a summary of an interaction to be passed along to…

I decided to write a series of blog posts on computer science topics to prepare myself for technical interviews and strengthen my foundation of basic programmatic concepts. This series will begin with the humble linked list.

Access time for a linked list is linear (O(n)) and finding a single node may require traversing most or all of the nodes. This makes an array more suitable for storage where elements must be quickly located by their position. Unlike an array, removing or adding an element doesn’t require all of the following elements to be re-generated in memory so those operations are…

The first Redux project I ever built was a whirlwind but ultimately very rewarding. I had barely learned the React framework a few weeks before, Javascript mere weeks before that. The most challenging part for me was the Redux’s setup. Diving in, the store makes sense as a solution to the “prop-drilling” challenges in React. The action-reducer concept, however, took quite a bit of practice to begin to congeal in my head. It can be hard to learn this concept without having a Redux project that is already set up and it’s hard to set up a Redux project if…

This is a continuation of my previous blog post, Introduction to User Experience Design Through Steve Krug’s Don’t Make Me Think:

In iterative development, a product is constantly being cycled from a user-focused concept, to design, to deployment, to finally receiving feedback from actual users and factoring the takeaways into the next iteration of your product. User testing is how designers see real users interacting with their product. Luckily, you don’t need a research degree to conduct some basic user testing on your own.

An illustration of kaizen, the Japanese concept of continuous improvement.

Types of User Testing

A focus group is five to ten people talking about their opinions…

Don’t Make Me Think by Steve Krug is a cornerstone reading in the field of user experience (UX) oriented web design. It was originally written in 2006 and while some of the designs in the examples are a little out of date, the core concepts remain foundational as ever. I read this book earlier this year and I think a primer on UX thought would be beneficial to share with other budding developers.

What is UX?

In our projects and code challenges at Flatiron, we begin with user stories: “As a user, I should be able to…” UX may seem…

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