The middle-class Architecture
Dedicated to all the middle class Engineers

The middle-class Architecture

Don't try to apply logic when you can explain things with sheer stupidity.

I was thirteen when I visited the Taj Mahal. The symbol of Love and pride for India. It is a fascinating structure, a true engineering marvel but what bugged me was, Why the hell would someone want to spend so much money on this. What's the use? Of Course many around me debate for its timeless beauty, symbol of love, message to the world blah blah blah but no one answers my question, “Bhai, Begum to chal basi, to dikhana kisko tha?”. The right argument I found is that the king had a lot of money and he doesn't want anyone to replicate it. Well, it makes sense.

No alt text provided for this image
The most expensive social media event ever created to express love. And you think sharing your marriage anniversery on FB and Insta you are making your love immortal?

The second story is about the time when I was looking forward to buying my first car. I am bike enthusiastic, never been a car lover. My requirements were very simple. I need a car which takes me from A to B, should be reliable, at least ~1200 CC and affordable in my salary. Looking at this, I zeroed down to Ritz. By no means it is the best choice among Auto lovers and nor do I want to defend it. But it was ticking my criteria? Now, many of my friends give me all sorts of reasons to buy punto or polo. They told me it is a 1.2 liter, 3-cylinder, 12 valves TSI engine that produces a maximum power of 74 bhp at 5400 rpm and peak torque of 110 Nm at 3750. Anyway, I finally bought a Ritz which I have been driving for the last 10 years without any issue. Drive like a charm and I am still alive even though there is almost zero safety in the car.?

Chaces of Hotwheel car surviving the accident is much higher than maruti

This is me, middle-class men, who always look for value for money. I followed the same philosophy throughout in whatever I do. In Fact, I have written these rules to make decisions.

  1. It should be simple and no mumbo jumbo?
  2. It should do defined work for me?
  3. It should be under my budget.?
  4. I don't want to know what Sharma Ji son thought or bought

Now back to the topic

Nowadays, all want to use ML, AI, Neuron networks, Deep Learning, Clone technology, blackhole energy harvesting, and whatnot for solving simple problems. Well good for them, but you know what, when NGINX doesn't work, simply SSH into the machine and check CPU load, Mem and processes. You don't need ML for that. It serves the purpose. You want to write those perfect models and slim microservices, well monolithic was serving thousands of customers from eternity without any issues. React programming is not the solution for all the page load issues. You don't need an ML algorithm to tell how many machines you need in production at runtime. You know what? you can know it beforehand. It's 5 maybe 8. How? because you can check logs, time-series DB to know how many requests will come and use simple arithmetics to predict. Not so great engineering, right?

So, What made me write this blog is to bring clarity to engineers who think, they are not doing great work unless they are not using some complex technology in their system. They feel their system is not unique or artistic enough to brag about. Well, let me tell you a simple fact that it is difficult for businesses to make a profit in the internet age without scalability and you can not scale the system if it is so-called unique and complex.

If your architecture is unique, chances are it will lands in museum.

The point is whenever I design a system I think in a middle-class way. I can scale it and it does what It suppose to do, rather than making it in the next science journal magazine research project.

There are more 1, 2 and 3 BHK flats than Taj Mahal in the world.?

So how to build a scalable system. Well, Be a middle-class person and keep the below point in mind.

Keep it simple

To scale, you need to make it predictable. Why? because you want to make sure it behaves as expected when you replicate it. To give an analogy simply look at the brick in the wall, it is predictable in dimension and strength. So it is easier for anyone to build larger and bigger walls without much stress. So how to keep things simple, Try asking the below question

  • Can I explain this shit in under 1 minute to any ordinary Homosapien?
  • Can I build an assembly line or do Ctrl +c and Ctrl + v for mass production?
  • If I die after creating this cosmos, Will it become the Ramanujan theorem, or can any engineer debug this without any assistance?

No alt text provided for this image
It always good to know science but engineering work

Know Your Requirement

Imagine casting Hritik Roshan in Gang of wasseypur. No doubt Hritik is a good actor but Faizal charm is different from Krrish. It is very important to differentiate between what you want and what you wish for. So how to do it? Divide your requirements into three phases.?

  • What are "Must be done". You will get fired without doing this.
  • What are "Should be done". You might get a good rating in your performance assessment.
  • What are "Can be done". They will make you CEO if you achieve them

No alt text provided for this image
They don't have any dance song in movie.

Know your budget

Resources are expensive and access to them is a constraint for the middle-class person. They can only be deployed for a certain time, in a certain way at a certain place. For eg. Sharing your Maruti to receive guests but your Jabalpur wale Fufaji and NRI uncle landing on the same day and same time at the airport. Where are you going to deploy a Maruti 800 for picking up guests? You need to balance out, right? Constraint might be in the form of Money, Time, people, etc. So, How will you know what is the right budget and how you are spending the right resources.?Ask questions as below.

  • Right down metrics to track ROI and how it will change over the period of time?
  • What will be the return on capital cost in the future?
  • What is the risk involved in losing the resource invested?

No alt text provided for this image

Know your party

You don't have to attend every party in town. Following the trend is good but you don't need to use every new technology in the market. You don’t need a perfect system, you need a system that works. Having new tech in a system not only brings additional operational overhead but also requires to relook into training, hiring, management, cost, etc.? How to know if you are not following trends. Ask this to yourself

  • How it will solve my problem more efficient way in the same timeframe?
  • Am I killing birds with a Tank?
  • How is other tech going to react to this new tech?

No alt text provided for this image


Eventualy we all end up in complex system, but smart people make effort to keep it simple

Do let me know if you want me to write on each of these points in more detail.

Ritesh Mukim

Engineer | JavaScript | ReactJS | NodeJS | AWS

3 年

Great piece! I loved the way you simplified things to such an extent that one will surely start questioning there life choices...??

Aliakbar Attarwala

Design leadership at Icertis. Prev BrowserStack, BookMyShow. Design, Engineering & Product ??

3 年

Really refreshing to read! I really connected with - "React programming is not the solution for all the page load issues" ?????? ??

Loved it with great analogies!!

Durgesh Chaporkar

Engineering Manager, Software at Booking.com

3 年

kailash Sharma Loved the simple visualization showing the problem solving approach of junior/senior/principal

Lavin Kotian

Building TransBnk - Transaction Banking Platform | Building a fitter version of me

3 年

Good read...............!! Resonates with my principle of keeping it simple and functional!!!

要查看或添加评论,请登录

社区洞察

其他会员也浏览了