Yongseok's Blog
Back
4 min read
Simplicity Is the Hardest Thing

This is the video I placed at the top. It’s Elon Musk talking about his plans for Starship.
They plan to build six boosters and Starships within this year,
and construct four “Mechazilla” launch towers — capable of catching rockets mid-air — by next year.

They also plan to attempt catching a rocket with Mechazilla before the year is out.
As I reflected on the work I’ve done in the first half of this year and watched this video, I couldn’t help but think: How are they able to accomplish so much in such a short time? (Of course, the scale and other factors are different, but what they’re doing is astonishing just to hear about.)

Simplicity Is the Hardest Thing

3rd Generation Raptor Engine

As shown in the video, the Raptor engine has already reached its third generation. Just from looking at the images, it’s become remarkably simpler in appearance. Elon mentioned that while it looks simple on the outside, a great deal of actual simplification has gone into it as well.
That much complexity is hidden beneath the surface. To achieve this, they removed the heat shield and integrated functions internally.

An interview from 2021.

I think this is a great example that reflects the engineering principles he always talks about.

I found a well-organized summary and have included it here.

Aerospace engineering and programming are different fields, but I believe Elon’s engineering principles — coming from someone who was also a developer — are just as applicable to software engineers.
Each point is independently important, but the order of these principles matters just as much.

When developing software or solving algorithm problems, I often struggle trying to create something perfect from the very start. Looking back, I think there were a few reasons for this:

  • Seeing already-completed code (libraries, previous codebases, etc.) created the illusion that such polished forms are born fully formed from the beginning
  • Trying to write perfect code from the outset leads to spending infinite amounts of time

I believe that simple code contains far more thought and engineering than it appears.
I can’t say simplicity is always best, but I think such code doesn’t just appear out of nowhere — it’s born through a process of accumulated thought and time being compressed together.

Is complex code bad?
I’d say it just hasn’t gone through the process yet.

Complex code is not bad.
At the very least, that’s how we should think about it. Rather than fixating on the current state of complexity, we should focus on the process of making things simpler.

Don’t fear complexity — focus on the process, and enjoy it.