After four fun and exciting years, I made the difficult decision to leave Robinhood in mid-October of this year (2021) and start a productivity company called General Task. Our first product is a consolidated to-do list that imports and auto-prioritizes your emails, messages, tasks, and meetings. I'm very excited to be working on this, and in this post I'll explain why.
Time management is incredibly important
I've come to believe that time management is by far the most important component of accomplishing anything hard. I've found this to be true in my own life and operating under this assumption has enabled me to achieve more than I would have otherwise.
I developed this belief several years ago when I asked myself a rather silly question: What is the difference between me and a professional baseball player? Why are they so good at baseball when I (and most other people) suck at it? And when I thought about it, I realized that yes, natural ability does matter, but the bigger difference is that a professional baseball player has dedicated their life to the sport. They decided years ago, probably when they were very young, to spend many hours every day training and practicing baseball, and they have consistently worked at it ever since. And I had decided to do something else with my time instead. It wasn't that it was impossible for me to be a professional baseball player, it's that I chose not to be because I wanted to be something else. This realization has empowered me. Now, when I think of my ambitious goals for the future, I don't wonder if I'll be able to accomplish them; instead, I ask myself what it will take, make a plan and then start doing it. If I keep working hard over time, I have faith I can accomplish my most ambitious goals.
I have found this to be true in my own experience. When I think back to everything I've accomplished so far in my life, I realize it was all rooted in how I used my time. When I was in elementary school, I was bad at nearly everything. I mean it. I never paid attention in school or did my work, I was behind everyone else in class on our arithmetic tests, and I was bad at sports and hated going to my swim practices. But my mom wouldn't settle for that. Once she found out how far behind I was, she bought math flash cards and drilled me on my arithmetic every night until I started getting better. She made sure I did all my homework and kept going to swim practice. And over time, even though I was bad at all of those things, I got better over time because of practice and repetition. By the time I got to high school, I had transformed into one of the best students in my class and one of the fastest swimmers on my swim team, and it was all because of how I (and my mom!) used my time.
It's a similar story with me for Robinhood. The reason I was able to get an internship at Robinhood was not because I was smart but because I had previously chosen to spend a lot of time in high school working on side projects that happened to be in the same backend language and web framework that Robinhood used. And the reason I was able to keep working there while finishing my college degree was because I prioritized my time ruthlessly and avoided doing anything unnecessary (like going to most of my classes, lol), not because I have some special ability to get more work done than a normal person.
But maybe good time management should be considered a special ability! After all, it enables you to accomplish more every day than most other people, and helps you achieve your most ambitious goals. It kinda even sounds like a superpower, one that anyone can learn to harness. What I began to notice in my career as a software engineer, however, is that this incredibly important skill is often neglected, both by individuals and by businesses.
Software engineers' time is not managed effectively
Software engineers generally do not make great use of their time at work. Even at an innovative, well-run company like Robinhood, there was a huge difference between how I wish I spent my time as a software engineer and how I usually spent my time as a software engineer.
In my ideal day, I would spend the vast majority of my day coding in long work blocks, taking periodic breaks to check Slack and review code. I would also spend some time every day writing documentation, watching tech talks, and otherwise developing my skills. Now compare that to a typical real day, where I open my computer to an overwhelming amount of unread emails, Slack notifications and meetings spread throughout the day. After I spend 10-30 minutes catching up on all my notifications, my initial idealized plan for the day has to completely change to accommodate this new information. As I go through my day, I get constantly pinged on Slack and usually check my notifications immediately because it's often urgent. Any time I can't deal with it immediately, I need to copy the Slack message into my to-do list to make sure I don't forget about it. I feel pressure to ship my code since that's our main output as engineers and so I usually never end up spending any time writing documentation or watching tech talks. I don't prioritize reviewing code and I often need to wait for days before my code is reviewed. My real day is chaotic, full of interruptions and new asks of my time, and it is my sole responsibility to decide what to do at each moment in the day. I consider myself decent at time management but still I know I don't do a good job at this: I tend to spend too much time shitposting on Slack and not enough time reviewing code or writing documentation, and I probably also go to more meetings than I need to go to.
Software companies don't seem to be able to do much to make things better. For example, when management hears that there are too many meetings, the usual response is to ask nicely and repeatedly for people to schedule fewer meetings. But there's usually no enforcement because of how tedious it would be to regularly review every meeting at an entire company, and so not much changes. The same is often true for any kind of proposed change to how employees prioritize their time: without follow through (which is often impractical), not much really changes, and employees continue to use their best judgment to choose what to do.
That doesn't seem right. Software engineers are in extremely high demand and their time is very valuable. Yet this valuable time often seems to be more poorly managed than that of most blue collar workers. I don't think it has to be this way, and that's where General Task comes in.
General Task can improve time management
On a random October morning last year, I opened my work laptop and saw what I described earlier: an overwhelming number of notifications across several different services. As I began to feel decision paralysis and realized with some frustration that my initial plan for the day was not going to work, I thought to myself, "I wish my computer could just choose something for me to do so I wouldn't have to choose." I started thinking about that more and more, especially whenever I felt overwhelmed at work (more often than I'd like to admit).
I started to imagine a tool that could pull in my Slack messages, emails, calendar events, and JIRA tasks into a priority queue that I could just go through top to bottom. Instead of copying a Slack message I can't handle immediately into my to-do list, the Slack message would already be in my to-do list—I could simply drag it further down in the list if I don't want to do it yet. And I wouldn't need to check five different tools to figure out everything on my plate for the day—I could just check this one tool instead and it would already have my plan for the day figured out. And I could interact with all my work using the same keyboard shortcuts and fast user interface instead of dealing with the clunky interfaces of many enterprise software tools (cough JIRA cough). And because the tool imports work from other sources, I could use it at work with the tools my team already uses. I began to think to myself "I wish I had this" often at work, and got excited about the potential for this tool to help me get more done at work while also feeling less overwhelmed.
Initially, I didn't think too seriously about actually working on this idea—I have ideas all the time and most of them are bad, so I thought I'd just add this one to the list and move on. Plus, it just seemed like a cool thing that maybe I could use and share with some coworkers, not a potential business idea. But still, I couldn't get this idea out of my head, especially whenever I felt overwhelmed at work. And then suddenly, it hit me: this can be about much more than just helping individuals sort through their work better.
Imagine if everyone at a software company used an auto-prioritized list of their work. Now, the company can get visibility at a level that isn't feasible now. Questions like "how disruptive are our on-call rotations across different teams?" or "why did developer productivity drop last quarter?" become much easier to answer when you have access to activity related to pull requests, tasks, messages, meetings and emails all in one place, surfaced in an easy to understand manner. And rather than reactively responding to employee feedback about oncall burden, unnecessary meetings, etc, companies are able to understand in real time exactly how their employees are spending their time and proactively address any issues.
Say a company using this software notices an issue. Maybe code review is taking too long and slowing down developer velocity. Instead of calling a meeting and asking nicely and repeatedly for people to review code faster, the company can instead raise the priority of code review, and make it appear higher by default in everyone's consolidated to-do list. A few clicks later, the average code review time at the company drops by half. No meetings or follow up needed. Companies using this software would finally have the tools they need in order to better utilize the valuable time of software engineers and other employees.
I said earlier that the ability to effectively manage time is almost a superpower. Imagine if that superpower could be unlocked for organizations, not just individuals. I think that could be a valuable business, and I'm calling it General Task.
I hope you find this idea exciting too! If you do, you can join the waitlist at the link below and stay tuned for more updates. If not, I'd love your feedback.