Simple is cool

I have been in multiple engineering discussions and tech interviews, one thing I have always seen is complexity. Every proposal is just too complex, everyone is becoming complex brained. The appreciation for simple systems is going away. I don't like it.
In interview calls when the interviewer asks a question, they expect a complex solution. Have we become too resume/promotion brained?
System design questions in interviews are like design a system which can handle 1M RPS, brother, you have 10 users. Your system is never going to hit 1M RPS.
Even if it is, we start simple and then we evolve the system to a much more load resilient system. We don't start with a complex system.
Why did you use a cron job instead of 100 workers processing things in real time?
Why is it even a question? We build simple systems that can easily evolve, why jump directly into a pool of complexity?
I'd be so mad if I get a pager duty call at night and I have to sift through 20 worker log files just to trace an error.
With AI in the picture, our appreciation and our monkey brain should prioritise simple and safe systems instead of complexity. Complexity can be an extension of the system, but the backbone of the system should be simple.
Why do async when things working great in sync? Why use nosql when sql db works well. Why use a specialised search db when simple search works well. Why do things in real time when the customer doesn't really need that data in real time? We've started treating complexity as evidence of engineering competence.
AI has commoditised coding so it has become more important to build simple systems that just do things. Imagine adding complexity to a payment system where you don't understand the code or its flow, while your workers keep engaging with data and generating traces that nobody understands.
If a system can survive staying on a single server then why not just let it stay on the single server, why make it distributed, what value does that add? Yeah, yeah, single point of failure, but it is also single point of revival no?
I am not saying that one should be fearful of complexity. At some point when you get a lot of load and users you will have to build new features, make sure the system can handle the load and etc. etc. But you gotta start simple, and also complexity can be simple, one should do that.
I wonder if part of the problem is that complexity is much easier to demonstrate than simplicity. You can put Kafka, Redis, Kubernetes, and a distributed worker pool on a diagram and explain why each component is there. It looks impressive. But how do you show that you spent three hours thinking about a problem and realised that a cron job and a database query were enough? How do you put that on a resume? How do you get an interviewer to appreciate it?
Somewhere along the way, the ability to introduce sophisticated technology seems to have become a more visible engineering skill than the ability to recognise when you don't need it.
When people tell me that they have stopped looking at code, it makes me wonder, how much verbosity and complexity is being added to the system which was unnecessary, but here we are.
But we can generate code from scratch again and in some hours the whole functionality can be built end to end if you have verifiable tests in your pipeline. Code design is also important, as much as system design, one cannot just go willy nilly and ask the LLM to write code, I do understand that it might not be economically productive to write code now. But one needs to think where it all leads. Unnecessarily complexity.
You can iterate faster, you can build faster, but every time you add a new variable to the equation, you increase complexity, as time passes your system becomes bulky and then you look at it and become sad. Faster is not always better. To be simple you have to deliberately choose simplicity over complexity.
I do agree with Kunal here. You need courage to disagree with your senior. I am not telling you to fight with your senior and end up out of a job. But you can reach a compromise. All you need is courage.
Be brave little soldier.
I know we are entering a new era of software engineering, and some people say that software will be fully automated, and I become a bit sceptical. I am not sure. I don't think so. Handlooms got automated, but now the same people use machines for that.
If you wanna hire such an engineer who prefers simplicity and makes pragmatic decisions, contact me: https://peculiarvivek.com
Y'all can read below literature, I recommend it.
Choose Boring Technology — Dan McKinley (2015)
https://mcfunley.com/choose-boring-technologyNo Silver Bullet: Essence and Accidents of Software Engineering — Fred Brooks (1986)
https://doc.magnasistemas.com.br/apendices/no-silver-bullets/Worse Is Better — Richard Gabriel
https://www.cs.wm.edu/~qxlixx/teaching/cs780\_17s/papers/worse-is-better.htmlWorse Is Better — Essays and background — Richard Gabriel
https://www.dreamsongs.com/WorseIsBetter.html



