You can do anything, but not everything

Life after Launch School’s Core curriculum

Space ship flying toward a red and a blue planet placed at an equal distance from each other

When I wrote about my Launch School experience last week, I said you could get the most out of it by staying focused on the Core curriculum. But what are you supposed to do when you complete the curriculum?

Do you work on a project before looking for jobs? What kind of project should you work on? So many questions.

What I learned the hard way is that finishing Core will allow you to learn anything, but you won’t be able to learn everything because building things takes time and our time is limited.

Trying to do everything requires spending more time or lowering the quality of your output. Putting less on your plate will help you accomplish more by giving you enough time to make your work shine.

Deciding not to apply for Capstone

If you’re interested in finding a job, consider Capstone. This optional second phase of Launch School has a great track record at helping Core graduates complete impressive projects and land high paying jobs.

As promising as that sounds, Capstone wasn’t for me. I wasn’t looking for a job — I wanted to bootstrap a software business.

The extra skills I’d develop at Capstone would’ve been nice. But not wanting a full time job, I’d have to pay out of pocket. I didn’t want to do that given how part of Capstone was dedicated to helping folks land jobs.

Bridging the gap between fundamentals and modern tools

Setting aside my long term goals of starting a business, I knew I’d have to take on freelance work after a long period of full time learning. I wanted to complete a project to help me secure a new type of work.

I wanted to add software engineering services to my existing product design practice. My fundamentals were rock-solid and I knew I could pick up new skills as needed. Still, a couple of things were missing.

First, I wanted to bridge the gap between fundamentals and modern tools used at the time.

Second, having done product design for over ten years, I needed a way to prove that I could do software engineering now, too.

Around that time, a couple of Core graduates published case studies for their self-initiated Capstone projects. I figured a project like this could work for me.

Planning a self-initiated Capstone project

I started by listing the qualities I wanted my project to have. Here’s what I wrote down at the time:

  • Teaches me how to build & deploy a web app.
  • Lets me experience delivering a project with fixed constraints.
  • Can be showcased to increase my credibility as a software engineer.
  • Is interesting to me personally.
  • Combines aspects of software engineering and product design.
  • Is visual, interactive, easy to understand.
  • Has wow factor.
  • Can be built in 6 weeks.

Based on this, I decided to build a web app where you could create, manage, and deliver CSS styles to other websites. This idea was largely inspired by my frustrations as a product designer.

Styles like link or button colors are commonly defined in the codebase of a project. Product designers are responsible for the styles, and yet they often need help from engineers to make changes.

I explored an idea where designers could make changes themselves instead of having to involve engineers. They’d edit styles in a web app and have them delivered to the website the developers were building.

The result

I shipped Tokenhost 3000 after 7 weeks. That’s a week longer than originally planned. Not perfect, but I thought it was an acceptable delay.

Let’s talk about how it works. If you’d like, you can check out the demo yourself: Tokenhost 3000 (Pssst: it’s on a free hosting plan, so you’ll need to give it 15–30 seconds to boot up).

Update

I took the demo offline after Heroku removed their free dyno and add-on plans. You can still access the demo code in the Tokenhost 3000 GitHub repo or deploy the demo to Heroku yourself using a template I made. Either way, the GIFs below should give you enough of an idea of how it works.

Home page of Tokenhost 3000 with an orange button labeled Try Demo and an abstract, colorful animated background

When you press the Try Demo button, you get a temporary space for editing themes like Light or Dark. Each theme is a collection of CSS styles. That’s the web app part for designers.

Your space has a link to a JavaScript file that you include in a project (for example “Superhero Cards” in the GIF below).

A little widget shows up in the bottom right corner of the page letting you change themes. Any style changes you make in the web app show up in your project in real time!

Screen recording showing how CSS style updates in Tokenhost 3000 on the left are mirrored in a demo Superhero Cards project on the right

Racing against time to ship

To finish this project, I had to learn a lot about Ruby on Rails, and about creating a real time link between my web app and my JavaScript widget. It ended up taking longer that I’d anticipated.

Rushing to squeeze in everything I thought I needed, I ended up with little time for final tweaks and for writing a great case study to explain my process.

The case study could’ve benefited from a little more love. It won’t matter that you built something cool if your demo and description don’t get that point across.

It’s hard to estimate how long something might take if you’ve never done it before. If I were to start over, I’d try to put less on my plate just to err on the safe side and have time to spare for polishing.

Did I end up using Tokenhost 3000 to get freelance jobs? Not exactly. Many companies stopped hiring when the COVID-19 pandemic hit, and I decided to continue improving my skills instead.

I’d still use this project to showcase my skills. But I’d probably spend a couple extra weeks making tweaks and editing the case study. It would’ve been so much easier if I’d chosen a smaller scope to begin with!

Do less to achieve more

You can’t learn or do everything — and you don’t need to. Make sure to pick a project small enough so there’s enough time for polishing touches and writing a clear case study.

After Core, your value lies not just in the skills you already have, but also in your ability to learn new things just in time. Taking the time to walk someone through your process will help you prove that potential.

Doing less doesn’t come easily because you have to sacrifice something. But if you don’t do it yourself, your hand will be forced later when your project meets reality. And it might be too late to recover at that point.

By evaluating potential rabbit holes ahead of time and putting less on your plate, you ensure there’s enough time for the things that ultimately matter more.

Resources to help you plan and ship projects

Shape Up

A book about “shaping up” ideas before you start working on them. It forces you to think about the problem you’re solving, and consider risks and potential rabbit holes that come with it.

Just F*cking Ship

A short book about shipping. Here’s a great summary by Sacha Chua:

Text and sketchy illustrations summarizing the 20 steps in the book Just Fucking Ship

Getting Real

A set of guidelines for building a successful web application. It has some great chapters about limiting the scope of your work to deliver high quality software.

Questions from Launch School students

I probably didn’t cover everything in the article above, so let me separately answer some of the questions asked by the awesome folks in the Launch School community chat.

Did you do one or more projects before applying for jobs, and what kind of projects did you decide to do?

I completed one Capstone-grade project to help me get freelance jobs doing not just product design (which is what I did before), but also software engineering.

I decided to ship a web app where you could create and manage CSS styles, and have them delivered to other websites in real time. I picked this project because it combined relatively advanced topics (maintaining a real time connection with a web app via an API) with my existing domain of expertise.

It’s difficult to tell if this project would’ve helped me achieve that goal. The COVID-19 pandemic started shortly after I was done, and many companies stopped hiring. So I ended up starting more projects to gain experience instead.

What sub-industries can I work in after Core? Gaming? Medical? Data? Strictly web/app dev?

I think that with some effort, you could work in any of the industries you mentioned. Gaming companies may expect you to write C++. Companies working with large amounts of data might want you to write Python scripts.

So you may need to pick up a couple new skills, but Core gives you the foundation and the process to make that easier. And while the language you end up using is different, there are many concepts that will transfer well from Ruby or JavaScript.

Will Core make it possible for me to bootstrap my own SaaS companies?

Bootstrapping comes with its own set of skills required beyond technical skills. I think Core helps develop some needed non-technical skills like discipline and the importance of making a consistent effort over a long time.

In terms of technical skills, you’ll definitely have enough to start building something. How much more you’ll need to learn will depend on the complexity of what you’d like to build.

How do I become a DevOps engineer?

I’m not a DevOps engineer, so I can’t outline an exact path for you. But like with other industries, it would probably have to be a combination of developing some domain expertise and proving your ability to learn and solve problems to a prospective employer.

A great thing about Core is not just the foundation you develop during the curriculum. It’s that many other things you’ll have to learn rest on this foundation, and learning them will be easier for you compared to folks without this foundation.

Is Ruby or JavaScript more likely to help me land a job?

I’m not sure. JavaScript is definitely more popular than Ruby, and used across many companies. But, many companies use Rails, a Ruby framework, to deliver their web apps.

It’s possible that these companies have an ongoing need for Rails developers, with fewer developers available in the market. It’s unclear to me if those companies would be looking for junior or more senior developers, though. Something worth looking into!

Interested to hear about how your bootstrapping journey is going post-Core!

I think I’m starting to see light at the end of this tunnel! But it took me a while before I committed to pursuing one idea.

At first, I did my self-initiated Capstone project and a bunch of other projects to bridge what I thought was a gap between fundamentals and modern practices.

Then I started exploring machine learning. This was very exciting, but after a while I realized I couldn’t keep learning, exploring, and working on a business idea all by myself.

Any of these things were possible, but not all of them at the same time. I had to focus on something smaller. I converged on a new way of learning web app layout with CSS Flexbox.

There are lots of ways to learn Flexbox out there, but I’d like to put a twist on it. You can keep an eye on this blog or follow me on Twitter — I’ll be sharing more details soon! 🚀