How to Stress Test your Systems [Technique Tuesdays]
Some simple techniques to make sure your systems are much better.
If you like my writing, I would really appreciate an anonymous testimonial. You can drop it here.
To learn more about the newsletter, check our detailed About Page + FAQs
To help me understand you better, please fill out this anonymous, 2-min survey. If you liked this post, make sure you hit the heart icon in this email.
Recommend this publication to Substack over here
Take the next step by subscribing here
I talk often about robust systems,
But how do you actually build systems that are robust? How can you create software solutions that are robust? How can you decide what makes a system robust, given a particular context? What is the acceptable tradeoff between the simplicity of systems and their robustness? These are all complex questions, ones that you will be paid a lot of money to answer. But to get there, you need to answer a much simpler question first.
What can you do to test whether a software solution is actually robust? Take it live, and see how quickly bug reports pile in? That’s an option. However, for those of you that are not brave in to try this out, here are a few ways you can make test for a system for robustness.
How to check if your Code is Robust
Automated Zombies- Create a few automated accounts, which just move around your system randomly. They try to input values, do various actions, etc. Let them do as they like. These zombies will keep traversing your system, checking various functionality. If you want to be very thorough, you can program a few of them to be erratic, sometimes inputting numbers where you should have strings, etc. This will help you ensure that your system works the way it should, and does not allow for unintended actions. You’d be shocked at how many times your systems are not equipped to deal with extremely random behavior.
Pay the Bangladeshis- Bangladesh is a nation notorious for click farms (other nations like China and India have click farms too, but Bangladesh just got a cool documentary on it). To those of you that don’t know, click farms refer to places where groups of users are paid to click buttons. Their end goal is to artificially increase engagement on platforms. However, you can also use them to get testers en-masse. These people will behave more human-like than your bots, giving you insight into what components might need reinforcement and which parts of your system are not attracting attention.
Break components of your system- How does your system do when you suddenly destroy key parts of your system? This might seem weird, but this will happen more than you’d think. For example, most of you type code on a standard computer, with English as its language. What happens if you input another language or another script entirely? Try it out. You will be surprised how many big Tech products break down when you use another language. Or what happens when you shut down an entire server? Last year, we covered Chaos Engineering here. This is a favorite stress-testing philosophy of Netflix-
We have created Chaos Monkey, a program that randomly chooses a server and disables it during its usual hours of activity. Some will find that crazy, but we could not depend on the random occurrence of an event to test our behavior in the face of the very consequences of this event.
Change your Mindset- Understand that your system will never truly be robust. Chasing that is a foolish quest. However, this doesn’t mean you don’t pursue your robustness goal. It means that you focus. There will be avenues where robustness is more and less important (you want robust payment protocols, and don’t care about a robust UI). Remember you have limited time, developer energy, and money (if you have unlimited money, send some over this way. For charity reasons of course). Pick your battles and focus on the key avenues. Not everything needs equal energy. Way too many people chase straight 7s, instead of picking a few 10s and a few 3s.
A lot of robustness testing will be determined by the context of your solution. This is where domain knowledge comes in key. Keep updated on the best practices and debates in your field, because you will always pick up something interesting. Don’t forget, knowledge is the leverage that you can use to propel yourself.
I created Technology Made Simple using new techniques discovered through tutoring multiple people in top tech firms. The newsletter is designed to help you succeed, saving you from hours wasted on mediocre resources or on the Leetcode grind. Easily find your needs met in one place. I have a 100% satisfaction policy, so you can try it out at no risk to you. Use the button below to get 20% off for up to a whole year. Using this discount will drop the prices-
800 INR (10 USD) → 533 INR (8 USD) per Month
8000 INR (100 USD) → 6400INR (80 USD) per year
If you like my writing, I would really appreciate an anonymous testimonial. You can drop it here.
In the comments below, share what topic you want to focus on. I’d be interested in learning and will cover them. To learn more about the newsletter, check our detailed About Page + FAQs
If you liked this post, make sure you fill out this survey. It’s anonymous and will take 2 minutes of your time. It will help me understand you better, allowing for better content.
https://forms.gle/XfTXSjnC8W2wR9qT9
Stay Woke,
Go kill all,
Devansh <3
Reach out to me on:
Instagram:Â https://www.instagram.com/iseethings404/
Message me on Twitter:Â https://twitter.com/Machine01776819
My LinkedIn:Â https://www.linkedin.com/in/devansh-devansh-516004168/
My content:
Read my articles:Â https://rb.gy/zn1aiu
My YouTube:Â https://rb.gy/88iwdd