This AI Agent Writes Its Own Story
A software development experience building an autonomous AI agent using AI coding and brainstorming assistants - the benefits, challenges, and insights gained
This post is just one part of my Time Management series. I really recommend you read the whole series if you have time, but I’ll do my best to make this part self-contained.
Important disclaimers are also included there.
Remember the Google Inbox app? Back in 2015, it was new, fresh, clean and bold… only to end up in Google’s product graveyard when it was discontinued in 2019. Ex-Google engineers seem to have revived it with Shortwave, but I haven’t gotten around to trying it out yet.
Google’s Inbox, courtesy of Inbox Dark
Anyway, Inbox was perfect for me. It gave me a clear sense of what I still needed to do, and I was able to start my new Inbox experience by simply archiving everything I’d ever done! One pro-tip: You can still archive all messages in Gmail, just not as easily.
The effect of clicking “Done”. I personally find it very satisfying to get things done and get them out of my sight. Does it matter how big the piece of work was? No, not at all. Even when archiving spam messages, clicking the “Done” button is very satisfying.
Which brings me to the topic of archiving email. IN MY OPINION there’s really no reason not to archive emails (in Gmail, that basically just means moving them to the All Mail folder). The emails aren’t deleted, they’re just in the archive – you can still search them, you can still go through them chronologically if you want, you can still delete them, categorize them and mark them as spam or reply to them. I assume Google compresses the archive under the hood, but that’s where the differences between your inbox folder and your archive end.
So what's the big deal then?
If all your emails are in the archive, your inbox is empty. If you work to try and keep it at zero, your inbox turns into a work queue. The emails come in, get processed, marked as done (archived), and you move on… until you get the inbox level to zero. Many email clients now offer archiving features, and I can show you some examples from the tools I use.
Inbox Zero in Airmail
Inbox Zero in Gmail
Now if you think that Inbox Zero is a fetish or that it’s just about the satisfaction of clicking “done”, I have to disagree – it’s about organizing work without having to use TODO lists like Todoist, Trello, Tasks and others. And it’s not even just about the inbox or emails. This applies to all things, everywhere. Getting your TODO list to zero is the ultimate goal! To better understand what I’m referring to, check out the rest of the posts in my Time Management series.
The first thing you should do is unsubscribe from all newsletters. There’s a link in the footer of the email that asks you to secretly unsubscribe. However, there are things you can’t unsubscribe from – for such cases I use email filters. They’re now available in most email clients and with most email providers; see an example below.
Gmail Filters (Settings, then Filters)
If I don’t have enough time (or I’m not motivated enough) to get things done, I’ve made it a rule to decide immediately if and when I’ll get back to them. Building on the other ideas in this series… I’m usually quite honest with myself about my existing commitments and am likely to decline new tasks. In those cases, I communicate it immediately and archive the email. Sometimes, however, I plan to come back to things – and then I snooze things for later. The simplest example of this is when I’m at the store (which takes less than 2 hours) and I can therefore delay responding for 2 hours. Most communication tools these days have the snooze feature built in, so I use it.
Pro-tip: Snooze notifications from any app
My main argument here is to use the snooze feature instead of keeping things in the inbox, because the latter turns the inbox into a black hole backlog. Just get rid of things if you don’t want to do them right away or at all. And yes, I apply the same policy to all my chats, messengers, emails and other communications, whether professional or personal – all of it is at inbox zero.
The biggest decluttering hack I use is the SARA policy.
SARA stands for:
I just made that up. But I really do one of those four actions on every incoming task, everywhere.
For everything else, I refer to the prioritization framework described elsewhere in this series. My most important principle is that I really tackle things as they come in, and only tackle them once. I want them to disappear from my inbox. Most responses from me will be quick, but the other side may get stuck – I try to anticipate such cases and don’t click “Send and Archive”, but “Send and Snooze” instead – to remind me of the follow-up.
To “snooze” things in real life, I put things in front of me. Literally. For example, I put a letter I need to send on the door handle, or put the trash in the middle of the room… Going back to the same principle – don’t put anything on hold indefinitely; do it now, give it to someone else, postpone it to a specific time, or reject it.
As you’ve seen so far, it’s hard to clean up your work inbox, especially if you only have one (black hole) backlog… but luckily, there are plenty of software tools to help you organize. For my personal life, there’s not much team or process selection – it’s mostly chaos and we’re just supposed to adapt. 😅
Buy at work, I like to work in agile and lean teams. And by that I don’t mean obsessively or blindly following agile implementations like Scrum or Kanban. To be clear: I’ve worked in well-organized Scrum and Kanban teams, but that’s not what I mean when I say “agile” and “lean” here. I’m mainly referring to the dynamic nature of such organizations… and this can be achieved through Scrum or Kanban (but doesn’t have to be).
Let’s briefly remind ourselves again what each term means.
And that's really all it is.
Scrum and Kanban are simply the two most popular methodologies of dozens defined today.
In no particular order, I’ll list some of the tools that most agile teams use today. To be clear, not all of these tools are useful and not all of them promote the agile/lean mindset. In fact, I believe some of the tools promote slowness and a less dynamic work style (e.g. JIRA). Behind others are simply decadent organizations that apply dark usability patterns to get you to use their tools (e.g. Microsoft Teams, Facebook Workplace). But most of them made it to my list because of their general popularity.
Raycast gets a special mention, even though I’ve already mentioned it in my post on How to prepare a Mac for Engineering work ⤴️. This tool replaces Spotlight on a Mac. It closes so many items from my work queue with just 2-3 keystrokes, it’s crazy. Clipboard Managers, Google Translate, Homebrew, Spotify, formatters, encoders/decoders and many other tools are available as plugin downloads from their store.
Calendar integration, one of my absolute favorites
When I organize my personal life, I add my work account as an invitee to all reminders and calendar appointments (doctor, embassy, cinema, etc.). I have such invitations automatically cloned into our family calendar, so that my wife can “benefit” (she says: 🙄) from my organizational skills too – that’s how I don’t miss anything and am always informed about personal and work events. It’s all neatly integrated into Raycast and just a couple of keystrokes away!
Here’s my stat sheet for the last half of this year:
Raycast stat sheet
Any engineer will tell you – if you can automate something, invest time to automate it. The only thing you can do better is to remove it! 😅
Never spend 10 minutes doing something manually when you can spend 3 days automating it!
Every 10X Engineer Ever
When we talk about automation, there are a lot of things you can do. At this point, I’d like to give a shout out to our friendly Slack bot, GO
, who helps us with so many things around CI/CD and process automation. Getting rid of tasks, remember? You’ll have to write this code yourself, of course, but maybe you also have someone like Tushar who’s willing to spend a lot of time on it to get it done right!
Here are some examples of what GO does for us.
(note: it’s mostly about process automation)
GO organizing our team duties
GO pushing our release train
When this stuff is coming in a bot message, it allows cross-posting and additional communication if needed in the thread. So yes, just automate everything.
It’s rough and meetings can be a huge productivity killer. The best meeting is no meeting. And by that I don’t mean you turn down meeting invitations for no reason – I mean you weigh whether or not you really need a meeting. Maybe you can delegate it to someone, maybe you don’t have an agenda, maybe you don’t have topics to discuss, or maybe it can be a chat message… then it’s okay to skip it. Meetings without a clear agenda (in the title or description) shouldn’t happen anyway, because it’s impossible to prepare for them, and therefore much of the meeting is spent learning about the context – rather than problem solving.
To reduce the number of meetings in a day, I use Google Calendar’s Focus Time and reduce my Interviewing Schedule availability. At the same time, my Work Hours are also always enabled so I don’t get meetings after a certain time of day. My lunch break is also scheduled every day. This setting automatically rejects so many meetings that I’m worried to give the exact number here. 😅
Other than that, all the teams I work with have a Meeting-free day and an “Agile day”. The former is pretty self-explanatory – a clear blocker in the calendar for the whole team, throughout the day – while the latter is something we’ve come to after experimentation. For our Agile day, we try to do all agile ceremonies except the daily standups on a single day, for example every other Monday. This involves meetings like product grooming, tech refinement, retrospective, roadmap and cost risk reviews, etc. Having a dedicated Agile day ensures that engineers have few interruptions during the week and still have all the ceremonies that ensure a steady flow of high quality work.
I invite all participants and heavily color code my calendar, both for my personal and work calendar. If it’s not on the calendar, it doesn’t happen. This may seem like too much, but it really helps me prioritize and plan my days. Check it out:
Color-coded calendar for a real week in September
So I can see at a glance what my day will look like. I even import my personal calendar into the same view (with a different color) to see what’s coming up after work, because sometimes I go to the office to work when my after-work event is closer to the office.
At the end of each day, take 15 minutes to look at your calendar for the next day and discard anything you won’t do. Try to balance different colors that day. Trust me, you don’t want to do the same type of thing all day… variety is good.
And since time is usually at a premium, it’s best to schedule a set time on your calendar for your weekly or bi-weekly recurring 1:1 meetings. That way, you can be sure you’ll always have a window of time to talk about growth and sensitive issues, whether it’s with your direct reports or your supervisor.
Mastering something is not about doing 4000 things – it’s about doing 12 things 4000 times
And I think that’s quite right. I think the overall theme of this post is to give some tips on how to reduce the burden as much as possible by thoughtfully organizing TODO lists, and how to get rid of tasks as quickly as possible. Focus on what matters, on those 12 things.
But, ironically, the more you work on automating and getting rid of tasks quickly, the less visible your work becomes. 😬
That’s pretty annoying if you’re trying to showcase your accomplishments and/or share knowledge – and it’s one of the reasons I’m writing this article. I’ve already mentioned in other parts of my Time Management series how I track and share my work (a separate Discovery board, etc.)… so below you’ll find some really nice resources that have helped me put things in perspective.
Recommended reading on these topics: