Learn from one developer’s experiences overcoming natural disasters to survive in a digital world.
Environmental disasters threaten physical infrastructure, software development and business continuity in an interconnected digital world.
In this post, I share my experience with environmental challenges over the last few years and how I have dealt with them. I encourage you to consider these issues in your own life. We can build more resilient software systems that withstand unexpected environmental challenges by learning from our past experiences with power outages, internet disruptions and infrastructure failures.
In the last 10 years, my region has experienced extreme weather like cyclones and the worst flood in 80 years. The flood left me without internet, electricity or running water for several days.
Just think of the various natural disasters that could unexpectedly affect us in different areas of the planet—tsunamis, tornadoes, earthquakes, flooding, etc. Of course these sorts of events can disrupt “business as usual.” But are there ways to mitigate long-term impacts to economic and social development when disaster strikes? How can we prepare for disaster so that when the urgencies settle down we can function even if it’s sub-optimal.
Back in 2019, I had on-premises servers. When an extratropical cyclone hit our area, we were without electricity for five days, and all systems shut down.
The cloud wasn’t so common then, but I migrated my systems to the cloud to avoid future disruptions.
Then in 2024, there was a severe flood in my state in Brazil, and my office had no electricity for 27 days, while at home I had no running water for 14 days and no internet access.
We faced complete chaos, not knowing how to deal with the situation or how long it would last, and in the end it was worse than we could have expected. It also affected commerce, disrupting our daily routines while we waited for the water levels to go down. Donations from other Brazilian states and international sources prevented the situation from worsening. Still today, while I write this post in 2025, some people do not have a home to return to after this flood.
While this was happening, thanks to my experience in 2019, all my business systems were already operating on cloud infrastructure, minimizing the impact on my business. I am grateful I had a USB wireless adapter to connect my PC to the smart phone 5G signal in the midst of all this, so I could work on some projects and do consultancy without too much interference.
How would you fare if you were without internet? What about power? Do you have ways to maintain your business in case of extenuating circumstances?
Developing software without internet infrastructure is increasingly challenging, since so many modern activities rely on the internet, with its connected services and servers on cloud or on-premises. I try to keep a copy of my cloud infrastructure (databases and CDNs) so that I can continue working without the internet. But this is not a typical case. I know some systems need a massive infrastructure to operate a single API. You may need offline access to documentation, APIs and other software development infrastructure.
What is your plan if you have a ransomware attack? Ransomware can be compared to the disruption of physical infrastructure or a power outage. And what if your on-premises server goes down? Do you have a copy or systems running on a redundant cloud server like Azure, AWS, Google Cloud or Virtual Private Server (VPS) in a secure location? This scenario has a high cost to maintain and should be less than what you would lose if you lost your data, access and systems.
Having copies of files is important, but so is knowing the backup’s last version and where it is stored.
Below, I suggest a template to register your backup copies:
Date | Coordinator | Storage name | Version |
---|---|---|---|
04-15-2025 | John Doe | VPS CLOUD XYZ | 1 |
04-16-2025 | John Doe | Server 01 | 2 |
We need a documented guide to restore our systems and services to respond immediately to a critical event. This guide should include a list of services, URLs, users, passwords and how to recover lost credentials. Keep printed versions in multiple physical locations, with clear recovery instructions that your team can easily access and regularly update—and it must be easy for the recovery team to access.
Below, I suggest a template to register services to be restored:
Service | URL | User name | Password | Recovery e-mail |
---|---|---|---|---|
VPS | Myvps.com | VPSUSER | Pa$$Word | recover@myvps.com |
To help us be ready, we can learn from chaos engineering:
“Chaos engineering can be used to achieve resilience against infrastructure, network, and application failures.”
This discipline helps us follow the leaders in this technology, like Google and Netflix, to create tools that help us prevent and learn how to deal with disasters. And this is not only in the software category; we can unplug certain services in use and observe how we will deal with them while they are down or what we will do if they fail. I recommend doing this during off-peak hours.
Last month, my ISP’s cloud servers went down due to a configuration mistake. So, I learned something new: I need a second cloud to substitute and a development environment with tags/constants OFF_LINE to continue working. This is a journey of learning through experience. There’s no one-size-fits-all solution for addressing these challenges.
Sample of OFF_LINE constant in Visual Studio projects:
OFF_LINE constant in Visual Studio
The important thing is to learn from the experience, avoid new risks in the future and keep your business running smoothly. I was lucky to pass these events one at a time, and I hope you can learn from my shared experiences too.
Jefferson S. Motta is a senior software developer, IT consultant and system analyst from Brazil, developing in the .NET platform since 2011. Creator of www.Advocati.NET, since 1997, a CRM for Brazilian Law Firms. He enjoys being with family and petting his cats in his free time. You can follow him on LinkedIn and GitHub.