Before I landed my first paying role as a software developer, I had to learn how to stay fired up about working in tech. After graduating, it took me 9 months to get my first solid job.

To survive in the joblessness, I delivered pizzas and did simple freelance projects.

I had friends who graduated at the same time as me, frolicking about in their cozy Google intern roles. I just wanted to work somewhere where I could put my skills to use.

Eventually, I was fortunate enough to get a pretty nice gig with BCG Digital Ventures as a full stack JavaScript developer. As a consulting firm, their job was to build a medical application for Boston Scientific called PainScale.

After several months of working on that project, I began working for Boston Scientific across several different web applications, most of which use trending technologies like React, Redux, GraphQL, Gatsby, TypeScript, or React Native.

After working in that first role for over a year now, I believe I can share a few insights that will help you take less time.

  1. Build a website, possibly from scratch.
  2. Create a blog and write articles. This can be part of your own website, on Medium, or other websites like dev.to.
  3. Get on Twitter. Follow and interact with other people in the community.
  4. Put your projects on GitHub. An active GitHub profile can be nice to have to show your committed to this profession.
  5. Go to meet ups and talk to the speakers and other developers.
  6. Work on projects with both fellow learners and more experienced developers.

What follows is my story of the 9 months between graduating college and getting a paying job as a software engineer.

The job search void

In June 2016, I graduated from my university. I had a bachelors in Physics and a mild understanding of some programming basics. The most complicated thing I had built though was a program that reads a file and makes a chart with Python.

I wrote this program in an Astrophysics lab that also turned me off of the sub-discipline itself. I found that in practice, the work was not quite as exciting as Neil deGrasse Tyson makes it look on TV.

It was clear to me that I did not want to tie up some 5–7 years in graduate school. My mom said that if I did, then I could defer my student loans. And then when I get out of graduate school, I could tackle them with even more debt and presumably even less energy.

Not over my dead body. I needed to find a second solution.

I saw an advertisement for a web development course instructed by Rob Percival. Learn HTML, CSS, JavaScript, and more — jumpstart your career today! Fired up, I enrolled in April of 2016.

While learning basic web development, I was sending out applications for jobs. These were jobs that I had no qualifications for.

  • C ++? I did some of that in one of my classes
  • MySQL? I could pick that up in a day or two
  • Agile workflows with test-driven development and end-to-end testing experience? Um yeah that’s like testing mobile apps and stuff right? I can handle that.
  • Knowledge of Python and Ruby? Hey, they look kinda similar!

I was oblivious to the nature of the jobs I was applying for. As a Physics major, I had an ego package that came with at least 3+ years of professional experience.

To be honest, they likely looked at my resume for about 5 seconds before emitting a giggle and scrolling on by. I would do that if I knew me.

I spent a few months of applying to jobs and learning JavaScript along with its libraries. I heard nothing back. Meeting my recently employed friends became more and more distasteful.

Pizza delivery developer

It seemed pretty clear that I was not yet prepared to stumble into a stable tech job. I needed cash though, so I took a job at a local pizza restaurant (Pizza My Heart in Cupertino, represent!) and delivered pies while I was studying JavaScript.

Some days, I would get to take the big deliveries to Apple’s headquarters. I’d marvel at all the successful tech people there, how they dress suave and wear their fancy watches. I’m like these people, I thought, and I asked them about the projects they’re working on.

Apple employees are generally squeamish when talking about their projects but, who would suspect the pizza delivery boy as an agent of espionage?

Projects with friends

While working at the pizza place, I started a project with some other kids from a local community college. This was over summer, so we were either taking classes or working part-time.

We built this thing called Arobooks. All in all, it lasted about 3 months.

We wanted to create a platform for the buying and selling of textbooks on college campuses. We also wanted to learn hot web technologies that we would use in the future.

We created a table of textbook listings using Node, React, Redux, and Firebase. This whole project was neat because we were like a mini-startup with an idea and motivation.

It was also a great opportunity to learn how to work on a real project with actual people. Working with them accelerated my learning speed threefold. If I could go back and do it over again I would definitely spent more time working on projects with other people.

After we built it, we went over to San Jose State University to do user testing. I pulled some strings and brought a few large pizzas from my restaurant. You know, to excite the users into talking to us.

Most people walked right on by though, it was as if they didn’t like pizza, free pizza even. How crazy is that?

Shipping up to Boston

In October 2016, I took a flight up to Boston, Massachusetts to work for an anti-piracy startup.

A friend of mine needed somebody in UI development to help build their client dashboard.

I went there on a whim, unpaid aside from a room to sleep in and whatever food we wanted. I, along with 8 or 9 other dudes, worked in somebody’s basement in Wellesley. I’ll be honest, he had a nice house and his mom’s cooking was excellent.

This was a step up from the previous book selling project in that the team was a little more experienced. It was still very grassroots though, no investors or significant funding to speak of.

The experience was quite exciting for me though. My family never traveled much so it was always a longing for me. I’d get to travel while further practicing my craft. Beats sitting in my local coffee shop right?

But, I kept applying to jobs within the Bay Area. I wanted to continue living in California weather, close to my other attachments.

After a month of running around the Northeast, I returned home to the Bay Area to continue my job hunt.

Interviews and freelancing

This time around, by winter, my resume had a couple projects on it. These projects, AroBooks and PiraShield, were actually worth talking about to an employer.

True, I still had very little experience, but by now I figured out a lot of ways not to build a web application. I began speaking about the specific technologies I work with with greater confidence.

In January 2017, I landed some interviews with notable companies like Apple and Facebook. Unfortunately, I lacked experience with technical interviews.

It’s one thing to make working web applications—it’s another to impress an interviewer. I suppose simply tossing buzzwords at your interviewer doesn’t earn too many points.

In one interview, I received a question that I have memorized to this day: flattening an array. Never again will I fail to answer that question. I haven’t seen it again since, though if I did I would be quite excited. Here’s my solution if you’re curious.

function flatten(arr) {
  return arr.reduce((flat, toFlatten) => {
    return flat.concat(
      Array.isArray(toFlatten) ? flatten(toFlatten) : toFlatten
    )
  }, [])
}

Once again, I was back in local coffee shops reading various tutorials and taking online courses. For my next move, I decided to build a blog.

This was the best idea ever.

Blogging to success

A resume describes your past experience and projects.

A resume doesn’t do a very good job of documenting your knowledge or experiences in depth.

With a blog, you can create content that:

  • further enforces your own learning
  • shows a potential employer where your head is at
  • helps someone else with their own journey

You can write articles and post them on Medium as an individual or to a publication like freeCodeCamp or Hacker Noon.

You can post them to dev.to, a pretty neat community that’s starting to become rather popular.

You can even build your own website and put your blog there. Doing this gives you bonus points because your site acts as its own portfolio piece. It can even contain your portfolio!

Around February 2017, 8 months after graduating, I built my blog from scratch. I used React and Redux on the front end and I used Node.js with MongoDB on the server side. I wrote and published about 7 articles before some clients on Upwork started to take notice.

Getting the job

Overeager, I found myself taking on several projects at a time. One of which became the project that I’m still working on today for my current employer, Boston Scientific.

When I was hired, I was complimented for the passion I wielded in making these posts as well and doing it on my very own platform. Essentially I read this article by Medium’s own engineering team and got to work implementing something like it for my blog.

My goal was to create a site with a simple reading experience that was easy to create content for. It doesn’t exist anymore, though the source code is probably still in one of my GitHub repos. My hiring managers thought it was good, so they gave me a shot.

The conversation went something like this.

H: Your blog is pretty good. We need something similar for a project we’re working on, a CMS (content management system). We want it done with React and Redux like you have. If you do well, we’ll raise your rates.

Me: Sweet, I’m in.

Despite my training, I was still very much a novice. I was a hotshot though, so I believed I could hack anything together given enough time. Often from a manager’s perspective, my code worked pretty well. From an architectural standpoint, it was often ugly or unscalable.

Since getting hired, I’ve been working on several different web applications, including the CMS that I started with. Early on, I committed many programming sins that I’ve paid for in some way since then (usually in guilty refactoring sessions).

When it comes down to it, I believe being a software engineer comes down to communication and teamwork more so than actual coding chops, but that is a story for another day.

If you’re a strong communicator who is capable and eager to learn new technologies and best practices, you will be good to go in Silicon Valley. Or wherever else you may end up working.

Wrapping up

I covered a pretty significant gap of my life. Those months were tough. I hope that readers can take my story and do some of the things I did, but better.

  1. Make a website, show off some of your projects on it. It can even be a blog. Having your own website increases your visibility for people checking out your resume, your LinkedIn profile, or wherever else you exist on the internet.
  2. Write some articles and publish them to your own site, to Medium, or dev.to. Need some ideas for what to put there? Write about the other projects you’ve worked on. Write about the way some random open source project implements a feature. Write a quick tutorial for something you struggled a lot with and couldn’t google.
  3. Get on Twitter and interact with other developers. You can find them by searching the hashtags #100DaysOfCode, #react, or #javascript. Build those virtual connections that might become real connections if you’re in the same town.
  4. Put your projects on GitHub. Like a decent resume, an active GitHub profile shows your putting in work, whether that’s in your own projects or group projects.
  5. Go to tech meetups in your area and consort with people, possibly with a glass of wine. Show interest in the subject of the tech talks (for example, React with Redux) and then ask if they’re hiring. If you’re cool enough to attend the talk and contribute to some conversation, you’re cool enough to have a shot at the interview funnel.
  6. Work on projects with other developers, peers, or others. This will keep you honest with the work you’re actually putting in. Bonus points if you build something neat together.

Building a blog from scratch demands some knowledge of developing CRUD applications. That is, applications that can create, read, update, and delete data.

It turns out that knowing how to do this translates well to almost any other application out there.

Blogging helps show your passion for software development, and passion goes a very long way in this profession.

Want to get into blogging? Check out these other neat articles on Medium:

And if you enjoyed this article, give me a follow on Medium and Twitter, some claps, and then go get hired.