Photo by NordWood Themes on Unsplash

I’ve heard programming bootcamp alums describe their learning experience as drinking from a fire hydrant. Or running a marathon. My own experience has felt like both.

Last year I jumpstarted a career transition from marketing and graphic design work to full stack development via a 5-month training program through Flatiron School. The program’s fast pace, especially during weeks focused on project builds, made it important to work efficiently and find a balance between learning a wide range of concepts (breadth) and diving deep into core concepts with the goal of mastery (depth).

The core curriculum in my program centered on…

Login page created by the team during my first hackathon

After changing careers from marketing to software engineering, I didn’t anticipate that my experience writing press releases would come in handy as a web developer. But it did this weekend as my hackathon teammates and I kicked off a 3-day coding challenge by writing a mock press release announcing the app we planned to build.

No one on our team had participated in a hackathon before, so as we got started we didn’t really know what to expect beyond a weekend of fast-paced teamwork. I certainly didn’t expect press releases. …

Square composed of 100+ triangles, partly colored in shades of teal beside a color selector tool with a hue slider and 15 swatches of colors.
Square composed of 100+ triangles, partly colored in shades of teal beside a color selector tool with a hue slider and 15 swatches of colors.

Whenever I gather materials to start a new painting, I always reach for a palette to hold the paints I’ll be using. Most often it’s a well-used piece of palette paper covered with the last painting’s color scheme. The palette makes it easy to switch between core colors without having to remix a frequently used color for each new brush stroke.

For a recent art-themed React project, I wanted to emulate the benefits of a palette and allow users to easily access their recently used colors as they ‘painted’ a digital canvas. In this post, we’ll build out this functionality…

SVG map based on the St. Louis Zoo with six distinct zones
SVG map based on the St. Louis Zoo with six distinct zones
Graphic based on map data made available by © OpenStreetMap contributors & St. Louis Zoo exhibits

The hippo exhibit in the St. Louis Zoo contains a pool of water bordered by a glass wall. Watching the hippos move underwater reveals why hippos are named after a Greek word meaning ‘river horse’. Their movements are much like the galloping of a horse as they push off the ground to propel themselves around underwater.

The St. Louis Zoo has been a favorite spot of mine since moving to the city. So when planning a project to strengthen my JavaScript (JS) skills, I decided to make a simple, interactive map based on the zoo and its six zones. …


After college I coordinated volunteer groups at a shelter for families experiencing homelessness. The largest service day involved coordinating assignments for 70 volunteers. The shelter had mostly smaller rooms, so I split the group up, with each subgroup working in a separate space on a separate task. This division of work allowed us to accomplish a range of discrete projects while not jamming the halls with lots of movement between rooms or requiring the same project instructions to be repeated from one room to the next.

This highly-organized day came to mind recently as I was building a Ruby on…

Want to build a simple web application in Ruby? Consider Sinatra.

Sinatra is a domain specific language, or DSL, that serves as a lightweight Ruby framework for creating simple web apps. Chances are, you’re already working with Sinatra if you’re reading this post.

While Sinatra doesn’t require you to follow the common Model-View-Controller (MVC) design pattern for your application, building an MVC app with Sinatra can help you learn how these pieces — models, views, and controllers — work together.

I recently worked with Sinatra to build a database-backed MVC application that uses Active Record. The app helps job seekers…

My first encounter with regular expressions, or regex, felt a bit like magic. I had just started diving into programming and was looking for a way to remove all punctuation from a string. A StackOverflow page recommended using a regex that looked something like this:


I used the code as prescribed, and voilà, all punctuation disappeared. How the mashup of characters worked was a mystery to me, but it did the job.

Viewing something as magic, though, means most of its usefulness remains hidden, and therefore, out of reach. A recent Ruby project brought me back to regexes and…

I pursued a career in the nonprofit field because I wanted to solve social challenges alongside a group of passionate people. I just left my nonprofit job after 8 years to study software engineering for the same reason.

From prioritizing passion to prioritizing problem solving

Many people enter the nonprofit sector with the hope of aligning their career with their personal passion to better society. I was one of them. When I finished college with a communications degree in 2013, I believed my career would only be meaningful if my job directly supported an important social cause. I felt strongly that working for a nonprofit was the…

Stacey McKnight

Software engineer interested in the intersection of tech, design+art, and social innovation

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