Sudopoint is “feature complete” now - it includes a marketing website, landing page, this blog, the application, the database that backs it, an email system, payments integration, support for user-defined custom functions, support for downloading arbitrarily large datasets, a beta API layer, etc.
Okay maybe I’m bragging. I’m proud, alright? It took me a long time to build, and there aren’t that many folks who’ve managed to build something end-to-end while having a full time job.
Even though I’ve already talked through some tactics for building something while working, I thought I’d spend some time on my own personal productivity tips for getting things done.
Maker schedule / Manager schedule
I buy into Paul Graham’s description of makers vs managers. When you’re a maker, you’d like a lot of time in a single block, where you know you aren’t going to be interrupted, so you can build whatever you need to build. When you’re a manager, you have appointments, which you slot into a schedule. Interruptions aren’t just a part of your job, they’re your whole job. Paul apparently managed his startup by working two shifts per day, one as a maker, another as a manager. Later on, at YC, he apparently stuck to the maker schedule for 4 days and went on the manager schedule for 1 (in the form of office hours).
What Paul doesn’t describe is how to negotiate the two types of schedule into your daily life as a regular shmoe. Few of us are fresh college grads without commitments, even though we wish we were!
Here’s my typical schedule, as a lowly PM in my day job and a CEO at night:
7 AM - wake up, eat breakfast, shower. 9 AM - work day starts 12 PM - lunch 6 PM - work day ends 7 PM - dinner 11 PM - bedtime
I have a pretty normal social life for a non-single person in their late 20s / early 30s without kids: most weekend nights are busy in one way or another, usually in social obligations. Most weekday evenings are spent with my partner. I eat and sleep the normal amount.
My average weekday has about 6 hours of meetings, much of it not scheduled or owned by me. Since I keep a very strict schedule (I will not respond to work emails over the weekend) that means I *have to use *the remaining time during the day on day job work: writing emails, prepping documents, and so on.
Ultimately that means I only have two slots to work on Sudopoint: between 7 AM and 9 AM on weekdays, and a couple hours on Sunday nights. Unfortunately, as Paul says:
You can’t write or program well in units of an hour. That’s barely enough time to get started.
So, unless I’m hyper-efficient in using that time, I’m not going to be productive. Let’s get to work.
First, make a list.
I’ve always had a terrible memory, and not much interest in improving it. Why bother? Everything I need to do gets put into a digital document which can remember things far better than I can! So list-making has been big for me for a while. That said, I think its usage is as underrated for makers as it is for surgeons.
Specifically, every week, I make a list of exactly what I want to do for Sudopoint. Since capital requirements in technology are so low as to be insulting the main expense for me is the time I have to dedicate.
I can spend at most 10 hours per week, which means that while I have plenty of cash I am *very time poor. *Describing yourself as “in poverty” makes it much clearer what you must do and how you must organize yourself. What’s a bit surprising to me is how poor so many financially rich and successful people are. Don’t they know how much they’re losing in the flurry of back to back meetings?
If you were cash poor, you would make a budget, figure out what you needed to spend money on, in order by both necessity and price, and work your way down the list. Same goes when you’re time poor. (You’d probably also try to increase your budget by getting more time, but the best I can do so far is yell into the void that 40 hour work weeks should be adjustable.)
Let’s say our list looks something like:
High Priority: Optimize the application, 5 hours High Priority: Talk to potential users, 1 hour to schedule, 2 to participate, 2 for notes Medium Priority: Add testimonial to landing page, 1/2 hour Low Priority: Clean up code with old payment integration, 3 hours
Frankly, this list is terrible. Some quick tactical advice:
- You aren’t making a wish-list, you’re making a list for what to do over the course of the week. Remember Hofstadter’s law. The items on the list will inevitably take longer than you think, and that’s okay. Budget for 7 hours, not 12.
- Lists are not for all items regardless of priority. Remove the medium and low items and stop dreaming. If it was important to work on, those things would be high priority, wouldn’t they?
- Break tasks into units that are smaller than the windows you have to work on them. In my case, no task is allowed to be bigger than 2 hours long, and ideally they are sized at half an hour, so I can do more than one.
Okay, now my list looks something like this:
High Pri: Add basic profiling to diagnose speed issues, 10 min High Pri: Optimize the landing page, 30 min High Pri: Optimize static assets in the app, 1 hour High Pri: Optimize database reads / writes, 30 min
High Pri: Send out emails to 5 people, 15 min High Pri: Schedule meetings with 5 people for > 1 week out, 15 min
That’s much better! We still don’t know exactly which thing to work on, but we have two options, both which seem fairly tractable and straightforward, which lead to subsequent tasks in each subtree.
Make your choice on which to work on based on what feels easiest. Yeah, really. I’m still an ape, not some kind of automaton. Some kinds of work I feel like doing, other types I don’t feel like doing, and I find that the spin-up time for a disagreeable task can be so large that it destroys my morning work session entirely.
Interestingly, I’ve seen analogs for this in other places too. Dave Ramsey, a financial advice author, recommends that folks in debt settle their debts in the order of how much money is on them, from smallest to largest, not which one has the highest interest rate. Dave recognizes that people in debt are humans, and are likely to be more motivated by squashing one debt forever than by paying seemingly never-ending payments on the highest interest rate loan. True, mathematically it’s better to pay off the highest interest rate first. Except the math doesn’t mean much when you get disheartened and quit halfway through.
In other words, the consistency of doing it every day is far more valuable than exactly what’s being done. Ray Bradbury seems to agree, at least as far as writing goes:
If you can write one short story a week — it doesn’t matter what the quality is to start — but at least you’re practicing and at the end of the year you have 52 short stories and I defy you to write 52 bad ones. It can’t be done.
Declare victory early
Okay now you have your task list all set, it’s Monday morning, and instead of reading this blog like you should be doing**every Monday, you’re working on your side gig.
You should think of the tasks on your list as toys to retrieve from the bottom of the swimming pool. You want the tasks to be deep enough that it’s fun and interesting, but not so deep that you run out of oxygen. There is nothing worse than leaving an open task halfway done for tomorrow - it’s not only demotivating, you’re likely to lose whatever short term memory you had, and end up completing it slightly incorrectly.
That means, if it’s 8:30 AM and you just knocked out a task, stop now. Yeah, you have another 30 minutes which you could squeeze something else in. Don’t be tempted. Go burn your time on Reddit or Youtube.
You should be uncharacteristically afraid of starting a task and not finishing it, as that is a textbook sign that you’re procrastinating. You also want to get into the habit of not task-switching halfway through something - you’re either doing it, or you’re goofing off. Never both.
Batch the shallow work
As with any other business, there’s going to be a lot of housekeeping that needs to be done. My main tip is to avoid this shallow work until you absolutely have to do it, and then do lots of it at once.
For me, that shallow work is mostly responding to emails - despite Sudopoint being in the early days, we do have a fair number of folks that we’re gathering feedback from, soliciting ideas, pushing to expand in specific verticals, and so on. Rather than interrupt deep tasks, I instead set aside time to actually run through every email (only once) and either respond or archive it. Usually I do that during lunch, not during the dedicated deep work sessions in the morning.
How to get unstuck
One of the downsides to being the only builder is that sometimes you dive under the water on a fairly straightforward task, and then you come up for air and you find you’re stuck (maybe under a frozen lake? The metaphor is getting weak now). There’s been a few times this has happened at Sudopoint, usually on a part of the project that I just don’t understand quite as well, so I can’t diagnose and debug as effectively.
What some people do, which you should not do, is try a whole bunch of stuff on the Internet and hope one of those things worked. The problem with doing that is if you don’t understand what you did, you won’t be able to debug it later. You’re simply exchanging today’s technical difficulty with tomorrow’s, except that tomorrow’s difficulty is likely to be that much more complex to resolve.
Instead you should buy someone’s expertise. It’s surprisingly cheap to hire these days. For example, I was seeing performance issues with Django (the python web framework I use), but a single hour-long phone call with the head of the Django Software Foundation gave me exact steps to diagnose and fix the problem (thanks Frank!).
Whatever you think Frank’s hourly rate should be, it was undoubtedly cheaper than spending weeks trying to accumulate that knowledge, or worse, trying to hire cheaper developers who might not know anything but pretend they did.
Leverage & Patience
In the end, you have a bunch of problems to solve, and no matter how much talent you have, your ability to solve those problems is mostly a function of your leverage against them and how long you’re willing to work at it. Can you break down the problem into small enough pieces that you can fit it into one of your windows? Does the smaller piece motivate and excite you, or does it seem like homework? Are there places you can buy leverage, rather than needing to depend on your own ability?
Like anyone else, I have my good weeks and bad weeks. But it appears that my productivity tends to correlate with how closely I follow the rules above. If there are clear tasks, of appropriate scope, I naturally gravitate toward them. If there’s a murky mess of problems, but no clear next steps, I spend my week in the fog of confusion, and often drop back into reading the news or watching TV.
In the end, the mass media aren’t going to be on your gravestone, while your project might be. So hop to it.