🔐 End-to-end encrypted
✅ GDPR compliant by design […]
🌉 bridged from ⁂ https://mastodon.social/@logflux, follow @ap.brid.gy to interact
Stage 1: "This should work" 😌
Stage 2: "Why isn't this working?" 🤔
Stage 3: "Oh no, something's broken" 😰
Stage 4: "EVERYTHING IS ON FIRE" 🔥
Stage 5: "Rollback! ROLLBACK!" ⏪
Stage 6: "...it was a typo in the config" 😐
Kubernetes doesn't care about your feelings.
Stage 1: "This should work" 😌
Stage 2: "Why isn't this working?" 🤔
Stage 3: "Oh no, something's broken" 😰
Stage 4: "EVERYTHING IS ON FIRE" 🔥
Stage 5: "Rollback! ROLLBACK!" ⏪
Stage 6: "...it was a typo in the config" 😐
Kubernetes doesn't care about your feelings.
🟡 Writing good code
🔵 Writing good documentation
🟣 Writing good commit messages
🌌 Actually reading the error message before googling it
🟡 Writing good code
🔵 Writing good documentation
🟣 Writing good commit messages
🌌 Actually reading the error message before googling it
"Looks good to me" ✅ (didn't actually look)
"Small nitpick: ..." 📝 (rewrites entire function)
"Can we add tests for this?" 🧪 (has never written a test)
*leaves 47 comments* 📄 (none about the actual logic)
"Looks good to me" ✅ (didn't actually look)
"Small nitpick: ..." 📝 (rewrites entire function)
"Can we add tests for this?" 🧪 (has never written a test)
*leaves 47 comments* 📄 (none about the actual logic)
Level 1: try { code() } catch { print("oops") }
Level 50: try { code() } catch { /* TODO: handle this later */ }
Level 100: try { code() } catch { throw new Exception("Computer says no") }
Level 9000: if (error) { /* it's probably fine */ }
Level 1: try { code() } catch { print("oops") }
Level 50: try { code() } catch { /* TODO: handle this later */ }
Level 100: try { code() } catch { throw new Exception("Computer says no") }
Level 9000: if (error) { /* it's probably fine */ }
✅ CPU: monitored
✅ Memory: monitored
✅ Disk: monitored
✅ Network: monitored
❌ The actual thing your users care about: ???
"But the infrastructure is fine!"
Sir, this is a web application, not a server museum.
✅ CPU: monitored
✅ Memory: monitored
✅ Disk: monitored
✅ Network: monitored
❌ The actual thing your users care about: ???
"But the infrastructure is fine!"
Sir, this is a web application, not a server museum.
You're stealing memory from future you, and future you remembers where you live.
Memory leaks are the compound interest of bad programming. Small at first, then suddenly your server needs more RAM than the International Space Station.
malloc()/free() is […]
You're stealing memory from future you, and future you remembers where you live.
Memory leaks are the compound interest of bad programming. Small at first, then suddenly your server needs more RAM than the International Space Station.
malloc()/free() is […]
You went from one thing that could break to 47 things that could break, but now each failure has its own GitHub repository.
"But we can scale each service independently!"
Cool. Now you can scale your problems independently too.
You went from one thing that could break to 47 things that could break, but now each failure has its own GitHub repository.
"But we can scale each service independently!"
Cool. Now you can scale your problems independently too.
Regex for parsing logs in production: /.*ERROR.*/
The difference between engineering and survival.
Sometimes "good enough" is actually good enough. Your log parser doesn't need to win […]
Regex for parsing logs in production: /.*ERROR.*/
The difference between engineering and survival.
Sometimes "good enough" is actually good enough. Your log parser doesn't need to win […]
The bug exists in a superposition of "works on my machine" and "breaks in production" until observed by a senior engineer.
At which point it immediately collapses into "how did this ever work?"
Quantum debugging: the art of fixing bugs by observing […]
The bug exists in a superposition of "works on my machine" and "breaks in production" until observed by a senior engineer.
At which point it immediately collapses into "how did this ever work?"
Quantum debugging: the art of fixing bugs by observing […]
Also AI-assisted coding: "Here's a function that sorts an array by converting everything to strings and praying to the JavaScript gods."
Also AI-assisted coding: "Here's a function that sorts an array by converting everything to strings and praying to the JavaScript gods."
*6 months later*
"Why do we need a PhD in distributed systems to add a user profile field?"
*6 months later*
"Why do we need a PhD in distributed systems to add a user profile field?"