How Do You Write A Web App?

One function at a time.

September 15, 2018

I’m undergoing a complete overhaul of how I work, and how I think about work.

It’s subtle, yet fundamental. I’ve never approached work in this way, but now it’s necessary.

What’s the change? Breaking work down into smaller parts, and working on those parts individually.

How I Used To Work

For the longest time, since high school, I could only work in sprints. Last-ditch efforts to get all of the work done in one sitting at the last moment possible. It was very effective, and efficient (or so I thought). I had the time and availability to do so, so why not?

I was able to curb stress because I didn’t have to think about completing tasks until slightly before they were absolutely due. It worked well for me.

In college this method started to eat away at me. Instead of spending just a few hours last minute, I was pulling ‘all-nighters’ at least once a week. I was a mess, I had no routine, I had no process. I would just procrastinate until I couldn’t anymore.

That doesn’t work now. It’s not shocking. That wouldn’t work for a lot of people.

There are many reasons that way of working doesn’t work now, mostly attributed to family, friends, priorities, obligations, and my overall health.

I can’t just sit down and work for a 10-hour stretch all night. I would effectively trash the next day, and my family needs me to be there for them. Fully present.

I also can’t sit down and work on side-projects for 8 hours a day (yet). I have a day-job, and weekends are for family.

I have other projects I’m working on and other people to do side-work for. I try to keep this to a minimum, but some things are necessary. I can’t only do my work and ignore that other work.

So, how do I get work done and still be a well-rounded human being? Breaking down tasks into small consumable chunks so I can take them on one at a time.

Easier In More Ways Than One

There are a lot of benefits to working like this.

For starters, if I have just one, two or three hours available to work, I can maximize that time and know exactly what I am working on.

I actually have to plan out what I am making, so feature creep goes away.

I have to explicitly think about how I am going to build features, so I am able to write better code because I know the architecture of the application.

I don’t stress about ‘not solving a problem’ because the problems are very small and approachable. Typically I can watch a single YouTube video or read some documentation to figure out what I need to do to solve a problem.

I can actually form healthy habits and make good choices about how I spend my time. I like to work in the mornings, so I spend about 2-3 hours working on side-work before anyone else in the house wakes up. This allows me to spend more time with them when they’re awake.

In It For The Long Haul

“Most people overestimate what they can do in one year and underestimate what they can do in ten years.” - Bill Gates

When I was in College, or even in High School, work was just a means to an end. I wasn’t building legacy, I wasn’t crafting my future, I was just showing up to do the work and do what I was supposed to do.

There’s no question that slow, methodical and planned work is much more powerful than the alternative. Working in sprints causes you to write bad code, not document anything, and cause headaches later when you need to fix everything you made.

At this stage in life, I am looking to build something that scales beyond myself. Something that brings in wealth, and enriches my life. You don’t get that by working hard once. It’s a continual process that needs daily attention.

Anyone can build something incredible in 10 years, but most people aren’t patient enough to see it through. In 10 years you can become a leading expert in just about any subject area. And, putting in the work everyday allows you to truly internalize the things you learn.

There’s no doubt that working in this way is beneficial in every way. I used to be a person that thought I couldn’t do work without sprinting.

I still have to remind myself to break things down into smaller chunks when I look at problems. Right now I am working on a complete overhaul of my app The Closet Assistant. When I look at the complete overhaul, I get overwhelmed and think that I’ll never finish it.

But then I remember, “How do you build a web app? One function at a time.”