Back in February 2011, I was 3 months into my first job. I was drafting an email on Microsoft Outlook which was the standard at the company. I had just completed a task that I was assigned. Eager to make a mark, I took time to draft the perfect email to send the status of the task to the senior management.

After re-reading the draft for the fifth time, I hit send. And then I realized… I forgot to attach the file I said I’ve attached.

Sitting there sweating profusely, I started typing a follow up with the attachment.

I now realize it’s a common mistake but back then, I was young and it was my first job.

Once I sent the follow up email, I appreciated how useful the “Forgot attachment?” feature was that Gmail had introduced a year or so back (I believe in 2010). It’s a small feature that probably took them less than a few days to implement but it’s definitely a feature that saved many embarrassing moments for the users.

I wanted that feature on Outlook. At the time, I was primarily writing VBA macros to automate Excel reports. I found that VBA macros work well across the entire Microsoft Office suite of products. So maybe I could build my own “Forgot your attachment?”

If Claude Code was available back then or even if I had a strong coding experience, this would have been easy. I spent over a couple of days to come up with the perfect solution.

It worked great. I loved it. I kept using it. Few days went by. A colleague made the same mistake that I did.

My immediate thought: My team, and in fact, everyone at the company would benefit from having this script.

I gave this script to my friend and gave him instructions to add it to his Outlook. He was excited when he tried a test email and it flagged the missing attachment.

I sent an email to the IT admin team that generally approves and installs software on the employee machines. I explained this practical tool and asked them if it would be possible to install it on people’s machine.

They emailed back shortly. They said they wouldn’t do it since it would be a security risk. If that was not disappointing to hear, they also said I should remove it from my computer (I did not).

This is a large company with over 100,000 employees. It was obvious they wouldn’t do it. I was naive to think that they would. Even if I wanted to get it to my team members who wanted it, the IT admin team wouldn’t allow that. I let it go, didn’t think much of it.

The contrast became clear years later when I joined an early-stage startup. Every day, for the first few months, I would find opportunities to streamline processes, things that could be automated.

I told my CEO about some of the things that can be automated and she told me to do it.

I realized that at startups, you can just do things.

If I find anything that can be improved, even if it means sending a script that everyone in my team can use, it can be done, often without asking for any approval, and implemented almost immediately.

This might look like a criticism of large companies. It is not.

What you do when you are 10 people won’t be possible when you are 100, let alone 100,000. Things will be slow, and it’s for a good reason.

Early stage startups cannot afford to be slow. Their advantage is moving fast, with employees having complete agency.

What this means to you and me, as an employee, is how much you value agency.

If you are someone who likes to move fast, experiment, break things, and innovate, a startup is likely the right place for you.

On the other hand, if you are someone who likes processes (I’m not going to say red tape) and values correctness even if it means everything moves slow, you will excel at a large company.

Agency at work is a significant factor in choosing between startups and a large company.