The middle-class Architecture
kailash Sharma
Ex-SonyLiv | Ex-BrowserStack | Ex-HotStar | Ex-MxPlayer | Ex-Amazon | Build games | Build Banking Solutions | Build Mobile Platform, App & Solution
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.
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.
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
领英推荐
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.?
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.
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
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.
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...??
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!!
Engineering Manager, Software at Booking.com
3 年kailash Sharma Loved the simple visualization showing the problem solving approach of junior/senior/principal
Building TransBnk - Transaction Banking Platform | Building a fitter version of me
3 年Good read...............!! Resonates with my principle of keeping it simple and functional!!!