The short answer is yes. The longer answer is, it depends on the engineer.

Note: I wrote this answer a few years ago on Quora, and since then a few things have changed…

It Depends On The Software Engineer

Engineers aren’t widgets and their skills are specialized.

Scaling an application to a million users is a very specialized kind of skill set. Not every developer has it.

Even many senior developers don’t.

Structure Matters… More Than Almost Anything

Part of what it takes to scale an application is a good understanding of your infrastructure and what bottlenecks you are going to have in your system. Also, tooling doesn’t make as much difference as developers think it does.

The other part of what it takes to scale an application is really a question of what kind of application you have. A content heavy app is different to scale than an online multiplayer game. So, that must be taken into consideration.

But more than all the things above, nailing the architecture for the unique combination of problem, technology, solution, infrastructure, and resources is almost 100% make or break on a project with a million or more users.

And where can you even go to learn this stuff?

It Takes Battle Scars

A lot of what scaling comes down to is thoughtfulness and experience. It isn’t even about having a lot of hardware or servers.

Scaling is a skill. You build it over time.

I am confident that on certain types of applications, I could scale them to a million users in a reasonable period of time if given the appropriate resources. In other applications, that is not the case. Issues of concurrency, cache-ability, and what a million users actually means for the app in question makes all the difference in the world.

It’s taken me over 15 years of industry experience to get to that level of confidence. I’m guessing in another decade I will learn enough to be even more confident in some parts of architecture and scaling, and less confident in other parts (just knowing what will go wrong in advance can be nightmare fuel).

A Parting Thought

Now, one last parting thought. A million users is not success. Not by itself.

Success is something you define for your own projects. I’ve worked on projects that are very profitable and successful with dozens or hundreds of customers and projects with hundreds of thousands, maybe millions of users (over some period of time) that don’t turn a profit at all.

Ultimately, success is what you define it to be. Sometimes that means a million users or a billion users. Most of the time it doesn’t.

It takes a really good engineer to talk the boss off the ledge of chasing a million users. A lot of great companies die in the everlasting quest of “scaling”.