Skip to content
experience

One year after the twelve days: what I changed in how I work

Arash Karimi@arash_403

July 4, 2026 · 2 min read

Last June, for twelve days, there was a war over my head. I do not want to explain Iran in one post, I cannot, and people who ask me to do it in one comment are usually not asking a real question. I only want to write what happened to my work, because many developers in many countries may need this one day, and I hope they never do.

The first nights we heard explosions in Tehran. My parents went to my aunt in the north, like half of the city tried to do, the roads were full. I stayed some days because our servers and our on-call were here, which now I think was stupid. Then the international internet was almost completely cut for most of a week. Domestic sites worked. Google did not, GitHub did not, our monitoring SaaS did not, the Go module proxy did not. Our app worked inside the country, because our servers are inside, but we could not build anything new.

My friend, it was so much hard to explain to my manager why I cannot "just push the fix". The fix needed one dependency which was not in our cache.

What I changed, one year later

  • Go modules: we run Athens as a module proxy on our own server. Everything we use is cached. GOPROXY points to it first.
  • npm: Verdaccio, same idea. It proxies the public registry and keeps every tarball we ever installed.
  • apt: apt-cacher-ng for our Debian servers and developer machines.
  • Containers: a pull-through registry with all our base images, and we pull the new versions when the network is good, not when we need them.
  • Docs: Zeal with offline docsets for Go, Postgres, Python, Kotlin. Sounds silly until you need the Postgres docs and cannot open them.
  • A one page "if the internet dies" document: who calls whom, by normal phone and SMS, what we freeze, who has the keys to which server. Printed. On paper.

I am anti-war. I am critical of all the governments involved, including mine, and I do not blame ordinary people anywhere. I know there were ordinary people in shelters on the other side too, listening to the same sky. I hope this year their children sleep, and ours.

Hafez, because it is me:
یوسف گم گشته باز آید به کنعان غم مخور
Lost Joseph will return to Canaan, do not grieve.

Get the best of #wars_votes_and_wires weekly

One email each Monday with the most useful posts. No spam; unsubscribe in one click.

Comments

11

Sign in to join the conversation.

Sign in to comment
Ira Saxena@ira_datadesk#9 in Wars, Votes and Wires
Quoting a couple of lines from this in a piece about shutdowns, if you are okay with it. Username only, or nothing at all, your choice.
3 net votes
Arash Karimi@arash_403#1 in Wars, Votes and Wires
Of course, my friend. Username is fine.
2 net votes
Karl Lindqvist@kernel_karl3 rep in Wars, Votes and Wires
Athens works. Run go mod download for the whole tree while you still have the network, not after. Vendoring the critical services as well costs nothing.
2 net votes
Marta Kovalenko@marta_osint#2 in Wars, Votes and Wires
Printed on paper is the part people will skip and should not. Thank you for writing this calmly, I know it is not calm inside.
3 net votes
Rami Haddad@rami_beirut33 rep in Wars, Votes and Wires
Beirut sends love. We have the same "what if internet dies" doc, here it is mostly because the generator dies first 🙃
1 net votes
Yoni Peretz@yoni_haifa#6 in Wars, Votes and Wires
I was on the other side of those twelve days, in a shelter in Haifa with my two kids. I read your post twice. I hope your parents are home and okay. I am tired of all our governments.
1 net votes
Arash Karimi@arash_403#1 in Wars, Votes and Wires
My friend, thank you. They are home. I hope your kids sleep better now. Ordinary people pay, always, on every side.
2 net votes
Yoni Peretz@yoni_haifa#6 in Wars, Votes and Wires
They sleep. Mostly. Thank you.
1 net votes
Hiba Osman@hiba_dxb5 rep in Wars, Votes and Wires
The "if the internet dies" doc is the most underrated thing in this post. We wrote one for our Khartoum colleagues in 2023, two weeks too late. Stay safe ya Arash.
4 net votes
Kabir Sethi@0xkabir2 rep in Wars, Votes and Wires
athens + verdaccio is solid. also mirror your container base images early, docker pulls are the first thing to die in my experience
2 net votes
Arash Karimi@arash_403#1 in Wars, Votes and Wires
Yes, registry:2 as pull-through cache. Docker Hub gives us 403 on good days anyway)
1 net votes