<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <title>Life in Production by Charbel Wakim</title>
  <subtitle>Thoughts on tech, career, entrepreneurship, and life.</subtitle>
  <link href="https://charbelwakim.com/feed.xml" rel="self"/>
  <link href="https://charbelwakim.com/blog/"/>
  <updated>2026-08-03T00:00:00.000Z</updated>
  <id>https://charbelwakim.com/</id>
  <author>
    <name>Charbel Wakim</name>
  </author>
  <entry>
    <title>Call Me Ali</title>
    <link href="https://charbelwakim.com/blog/posts/call-me-ali"/>
    <updated>2026-08-03T00:00:00.000Z</updated>
    <id>https://charbelwakim.com/blog/posts/call-me-ali</id>
    <summary>A twelve-year-old in West Beirut is told to borrow a Muslim name to stay safe. Twenty years later in Germany, a registration clerk assumes the name anyway. The same scar, read two different ways.</summary>
    <content type="html">&lt;p&gt;My name is Charbel. My mother gave it to me because she saw Saint Charbel appear to her in a dream the night I was born. She took it as a sign. It did not hurt that I was born on Saint George&#39;s day, the patron saint who slays the dragon, the saint whose icon hangs in every Christian Lebanese household. And my last name, Wakim, traces back to Joachim, the father of the Virgin Mary. &lt;strong&gt;Three saints stacked on one boy before he learned to speak.&lt;/strong&gt; So here I am, walking through life with a name that announces me before I open my mouth.&lt;/p&gt;
&lt;p&gt;That announcement matters more in Lebanon than anywhere else on earth.&lt;/p&gt;
&lt;h2 id=&quot;the-good-samaritan&quot; tabindex=&quot;-1&quot;&gt;The Good Samaritan&lt;/h2&gt;
&lt;p&gt;I grew up in Achrafieh. If you know Lebanon, you know what that means. My school was Sagesse, in the heart of it, a hyper-Christian institution where we learned more about Jesus than mathematics, more about martyrs than history, sitting in the geographic center of Lebanese Forces territory. It was a world sealed inside itself. There were seven Charbels in my school year. My friends called me Wakim, because yelling &amp;quot;Charbel&amp;quot; in the hallway produced a small crowd.&lt;/p&gt;
&lt;p&gt;Then, when I was twelve, something changed. The school opened its doors to everyone. One Muslim student enrolled. His name was Mustafa.&lt;/p&gt;
&lt;p&gt;Mustafa had the audacity to sit next to Charbel.&lt;/p&gt;
&lt;p&gt;We became friends.&lt;/p&gt;
&lt;p&gt;That sounds like the punchline to a joke. It was not. Mustafa was just a kid who liked the same things I liked. He was good company. One afternoon he invited me to hang out at his place in West Beirut. We wanted to go play Counter-Strike at an internet cafe. Mustafa&#39;s dad said stay home. We were kids. We begged. He eventually gave in.&lt;/p&gt;
&lt;p&gt;Before we left, he pulled me aside at the door. He looked at me and said, quietly: &lt;em&gt;&amp;quot;3amo, when they ask your name, just say Ali.&amp;quot;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I did not understand.&lt;/p&gt;
&lt;p&gt;To me, we were one Beirut. I had not yet learned that the city had a seam running through the middle of it, invisible to children and drawn in blood by adults. I thought Mustafa&#39;s dad was embarrassed by me, or embarrassed by something. I could not name the feeling. I said okay, and we went and played Counter-Strike, and nothing happened, and I never really thought about it again.&lt;/p&gt;
&lt;p&gt;Until things started happening.&lt;/p&gt;
&lt;p&gt;The Syrian occupation tightened its grip. MTV Lebanon was shut down overnight. Friends were grabbed from inside the school. Rafic Hariri was killed. I was sixteen, in the middle of my &lt;em&gt;bac blanc&lt;/em&gt;, when the shockwave shook a window out of its frame and onto my head. Then Gebran Tueni. Then Pierre Gemayel. The fault lines were no longer something you read about. They were something you felt land on you.&lt;/p&gt;
&lt;p&gt;That was when &lt;em&gt;&amp;quot;just say Ali&amp;quot;&lt;/em&gt; stopped being confusing and became obvious.&lt;/p&gt;
&lt;p&gt;Mustafa&#39;s dad was not ashamed of me. He was protecting me. He saw a boy with a saint&#39;s name walking into a neighborhood that was reading names like threat assessments. He put his hand on my shoulder and gave me the fastest, gentlest piece of armor he had.&lt;/p&gt;
&lt;p&gt;The strangest thing is, our fathers were friends. My father, the Christian freedom fighter. Mustafa&#39;s father, the Sunni from West Beirut. I remember them at the same dinner table, laughing. I said the Abana at Mustafa&#39;s father&#39;s funeral. Mustafa read the Fatiha at my father&#39;s funeral.&lt;/p&gt;
&lt;h2 id=&quot;the-contradiction-in-the-house&quot; tabindex=&quot;-1&quot;&gt;The Contradiction in the House&lt;/h2&gt;
&lt;p&gt;My father was Lebanese Forces through and through. The same man who told me to never judge a person by their religion would tense up if a stranger asked our family name in the wrong neighborhood.&lt;/p&gt;
&lt;p&gt;Every summer he drove me up to Bzebdine, a half Christian half Druze village in the mountains, where I would spend weekends and entire weeks at a friend&#39;s house. The friend was also called Charbel, obviously. The village had a Kataeb office that, in my father&#39;s words, would &lt;em&gt;&amp;quot;be there if something happened.&amp;quot;&lt;/em&gt; I think that was the only reason he agreed. Not because he was at peace with it. Because there is no arguing with a stubborn sixteen-year-old who wants to see his friend.&lt;/p&gt;
&lt;p&gt;Coming back, there were two ways down. The fast route was &lt;em&gt;tarik sayda&lt;/em&gt;, the old Saida road, cutting through Shia neighborhoods on the southern edge of Beirut, deep Hezbollah country. The slower one went the long way around. He always took the long way. Every time I asked why, he gave the same one-word answer. &lt;em&gt;&amp;quot;Safer.&amp;quot;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The war was over. The fear was not.&lt;/p&gt;
&lt;p&gt;Respect everyone. But be ready for the crusade when faith is touched.&lt;/p&gt;
&lt;p&gt;I did not see the contradiction growing up. It felt normal. It was the water I swam in.&lt;/p&gt;
&lt;h2 id=&quot;cyprus&quot; tabindex=&quot;-1&quot;&gt;Cyprus&lt;/h2&gt;
&lt;p&gt;The first crack appeared in Cyprus. I was nineteen. A long trip for a nineteen-year-old, I know. But what I saw there hit me harder than any classroom lesson. Lebanese people from every background, cursing the sectarianism back home like it was some shared embarrassment they were all relieved to be free of.&lt;/p&gt;
&lt;p&gt;I stood there thinking: why does this only happen when we leave?&lt;/p&gt;
&lt;p&gt;That night at a small pub filled with Lebanese flags, I sat across from Yasmine and Michel. Almaza in one hand, a pack of Cedars light in the other, trying not to fall off the bar stools. She was Shia, from the south. He was Maronite, from Zahleh. She was teaching him how to roll a cigarette, spilling tobacco on the table every other try. He was teaching her the words to &lt;em&gt;Zahleh ya dar el salam&lt;/em&gt;, the old folk anthem to his Christian hometown in the Bekaa.&lt;/p&gt;
&lt;p&gt;You have not lived until you have heard &lt;em&gt;Zahleh ya dar el salam&lt;/em&gt; in Yasmine&#39;s southern Shia accent, half drunk, in a black mini dress, mixed with a backdrop of trance. Or until you have watched Michel explain, with full Lebanese conviction, that he only spills tobacco because he normally rolls joints. Bigger papers.&lt;/p&gt;
&lt;p&gt;They had spent their whole lives forty kilometers apart and had to fly to Ayia Napa to share a table. The sectarianism back home was not what people actually wanted. It was what people in power needed them to want.&lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;text-accent&quot;&gt;The Bachir Gemayel posters all over Bzebdine and the Nasrallah posters all over &lt;em&gt;tarik sayda&lt;/em&gt; are different faces selling the same silence.&lt;/span&gt;&lt;/p&gt;
&lt;h2 id=&quot;the-bios&quot; tabindex=&quot;-1&quot;&gt;The BIOS&lt;/h2&gt;
&lt;p&gt;I came back from Cyprus and went straight to my bedroom. The Bachir Gemayel poster had been on my closet door since I was a child. The iconic one. Bach, as we called him. In full LF gear, M16 in hand, the Ray-Bans every Lebanese Christian man copied. An LF cross above it. Suddenly it annoyed me. I did not tear them down. They were my father&#39;s, after all.&lt;/p&gt;
&lt;p&gt;You do not tear anything from your father.&lt;/p&gt;
&lt;p&gt;I took them down carefully and put them in my desk drawer. My father stood in the doorway. Shocked. But he did not stop me. That was his version of respect.&lt;/p&gt;
&lt;p&gt;I thought that was the end of it. I thought I had deleted the OS.&lt;/p&gt;
&lt;p&gt;The poster and the cross are still in that drawer. With class photos and souvenirs from school friends. Things I will never throw away. My wife disagrees. It still makes me tear up every time I open it.&lt;/p&gt;
&lt;p&gt;I have been back to West Beirut as an adult. Hamra for a night out. Badaro for a drink. The beaches of Jiyeh. The mountains of Deir el Qamar. The edges of the city that belong to everyone.&lt;/p&gt;
&lt;p&gt;But not to the deep streets. Not to the internet cafe where a twelve-year-old boy was handed a borrowed name for the afternoon.&lt;/p&gt;
&lt;p&gt;I tell myself the wiring is gone. That I left all of it behind in Cyprus, in university dorms, and in years of living abroad alongside people who never once cared what my name represented. And mostly I believe that. But the BIOS does not care what OS you are running. &lt;span class=&quot;text-accent&quot;&gt;It loads first. Every time.&lt;/span&gt;&lt;/p&gt;
&lt;h2 id=&quot;the-crusade-tax&quot; tabindex=&quot;-1&quot;&gt;The Crusade Tax&lt;/h2&gt;
&lt;p&gt;Germany did not let me forget either.&lt;/p&gt;
&lt;p&gt;When I first arrived and rented my apartment, the landlady walked me through the place and mentioned, almost in passing, that there was a halal butcher two streets down. She meant it kindly. I told her I was Catholic, with a smirk. You should have seen the relief on her face.&lt;/p&gt;
&lt;p&gt;A few days later, I went to register at the Bürgeramt. The woman behind the desk looked at my passport. Lebanese. She looked up. &lt;em&gt;&amp;quot;Libanon. Muslim, ja?&amp;quot;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I could have said &lt;em&gt;&amp;quot;ja.&amp;quot;&lt;/em&gt; One syllable and we move on.&lt;/p&gt;
&lt;p&gt;But I could not let it stand. I blurted &lt;em&gt;&amp;quot;Nein.&amp;quot;&lt;/em&gt; The same pride that keeps Lebanon dysfunctional, that makes people die on hills rather than yield an inch of identity.&lt;/p&gt;
&lt;p&gt;She went &lt;em&gt;&amp;quot;Bitte?&amp;quot;&lt;/em&gt; In my A1 broken German, and behind my covid mask, I stammered &lt;em&gt;&amp;quot;Ich bin, euhhh, Christian.&amp;quot;&lt;/em&gt; She went huh, then updated the form. That is how I ended up paying church tax in Germany, registered to a Catholic church I have never set foot in, because I was too proud to let a stranger&#39;s assumption stand uncorrected.&lt;/p&gt;
&lt;p&gt;Funny how generations of bleeding for the Christian faith in the Levant, and in Germany it comes down to whether you have a beard. And I did.&lt;/p&gt;
&lt;p&gt;Now, every time I fly back to Germany, the last thing I do before kissing my family goodbye is shave. Just say Ali. With a razor.&lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;text-accent&quot;&gt;The scars of the Crusade do not stay in Lebanon. They travel with the name.&lt;/span&gt;&lt;/p&gt;
&lt;h2 id=&quot;eight-months-old&quot; tabindex=&quot;-1&quot;&gt;Eight Months Old&lt;/h2&gt;
&lt;p&gt;My son is eight months old.&lt;/p&gt;
&lt;p&gt;One day he will ask me about Lebanon. He will ask why we left. He will want to know what is wrong with it. Why we don&#39;t live next to Teta. Why his aunts are split between France and Sweden. Why every Christmas is a tornado of a fight. Jeddah with my family, Paris with one sister, Stockholm with the other, or Lebanon with relatives we see once every few years.&lt;/p&gt;
&lt;p&gt;I do not know what I will tell him.&lt;/p&gt;
&lt;p&gt;What I do know is that I am sitting a stone&#39;s throw from Mecca right now, writing this, while my sister-in-law plans his baptism. Three months salary. For a tradition I respect more than I believe in. In a church I have not stepped foot in since I stopped believing it deserved my presence. The same institution that blessed the warlords and passed the plate. And I am paying gladly, making sure every person in the world knows my son is Christian.&lt;/p&gt;
&lt;p&gt;My father would not even see the irony. He would just nod.&lt;/p&gt;
&lt;p&gt;My father told me to love Lebanon enough to bleed for it. I cannot tell my son that. It is the hardest thing I have ever had to admit, and the truest.&lt;/p&gt;
&lt;p&gt;No country is worth his happiness. No border someone else drew is worth his safety, or mine. When I left, I got happier. That is the whole ugly arithmetic of it. Would I have rather stayed in Lebanon, next to my mother? Yes. Of course. Every single day. Is it worth his safety, or his peace of mind? No. Fuck no.&lt;/p&gt;
&lt;p&gt;Maybe that makes me weaker than my father. Weaker than he ever was. He stayed and bled until his last day. I will not. Not with him in my arms.&lt;/p&gt;
&lt;p&gt;Or maybe that is it. Maybe our family has bled enough for several generations.&lt;/p&gt;
&lt;p&gt;What I want to tell him is this.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;My dear Alexandre-Nicolas Charbel Ayoub-Wakim,&lt;/p&gt;
&lt;p&gt;Five saints stacked on you before you could say baba.&lt;/p&gt;
&lt;p&gt;The world will try to give you a name before you have had a voice. A street, a school, a saint, a sect. Take none of them at face value.&lt;/p&gt;
&lt;p&gt;The only people worth listening to are the ones who, like Mustafa&#39;s father, will hand you a different name when the room demands it, and mean it as love.&lt;/p&gt;
&lt;p&gt;And when we do visit Lebanon and Jedo asks you, &lt;em&gt;&amp;quot;3amo, where are you from?&amp;quot;&lt;/em&gt; trying to place you before you have even sat down, tell him: &lt;em&gt;&amp;quot;ابن الدني. Child of the world. Kind der Welt.&amp;quot;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Find your happiness. Wherever it is, whatever it looks like. That is the only border worth crossing.&lt;/p&gt;
&lt;p&gt;Blessed Baptism, my love.&lt;/p&gt;
&lt;p&gt;I pray to whatever god there is, that you don&#39;t lose your innocence as fast as I had to.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Call me Ali.&lt;/p&gt;
&lt;p&gt;Call me Charbel.&lt;/p&gt;
&lt;p&gt;Call me whatever gets you through the checkpoint.&lt;/p&gt;
&lt;p&gt;&lt;strong class=&quot;text-accent&quot;&gt;I know who I am.&lt;/strong&gt;&lt;/p&gt;
</content>
    <category term="life"/>
  </entry>
  <entry>
    <title>I Promoted My AI</title>
    <link href="https://charbelwakim.com/blog/posts/the-ai-promotion"/>
    <updated>2026-07-15T00:00:00.000Z</updated>
    <id>https://charbelwakim.com/blog/posts/the-ai-promotion</id>
    <summary>From ordering Claude around like a code monkey to running real refinement sessions with it. The three things I changed.</summary>
    <content type="html">&lt;p&gt;My wife Melissa looked at the blog and asked why it was written in code font.&lt;/p&gt;
&lt;p&gt;I had been working on it for weeks. Claude Code had touched nearly every file. Nobody had said a word about the font.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&amp;quot;Claude said nothing,&amp;quot;&lt;/em&gt; I told her.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&amp;quot;Well,&amp;quot;&lt;/em&gt; she said. &lt;em&gt;&amp;quot;I know better.&amp;quot;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;She was right. We fixed it. But the thing that stuck with me was not the font. It was the silence. Claude had all the context. It had built half the thing. It never once offered an opinion.&lt;/p&gt;
&lt;p&gt;That is what a code monkey does. It executes. It never tells you the thing is ugly.&lt;/p&gt;
&lt;h2 id=&quot;the-first-question-that-mattered&quot; tabindex=&quot;-1&quot;&gt;The first question that mattered&lt;/h2&gt;
&lt;p&gt;I started asking. Not &amp;quot;make this smaller&amp;quot; or &amp;quot;move this up.&amp;quot; Just: &amp;quot;What do you think?&amp;quot;&lt;/p&gt;
&lt;p&gt;The answers changed immediately. Not always right, but never just compliance. It started to feel less like a terminal and more like a conversation.&lt;/p&gt;
&lt;p&gt;The font was the first test. &lt;em&gt;&amp;quot;Your wife is right,&amp;quot;&lt;/em&gt; Claude said. I pushed back. I liked the mono font. It was the terminal identity of the whole blog. Instead of folding, it said &lt;em&gt;&amp;quot;let me show you,&amp;quot;&lt;/em&gt; and built three sample pages in three different fonts. I read two paragraphs and caved. The mono stayed in the headers and the navigation, where identity lives. The body got a font built for reading.&lt;/p&gt;
&lt;p&gt;The problem was I kept forgetting to ask.&lt;/p&gt;
&lt;h2 id=&quot;making-the-pushback-permanent&quot; tabindex=&quot;-1&quot;&gt;Making the pushback permanent&lt;/h2&gt;
&lt;p&gt;I added an instruction to the project memory, the notes Claude keeps between sessions about how I like to work:&lt;/p&gt;
&lt;pre class=&quot;language-markdown&quot;&gt;&lt;code class=&quot;language-markdown&quot;&gt;Push back and give a candid editorial opinion on every change.
Flag anything that weakens the work even when I didn&#39;t ask.
Do not wait to be prompted.&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;One instruction. Every session changed. I stopped getting &amp;quot;Sure, here&#39;s the updated version&amp;quot; and started getting &amp;quot;I&#39;d keep the original here because...&amp;quot; and &amp;quot;This section is doing two things at once.&amp;quot;&lt;/p&gt;
&lt;p&gt;Now I ask questions I would ask a teammate. The answer is not always yes. I asked whether the blog needed a search box. Instead of building it, Claude told me the blog was too small for search to earn its place, and to come back when there were more posts. It was right. I shelved the idea. A code monkey would have just built the search box.&lt;/p&gt;
&lt;blockquote class=&quot;analogy-box&quot;&gt;
&lt;h3&gt;🃏 The refinement session&lt;/h3&gt;
&lt;p&gt;That exchange has a name. On a healthy team it is a refinement session: you put the work on the table before anyone builds it, and people poke holes in it. They question the scope. They challenge the assumptions. Sometimes they talk you out of the thing entirely. It is the most honest hour a team spends, because nobody in the room is there to agree with you. They are there to protect the work.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That is the moment Claude stopped being a tool I operated and started behaving closer to a senior engineer. That was the promotion.&lt;/p&gt;
&lt;p&gt;I wrote more about why execution and correctness are two different things in &lt;a href=&quot;/blog/posts/it-compiled-it-was-still-wrong&quot;&gt;It Compiled. It Was Still Wrong.&lt;/a&gt; Melissa knew the difference in two seconds. The AI needed to be told.&lt;/p&gt;
&lt;h2 id=&quot;once-it-is-a-teammate-you-treat-it-like-one&quot; tabindex=&quot;-1&quot;&gt;Once it is a teammate, you treat it like one&lt;/h2&gt;
&lt;p&gt;A teammate gets two things a code monkey never does: an onboarding, and instructions you do not have to repeat every morning.&lt;/p&gt;
&lt;p&gt;The context lives in &lt;code&gt;CLAUDE.md&lt;/code&gt; at the project root. A new hire needs to know the conventions, the architecture, the gotchas. So does Claude. Every session now starts with it already knowing:&lt;/p&gt;
&lt;pre class=&quot;language-markdown&quot;&gt;&lt;code class=&quot;language-markdown&quot;&gt;&lt;span class=&quot;token title important&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;##&lt;/span&gt; Branch strategy&lt;/span&gt;
Never commit directly to &lt;span class=&quot;token code-snippet code keyword&quot;&gt;`main`&lt;/span&gt;, &lt;span class=&quot;token code-snippet code keyword&quot;&gt;`development`&lt;/span&gt;, or &lt;span class=&quot;token code-snippet code keyword&quot;&gt;`preview`&lt;/span&gt;.
Every change goes through a &lt;span class=&quot;token code-snippet code keyword&quot;&gt;`fix/`&lt;/span&gt; or &lt;span class=&quot;token code-snippet code keyword&quot;&gt;`blog/`&lt;/span&gt; branch first.

&lt;span class=&quot;token title important&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;##&lt;/span&gt; Tooling gotchas&lt;/span&gt;
RTK rewrites raw grep and find commands. Use the dedicated Grep tool instead.&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You write it once and the re-onboarding cost goes to zero. Any convention you find yourself explaining twice belongs in that file.&lt;/p&gt;
&lt;p&gt;The repetition is the other tax. Every session opened with the same setup. Claude Code lets you define slash commands as markdown files in &lt;code&gt;.claude/commands/&lt;/code&gt;, so I wrote one for every pattern I kept repeating:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;.claude/
  commands/
    new-post.md      # branch + frontmatter + scheduling
    hot-topics.md    # trend scan + dedup against published posts
    ux-test.md       # Playwright accessibility + mobile checks
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Versioned with the code, available every session, no re-explaining. And when a command turns out to be useful beyond one project, it graduates to a plugin. &lt;code&gt;/handoff&lt;/code&gt; pauses a conversation so you can pick it up the next morning without losing the thread. Too useful to leave in one repo, so I &lt;a href=&quot;https://github.com/cwakim/claude-plugins&quot;&gt;published it&lt;/a&gt;. Project things stay in the project; the ones useful everywhere get pulled out.&lt;/p&gt;
&lt;p&gt;The part I did not expect is that it learned when to reach for them. I wrote down once which command fits which moment. Now, after a big UX change, Claude suggests running &lt;code&gt;/ux-test&lt;/code&gt; before I remember it exists. When a conversation piles up more good ideas than we can build in one sitting, it offers a &lt;code&gt;/handoff&lt;/code&gt; so nothing gets lost. Nobody asks it to. A code monkey waits for the next instruction. A teammate knows the process and nudges you through it.&lt;/p&gt;
&lt;p&gt;Well. Most teammates. Haiku, the smallest and fastest of the models, reads the same file and still tries to commit straight to protected branches. The guardrails catch him every time. God bless him, he is doing his best. Which is fine. You do not fire the intern for being an intern. You just stop handing him the architecture.&lt;/p&gt;
&lt;h2 id=&quot;what-actually-changed&quot; tabindex=&quot;-1&quot;&gt;What actually changed&lt;/h2&gt;
&lt;p&gt;Melissa told me what Claude never volunteered. The fix was not a better model. It was a different question.&lt;/p&gt;
&lt;p&gt;The memory instruction forces the pushback. The context file spares the re-onboarding. The commands cut the repetition and carry the useful pieces between projects.&lt;/p&gt;
&lt;p&gt;Ask for the opinion. Write it down so you never have to ask again.&lt;/p&gt;
</content>
    <category term="tech"/>
  </entry>
  <entry>
    <title>The Compromise You Can&#39;t See Coming</title>
    <link href="https://charbelwakim.com/blog/posts/the-compromise-you-cant-see-coming"/>
    <updated>2026-07-13T00:00:00.000Z</updated>
    <id>https://charbelwakim.com/blog/posts/the-compromise-you-cant-see-coming</id>
    <summary>Moving from a protected Staff Engineer role in Europe to planning a future venture back in the Levant exposes a brutal conflict: how do you compete against agencies built on exploitation without becoming exactly like them?</summary>
    <content type="html">&lt;p&gt;There is one thought that keeps me up at night, and for once it has nothing to do with a production incident: &lt;strong class=&quot;text-accent&quot;&gt;the plan to open my own technical consultancy back in the Levant.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;It is not the fear of failing. Failure is loud. You see it coming, you can plan around it, recover from it, even learn something from it. The thing that scares me is much quieter, and I have watched it happen to codebases my whole career.&lt;/p&gt;
&lt;blockquote class=&quot;analogy-box&quot;&gt;
	&lt;h3&gt;🔩 Systems Analogy: Dependency Corruption&lt;/h3&gt;
	&lt;p&gt;A healthy codebase doesn&#39;t become a mess overnight. It happens one small compromise at a time. A quick fix here, a skipped test there, a deadline that justifies cutting a corner. Each decision seems reasonable in isolation. But six months later, you look at the system and barely recognize it. The architecture is intact on paper. The integrity is gone.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That is what I am afraid of. Not a dramatic moment where I decide to become someone different. Just a long, quiet series of small trade-offs that each feel justified at the time.&lt;/p&gt;
&lt;hr style=&quot;margin: 2em 0;&quot;&gt;
&lt;h2 id=&quot;the-shield-i-have-today&quot; tabindex=&quot;-1&quot;&gt;The Shield I Have Today&lt;/h2&gt;
&lt;p&gt;In my current role as a Staff Engineer in Germany, I don&#39;t manage people or handle HR paperwork. I operate within an individual contributor track designed to analyze the big picture: mapping out long-term strategy, designing how systems fit together, and serving as a shield for the engineering teams around me.&lt;/p&gt;
&lt;p&gt;The Staff Engineer track has given me something I didn&#39;t expect: the ability to operate as a &lt;strong class=&quot;text-accent&quot;&gt;human circuit breaker&lt;/strong&gt; within corporate power dynamics. When an aggressive executive tries to push an unrealistic workload onto an exhausted team, or demands that everyone sacrifice their weekends for an arbitrary milestone, I step into the breach: &lt;em&gt;&amp;quot;No. We are not pushing this forward yet. My team is running hot, and I need to protect their bandwidth.&amp;quot;&lt;/em&gt; My metric of success isn&#39;t just whether we hit a deadline. It is safeguarding the energy, focus, and mental health of the people doing the actual work.&lt;/p&gt;
&lt;p&gt;In Germany, that kind of pushback is normal. The system is built for it.&lt;/p&gt;
&lt;p&gt;But try to explain that kind of role in the Levant, and &lt;a href=&quot;/blog/posts/the-tri-regional-operating-system&quot;&gt;the translation layer&lt;/a&gt; completely breaks. A while back, I ran into one of my old university professors at a Starbucks in Lebanon. When he asked what I was up to, I told him I was working as a Staff Engineer for one of Europe&#39;s largest e-commerce companies. He blinked. &lt;em&gt;&amp;quot;Huh? What does that mean?&amp;quot;&lt;/em&gt; He didn&#39;t even bother to ask for an explanation. He just shrugged, chuckled, and dismissed it in classic Lebanese fashion: &lt;em&gt;&amp;quot;You Europeans and your titles.&amp;quot;&lt;/em&gt; And that is a professor of computer engineering at one of the most esteemed universities in the country. Now imagine everyone else.&lt;/p&gt;
&lt;p&gt;To a traditional mind, if your title doesn&#39;t contain the words &amp;quot;Manager,&amp;quot; &amp;quot;Director,&amp;quot; or &amp;quot;Chief,&amp;quot; you simply don&#39;t exist on the grid. So when people back home ask what I do, I just smile and tell them: &lt;em&gt;&amp;quot;I&#39;m a Manager.&amp;quot;&lt;/em&gt; The confusion vanishes instantly, the box is checked, the respect is gained, and we move on.&lt;/p&gt;
&lt;p&gt;The lie is harmless. The implication is not. In a business culture where everything comes down to money and people are frequently treated like disposable assets, caring about emotional capacity or burnout is viewed as an absurd, soft luxury.&lt;/p&gt;
&lt;p&gt;Set a boundary there the way I set one in Germany, and you get shock, or literal laughter. People genuinely think you are telling a joke. Some days I imagine sending one of our anonymous pulse-check surveys to a team there, the kind that asks how you are sleeping and whether your workload feels sustainable. The reactions would be gold. The underlying assumption is simple: &lt;em&gt;&amp;quot;We pay you, so we expect you to run at maximum capacity until you break. If a developer burns out, we will just replace them with the next hungry face in line.&amp;quot;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The stigma does not stop at the office door. This is a part of the world where seeing a psychologist automatically makes you crazy. I recently started meditating after my gym sessions, and I make sure nobody is around when I do, because I already know the look I would get.&lt;/p&gt;
&lt;p&gt;Right now, my personal boundaries stay strong because I am in a position of privilege. I am backed by a stable European system, and I have a progressive manager who reinforces my pushback.&lt;/p&gt;
&lt;hr style=&quot;margin: 2em 0;&quot;&gt;
&lt;h2 id=&quot;the-shield-i-lose&quot; tabindex=&quot;-1&quot;&gt;The Shield I Lose&lt;/h2&gt;
&lt;p&gt;When you transition from an employee to a founder, the power dynamics flip completely. You are no longer behind a firewall protected by European labor laws. &lt;strong class=&quot;text-accent&quot;&gt;You are the firewall.&lt;/strong&gt; There is no manager above you to absorb the blow when a client is furious.&lt;/p&gt;
&lt;p&gt;I want to build a company that genuinely treats people well. Not just a business. A place where quality work is respected and people&#39;s limits actually mean something.&lt;/p&gt;
&lt;p&gt;But I am staring at a fast-moving market that runs on a completely different set of values. How do you survive when you are competing against agencies that outsource to the cheapest option available, push their people to the brink of exhaustion, and genuinely do not care about the quality of what ships? They will deliver something in five minutes for a fraction of the cost.&lt;/p&gt;
&lt;p&gt;I have already had a taste of this. Once, a freelance project came my way. I prepared a quote with some engineer friends in Europe. Fair scope, fair timeline, people paid what they are worth. When I presented it, the feedback had nothing to do with the work: &lt;em&gt;&amp;quot;Why European engineers? Offshore developers will do it for a fraction of the price.&amp;quot;&lt;/em&gt; I pushed back with quality. I pushed back with security. They did not blink. They did not care. They were not even listening anymore. The entire conversation had collapsed into a single question: &lt;em&gt;but how much?&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;So I said fuck it and walked away. It was not worth the hassle. But that right there is a luxury: I could afford to walk. My salary was waiting for me either way. Founder-me will not have that exit. When dropping a bad client means missing payroll, fuck it stops being an option.&lt;/p&gt;
&lt;p&gt;That is the market. If I charge the real, sustainable price for quality work, clients who only care about the lowest number will walk away.&lt;/p&gt;
&lt;p&gt;It&#39;s easy to have high ethical standards when you&#39;re an employee with a guaranteed salary. Ethics on someone else&#39;s payroll is a free feature. In my own company, the overhead stacks up and the bills mount: school fees, clothes, cars, family gifts, saving for a future, and on and on. Ethics becomes a line item.&lt;/p&gt;
&lt;p&gt;I can already picture the day it gets tested. A client dangles a contract that would cover three months of overhead, and the numbers only work if I staff it thin, push the timeline into weekends, and ship something I would never sign off on today. Employee-me kills that deal in the first meeting, no hesitation. Founder-me, six months into losing contracts to cheaper competitors, with a family counting on him, opens the spreadsheet and starts negotiating with himself. That is not an abstract business problem. &lt;strong class=&quot;text-accent&quot;&gt;It is a survival calculation.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;And that is how it would happen. Not one dramatic decision. Just me, one day, looking at my own future team and muttering the same things I used to despise: &lt;em&gt;&amp;quot;We need to work this weekend, we have to crunch, we have to cut corners.&amp;quot;&lt;/em&gt; Running the exact same playbook I spent years pushing back against.&lt;/p&gt;
&lt;hr style=&quot;margin: 2em 0;&quot;&gt;
&lt;h2 id=&quot;writing-the-tests-before-the-deadline&quot; tabindex=&quot;-1&quot;&gt;Writing the Tests Before the Deadline&lt;/h2&gt;
&lt;p&gt;In software, we know exactly how to fight this kind of decay. You don&#39;t rely on a developer&#39;s good intentions at 2 AM before a release. You write the tests before the deadline exists. You wire up the linter, the CI pipeline, the branch protection, all of it while everyone is calm and nobody is under pressure. Then, months later, when someone is tempted to cut the corner, the system pushes back so a tired human doesn&#39;t have to.&lt;/p&gt;
&lt;p&gt;So maybe that is the only honest answer I have: write my red lines down now, while I am still salaried, still protected, still the person I want to stay. No project staffed with people paid less than they are worth. No weekend crunch sold as company culture. No shipping work I would be ashamed to put my name on. Get them on paper before the first invoice goes unpaid, so that future-me has to argue with a failing test instead of a feeling.&lt;/p&gt;
&lt;p&gt;That last red line is not even mine. It comes from a movie I watched years ago and cannot name anymore: a father telling his son that if he had one thing to teach him about life, it was to never put his name on something he is ashamed of. I have forgotten the title, the actors, the entire plot. The rule stayed.&lt;/p&gt;
&lt;p&gt;I know the counterargument, because I am the counterargument. A determined developer can always delete the test and push with &lt;code&gt;--force&lt;/code&gt;. But that is exactly the point of writing it down. Every compromise would need a moment where I consciously decide the rule doesn&#39;t apply to me today. &lt;strong class=&quot;text-accent&quot;&gt;I can&#39;t stop future-me from crossing the line. I can make sure he hears the alarm when he does.&lt;/strong&gt;&lt;/p&gt;
&lt;hr style=&quot;margin: 2em 0;&quot;&gt;
&lt;h2 id=&quot;the-stakes-in-the-room&quot; tabindex=&quot;-1&quot;&gt;The Stakes in the Room&lt;/h2&gt;
&lt;p&gt;As I type these exact words at my desk, my infant son, Alex, is sitting right next to me in his high chair. He is surrounded by an arsenal of toys that he is launching directly at my head whenever he disagrees with my typing speed or formatting, or just because he wants my attention. It&#39;s a loud, chaotic backdrop, but it puts the stakes of this future dilemma right here in the room with me.&lt;/p&gt;
&lt;p&gt;Today, I can give him that attention. A toy bounces off my head, I pause, I laugh with him, we play. The deadline can wait. It is only a blog post. But founder-me, with an unpaid invoice on the desk and a billion things running in his head? He might snap. He might wheel the high chair into another room so he can focus. Nobody decides to become that father either. It is the same quiet series of small trade-offs, just running at home.&lt;/p&gt;
&lt;p&gt;The thought of staring into the mirror years from now and realizing I became the very machine I tried to shield people from is terrifying. But staring at Alex makes it worse. The pressure of providing him with the best future is exactly what could tempt me to compromise. &lt;strong class=&quot;text-accent&quot;&gt;What kind of professional blueprint am I leaving for him if I rewrite my core code on how to treat human beings just to make the numbers work?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I don&#39;t know if my tests will hold. Nobody does, until they run in production.&lt;/p&gt;
&lt;p&gt;Alex doesn&#39;t know any of this. He&#39;s just thrown another toy at my head, made a fart noise, and he&#39;s laughing.&lt;/p&gt;
</content>
    <category term="entrepreneurship"/>
  </entry>
  <entry>
    <title>Nobody Asked for Flawless</title>
    <link href="https://charbelwakim.com/blog/posts/nobody-asked-for-flawless"/>
    <updated>2026-07-08T00:00:00.000Z</updated>
    <id>https://charbelwakim.com/blog/posts/nobody-asked-for-flawless</id>
    <summary>The more senior you get, the higher your bar for &#39;good enough&#39; quietly climbs, until it lands on flawless. But nobody asked for flawless. They asked for something that works.</summary>
    <content type="html">&lt;p&gt;I always wanted a smart home. That was never the problem. The problem is that every time I open Amazon, I sort by price, high to low. I want to see the Sonys and the Samsungs, the top of the line, never the Xiaomis. I find a 2000€ smart TV, admire it for a second, then close the tab and buy nothing at all. I have written about this instinct before: &lt;a href=&quot;/blog/posts/the-bmw-316i-m-powered&quot;&gt;the reach for the badge over the engine&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;It did not help that I split my life between Frankfurt and Jeddah. Jeddah is home, with my wife, who is an architect, which makes the space hers by design, literally. Bolting a 20€ Chinese smart bulb onto her carefully composed walls is not a fight I would survive. Frankfurt was mine, but only ever half my life, and a 3000€ Apple or Google ecosystem is a hard sell for a part-time home. So the smart home stayed a someday thing. For years.&lt;/p&gt;
&lt;h2 id=&quot;the-200-smart-home&quot; tabindex=&quot;-1&quot;&gt;The 200€ Smart Home&lt;/h2&gt;
&lt;p&gt;Then my old LG TV got so laggy I finally gave up. &lt;strong class=&quot;text-accent&quot;&gt;This time I did not sort by price.&lt;/strong&gt; I just bought the thing that was on sale: a 65-inch Xiaomi for 350€. Somewhere in that checkout flow, something flipped.&lt;/p&gt;
&lt;p&gt;The TV was supposed to be the end of it. It wasn&#39;t. I saw a set of Govee smart lights for 20€ and thought, why not. Then an Alexa. Then a little Govee light bar that reacts to whatever is on the screen. Then I noticed my dryer was already smart and I had never bothered to connect it. Then the portable Klarstein AC, also smart, also ignored. One by one, I plugged them into each other. Outside the TV, the whole thing cost me maybe 200€. A nice dinner.&lt;/p&gt;
&lt;p&gt;Now I say &amp;quot;Alexa, movie time&amp;quot; and the workstation shuts down, the TV wakes up on Netflix, and the lights dim on their own. Is it the best smart home in the world? Not even close. There is no unified app, no perfect scene engine, no designer ecosystem. &lt;strong class=&quot;text-accent&quot;&gt;But it works.&lt;/strong&gt; It made my life genuinely easier. And it cost me the price of a meal instead of the price of a commitment.&lt;/p&gt;
&lt;p&gt;Here is the part I keep coming back to. For years the reason I never started was the price of doing it &lt;em&gt;properly&lt;/em&gt;. The premium ecosystem needs a business case. It needs you to be sure. 200€ of cheap gadgets needs nothing. There is a threshold where the math quietly inverts, and &lt;strong class=&quot;text-accent&quot;&gt;the expensive, correct, all-in version becomes the very thing standing between you and ever starting at all.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&quot;i-am-worse-at-this-at-work&quot; tabindex=&quot;-1&quot;&gt;I Am Worse At This At Work&lt;/h2&gt;
&lt;p&gt;I do this for a living, and I am worse at it in the office than I am in my own living room.&lt;/p&gt;
&lt;p&gt;I am on a senior team. Three staff engineers, one senior, one mid. Between us we have seen enough to know exactly how a thing &lt;em&gt;should&lt;/em&gt; be built. And that is the problem. We wanted to ship things that were flawless. So we refined. We ran the idea through another round. We added the edge case, then the edge case of the edge case. We had opinions. Good ones, valid ones, the kind you cannot easily argue against. And every one of them added a week. Meanwhile the people we were building for did not want flawless. They wanted something. &lt;strong class=&quot;text-accent&quot;&gt;Anything. That worked.&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote class=&quot;analogy-box&quot;&gt;&lt;h3&gt;🛠️ The Senior&#39;s Trap&lt;/h3&gt;&lt;p&gt;A junior ships the ugly version because they cannot yet see everything wrong with it. A senior sees every flaw, and has the skill to chase each one down. Seniority is not the cure for over-engineering. It is the accelerant.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Recently I shipped a feature that had been sitting in our backlog for three or four months. Nothing glamorous: letting users set cleanup rules on their storage buckets per tag, instead of only on the whole bucket. Useful, boring, and low enough on the list that nobody had picked it up. Too small to justify a proper project, too dull to be exciting. That word, proper, is the tell. On a team like ours, a feature either earns the full treatment, the ADR, the edge cases, the review of the review, or it earns nothing at all. The flawless bar does not only gold-plate the big things. It starves the small ones.&lt;/p&gt;
&lt;p&gt;That day, I had a headache and wanted something simple. So I grabbed it. An hour later it was live. I hesitated before announcing it, because two lines in Teams felt like too much ceremony for something this small. But that is what we do for features, so I posted it anyway. It is now the most-liked message in the channel, and people are already working out how much money it will save them. &lt;strong class=&quot;text-accent&quot;&gt;Three months of nobody. One hour of somebody.&lt;/strong&gt; Instant applause, for the smallest thing on the list.&lt;/p&gt;
&lt;h2 id=&quot;the-cathedral-in-your-head&quot; tabindex=&quot;-1&quot;&gt;The Cathedral In Your Head&lt;/h2&gt;
&lt;p&gt;The cheap smart home and the tiny shipped feature are the same story. In both, the thing standing in the way was never the work. It was the imagined perfect version of the work. The full ecosystem. The flawless feature. The cathedral I could picture so clearly that I never laid a single brick.&lt;/p&gt;
&lt;p&gt;The more senior you get, the better you get at building that cathedral in your head. You see the whole thing, every arch, and every flaw in every arch. What you slowly lose is the junior&#39;s gift for putting down one ugly brick and seeing if anyone wants to stand on it.&lt;/p&gt;
&lt;p&gt;&lt;strong class=&quot;text-accent&quot;&gt;Nobody asked for flawless.&lt;/strong&gt; They asked for something that works. Ship that. You can always refine the thing that exists. Especially in our field. You can roll back. You can iterate. You can ship again an hour later. It is not brain surgery. My old engineering manager used to say it in the flattest Australian accent you can imagine: &amp;quot;We sell mattresses, for fuck&#39;s sake.&amp;quot; Nobody dies because version one shipped simple. Could the one-hour version have bugs? Of course. So could the version with three more rounds of review. The only version that is guaranteed safe is the one that never ships, and that one also saves nobody any money. You cannot refine the thing you never started.&lt;/p&gt;
&lt;p&gt;Here is the thing about real cathedrals: they are history&#39;s best argument against waiting. Centuries of scaffolding, half-finished naves, builders who died before the roof went on. They got built anyway, one ugly brick at a time. They are still standing. The only cathedral that never gets built is the flawless one in your head.&lt;/p&gt;
</content>
    <category term="tech"/>
  </entry>
  <entry>
    <title>The BMW 316i M-Powered: Flashy Badges, Broken Engines</title>
    <link href="https://charbelwakim.com/blog/posts/the-bmw-316i-m-powered"/>
    <updated>2026-07-05T00:00:00.000Z</updated>
    <id>https://charbelwakim.com/blog/posts/the-bmw-316i-m-powered</id>
    <summary>Why overextended expats buy luxury status symbols and dying companies sign nine-figure software contracts. An exploration of the same broken architecture playing out at human scale and corporate scale.</summary>
    <content type="html">&lt;p&gt;When power slips, the instinct is not to look inward. It&#39;s to invest in the presentation layer. Buy a badge. Wrap a hollow core in gold. Convince everyone around (and yourself) of one fragile lie: &lt;em&gt;Nothing&#39;s changed.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;To understand how deep this goes, you have to look at two seemingly different worlds that are actually running the exact same broken architecture: the migration of expats to the Gulf, and the tech stacks of legacy corporate enterprises.&lt;/p&gt;
&lt;hr style=&quot;margin: 2em 0;&quot;&gt;
&lt;h2 id=&quot;the-expat-ego-trap&quot; tabindex=&quot;-1&quot;&gt;The Expat Ego Trap&lt;/h2&gt;
&lt;p&gt;To see this play out on a human scale, look at the migration from Lebanon to the GCC over the past decade.&lt;/p&gt;
&lt;p&gt;For a long time, there was a deep collective ego in the Levant. We grew up on the story of Beirut as the &amp;quot;Switzerland of the Middle East&amp;quot; in the 1960s. We talked about the Lebanese Rocket Society, our rail networks, our universities. I still remember the stories my dad used to tell me about those years. Marlon Brando and heads of state checking into the St. George on the corniche. Artists, intellectuals, and diplomats from every corner of the world passing through the same dinner tables. A city that was genuinely at the center of something. Back then, the cultural ego had a superiority complex about pretty much everything. The Gulf especially, which it dismissed as nothing more than desert.&lt;/p&gt;
&lt;p&gt;Then the engine seized.&lt;/p&gt;
&lt;p&gt;The home system collapsed. And let&#39;s be clear: we did that to ourselves. No one else. Decades of corruption, mismanagement, and a political class that looted the country clean while the rest of us looked the other way or cheered for our sectarian team. The economic crisis, the hyperinflation, the bank heist, and then the port explosion that killed over 200 people and leveled half a city (the result of negligence so criminal it almost defies belief). &lt;span class=&quot;text-accent&quot;&gt;All of it, ours.&lt;/span&gt; Meanwhile, the GCC built itself into the high-tech economic engine of the region. &lt;strong class=&quot;text-accent&quot;&gt;But human ego adapts much slower than economic reality.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;When an overextended expat managed to land a solid, tax-free contract in Riyadh or Dubai, they were hit with enormous pressure to prove to everyone back home that they had made it. Instead of the sensible move (building a financial runway), they went straight into a different kind of debt.&lt;/p&gt;
&lt;p&gt;They dropped a massive chunk of their first salary on a luxury watch, a car lease, or designer clothes. Walking into meetings flashing wealth while going home to a tiny apartment, skipping meals out, eating instant noodles because they couldn&#39;t actually afford daily life.&lt;/p&gt;
&lt;p&gt;The luxury purchase isn&#39;t an investment. &lt;span class=&quot;text-accent&quot;&gt;It&#39;s a defense mechanism.&lt;/span&gt; A way of saying &lt;em&gt;&amp;quot;We are still better than you&amp;quot;&lt;/em&gt; while the personal balance sheet is falling apart. They mistake the badge for the win. First real contract I ever had, I drove home in a Grand Cherokee I could not afford to fill up. Then borrowed money for a full shiny Rossignol ski kit, the kind built for pros, even though the only slope I could survive was Baby 1. But the gang was hitting the slopes, and I was not about to be the only one in rented gear.&lt;/p&gt;
&lt;hr style=&quot;margin: 2em 0;&quot;&gt;
&lt;h2 id=&quot;m-badges-on-rusted-engines&quot; tabindex=&quot;-1&quot;&gt;M-Badges on Rusted Engines&lt;/h2&gt;
&lt;p&gt;In Lebanon, it&#39;s a tradition to see a premium presentation layer slapped onto total mechanical wreckage. A dented, rust-covered BMW 316i rattling down the street with a plastic &amp;quot;M&amp;quot; badge glued to the trunk. A subwoofer so oversized it makes the whole car vibrate. A muffler cracked open on purpose to fake an engine roar that isn&#39;t there. Half the neighborhood curses every time it passes. Counterfeit BMW Motorsport cap on the driver&#39;s head. Matching team jacket on the seat. Branded keychain swinging from a taped-up ignition. Windshields with text that says: &lt;em&gt;&amp;quot;Don&#39;t mind me, I am a Porsche in disguise.&amp;quot;&lt;/em&gt; We laugh because it&#39;s a funny, self-aware cope. But when companies do the exact same thing with software, nobody laughs. They call it &amp;quot;enterprise digital transformation.&amp;quot;&lt;/p&gt;
&lt;p&gt;A company that dominated the market a decade ago suddenly finds its model disrupted, its market share shrinking, its processes moving painfully slow. But leadership refuses to admit the underlying architecture is dead. They don&#39;t want to face a broken engineering culture.&lt;/p&gt;
&lt;p&gt;So what do they do? They buy a corporate status symbol.&lt;/p&gt;
&lt;p&gt;They sign a multi-million-dollar enterprise deal for a bloated HR system or a heavy CRM. Or they burn millions in AI tokens through the biggest models on the market, just to generate a PowerPoint deck and tell the board they are now AI-enabled. They run company-wide meetings bragging about their cutting-edge implementation, using the cost of the license to signal to the market: &lt;em&gt;&amp;quot;See? We are a serious player.&amp;quot;&lt;/em&gt; Then the layoffs begin, because someone has to pay for the badge. Same as the expat skipping dinners and cutting everything to keep the watch on their wrist.&lt;/p&gt;
&lt;p&gt;Meanwhile, on the engineering floor, the system is a nightmare. It takes a team of consultants just to configure. It adds ten steps of friction to a developer&#39;s daily workflow. It kills whatever internal agility was left. The whole platform could have been replaced by a shared spreadsheet, and the team would have moved five times faster.&lt;/p&gt;
&lt;p&gt;Just like gluing an M-badge onto a broken 316i, the company is strangling its own developer velocity to flash a brand name at board meetings. &lt;strong class=&quot;text-accent&quot;&gt;Both are buying an expensive wrapper because they are too scared to admit the engine is shot.&lt;/strong&gt;&lt;/p&gt;
&lt;hr style=&quot;margin: 2em 0;&quot;&gt;
&lt;h2 id=&quot;out-with-the-old&quot; tabindex=&quot;-1&quot;&gt;Out with the Old&lt;/h2&gt;
&lt;p&gt;Working in Developer Experience means spending a lot of your career fighting exactly this. Leadership will keep trying to buy shiny tools to fix a cultural bottleneck, expecting a software license to repair a broken factory floor.&lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;text-accent&quot;&gt;You can&#39;t buy your way out of a foundational problem.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;At some point, patches, wrappers, and polite optimizations stop working. You have to look at the system clearly and make the hardest call: &lt;strong class=&quot;text-accent&quot;&gt;if the flowers are rotten, burn the garden.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;We lived through this at Emma Sleep: for a long time, the core e-commerce architecture was tied to a massive Magento monolith. Heavy, slow to deploy, and a constant source of friction for our developers. We spent enormous amounts of time trying to optimize it, tweak it, build workarounds for the unfixable.&lt;/p&gt;
&lt;p&gt;Eventually, we stopped coping. We admitted the garden was rotten.&lt;/p&gt;
&lt;p&gt;We stopped patching a dying system and did the only thing that actually scales: we tore it down. We designed a custom, modern, distributed microservices architecture from scratch. The shift didn&#39;t happen because we bought a flashy new tool. It happened because we had the courage to look at the legacy system, drop the corporate sentimentality, and rebuild the foundation from the ground up.&lt;/p&gt;
&lt;p&gt;It wasn&#39;t clean. There were long nights, false starts, and more than a few moments where the old monolith looked almost tolerable by comparison. But that discomfort was the point. The badge is always more comfortable than the surgery.&lt;/p&gt;
&lt;hr style=&quot;margin: 2em 0;&quot;&gt;
&lt;h2 id=&quot;the-wrapper-never-holds&quot; tabindex=&quot;-1&quot;&gt;The Wrapper Never Holds&lt;/h2&gt;
&lt;p&gt;I&#39;ve seen bright people land a contract in Riyadh or Dubai and spend the next two years in financial survival mode. Not because the salary was bad. Because the watch had to come first, and the bottle-service photo at BLING or The Penthouse right after. Then they complain that the GCC is too expensive, that life there feels hollow, that they miss home. And eventually they move back. Back to the same rotten system that pushed them out, as if the geography was ever the problem. And I&#39;ve seen companies sign a nine-figure enterprise deal to signal seriousness to the market while the engineers on the floor quietly started looking for other jobs. &lt;span class=&quot;text-accent&quot;&gt;The badge never saved either of them.&lt;/span&gt; The only way out was someone with the clarity to look at the broken engine and the guts to call it what it was.&lt;/p&gt;
</content>
    <category term="tech"/>
  </entry>
  <entry>
    <title>It Compiled. It Was Still Wrong.</title>
    <link href="https://charbelwakim.com/blog/posts/it-compiled-it-was-still-wrong"/>
    <updated>2026-07-01T00:00:00.000Z</updated>
    <id>https://charbelwakim.com/blog/posts/it-compiled-it-was-still-wrong</id>
    <summary>AI can write the code, the tests, and the commit message. It can&#39;t tell you your font is exhausting the reader you forgot to picture. Knowing who the work is good for was always the job, and it still is.</summary>
    <content type="html">&lt;p&gt;My wife and I recently had a real fight about a font. Not a disagreement. A fight. She is an architect, so she sees type the way I see a stack trace, and to her the blog was screaming. Every paragraph set in Space Mono, the monospace I love, the one the whole portfolio still wears. I read it all day. I had stopped seeing it. She read three sentences and asked why I was making people read code.&lt;/p&gt;
&lt;p&gt;There is no unit test for that. I could not run a benchmark that returned &amp;quot;your font is exhausting.&amp;quot; There was no assertion that failed. She was just right, and the only proof was taste.&lt;/p&gt;
&lt;h2 id=&quot;what-the-machine-cant-see&quot; tabindex=&quot;-1&quot;&gt;What the machine can&#39;t see&lt;/h2&gt;
&lt;p&gt;Here is the thing about that fight. I had rebuilt this whole blog with the help of AI. Claude Code and Gemini, to be exact. Claude wrote the templates, the build pipeline, the responsive image shortcodes. Gemini made the cover images. At no point did either of them stop and say &amp;quot;by the way, nobody wants to read a thousand words in monospace.&amp;quot; Why would they? I never asked. I pointed them at &amp;quot;make the blog,&amp;quot; and they made the blog, in the font that was already there. I had stopped seeing that font. The machine never saw it at all.&lt;/p&gt;
&lt;p&gt;That is the part people miss. The model optimizes the thing you point it at. It does not optimize the thing you forgot to measure. It will pass every test you wrote and stay silent on the test you should have written. My font was not a bug. It compiled. It shipped. It scored fine on contrast and load time. It was just bad, and &amp;quot;bad&amp;quot; is not a value the machine returns.&lt;/p&gt;
&lt;blockquote class=&quot;analogy-box&quot;&gt;
&lt;h3&gt;🎸 The session musician&lt;/h3&gt;
&lt;p&gt;A good AI is a session musician who can sight-read anything you put on the stand and play it perfectly, first take, in time. What it cannot do is tell you the song is boring. Technique is free now. Knowing whether the thing is worth playing was always the hard part, and it still is.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The real mistake went deeper than a font. I am an engineer. I read monospace all day, so to me the blog looked normal, even nice. But this blog is not written for engineers, or not only them. I had built the reading experience for the one person guaranteed never to struggle with it: me. Then I handed that same blind spot to Claude, which did not invent the bias. It inherited mine, because I never thought to question it.&lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;text-accent&quot;&gt;Taste is not only knowing what is good. It is knowing who it is good for.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;That is the whole basis of good engineering. I had skipped it for the one reader who never needed me to ask: me.&lt;/p&gt;
&lt;h2 id=&quot;the-compromise-was-the-engineering&quot; tabindex=&quot;-1&quot;&gt;The compromise was the engineering&lt;/h2&gt;
&lt;p&gt;We did not settle the fight by one of us winning. We settled it by getting more precise about the question.&lt;/p&gt;
&lt;p&gt;The blog has two jobs. One job is to be read, long-form, top to bottom. The other job is to feel like &lt;em&gt;mine&lt;/em&gt;: the terminal-green, monospace, engineer&#39;s-desk identity I actually like. Those are different jobs, so they get different type. The article reading surface uses a face built for long-form. Everything you browse and navigate, the masthead, the post titles, the chrome, stays Space Mono. And the portfolio, which is a poster and not an essay, stays one hundred percent Space Mono because I like it and nobody has to read it for ten minutes.&lt;/p&gt;
&lt;p&gt;No tool handed me that split. The work was not changing a CSS variable, that part took a minute. The work was deciding the rule: type by role, not by page. That is a taste call dressed as an architecture decision. Most of the good ones are.&lt;/p&gt;
&lt;p&gt;Here is how reflexive the mistake is. While putting this post together, I almost configured every external link on the blog to open in a new tab, so you would stay on my site. The AI would have done it in a second. Then I caught it: I was optimizing for me, the author who wants the traffic, not you, the reader who just wants the back button to work. Same blind spot as the font. So the links open the normal way. Click away.&lt;/p&gt;
&lt;h2 id=&quot;taste-is-the-senior-skill-and-it-does-not-transfer&quot; tabindex=&quot;-1&quot;&gt;Taste is the senior skill, and it does not transfer&lt;/h2&gt;
&lt;p&gt;So what is actually left for you once the model writes the code? The judgment the model never had. Knowing that the font passes every check and is still screaming.&lt;/p&gt;
&lt;p&gt;You do not get that from the model, because the model has never been annoyed by your blog. My wife has. She read it as a reader, not a build, and that is the entire difference. Taste is what you earn by caring about the output the way the person on the other end experiences it, not the way the test suite reports it.&lt;/p&gt;
&lt;p&gt;You are reading this in the readable font. &lt;span class=&quot;text-accent&quot;&gt;She won. She was right.&lt;/span&gt;&lt;/p&gt;
</content>
    <category term="tech"/>
  </entry>
  <entry>
    <title>The Cult of Complexity: From Internet Cafes to AI Chatbots</title>
    <link href="https://charbelwakim.com/blog/posts/the-cult-of-complexity"/>
    <updated>2026-06-28T00:00:00.000Z</updated>
    <id>https://charbelwakim.com/blog/posts/the-cult-of-complexity</id>
    <summary>An architectural critique of herd mentality and local hubris. Tracking how the cultural stigma of &#39;ready-made&#39; assets mutates from empty 90s internet cafes and stripped Mercedes sensors straight into insecure &#39;custom&#39; codebases and modern AI chatbot loops.</summary>
    <content type="html">&lt;p&gt;He threw the envelope at my face.&lt;/p&gt;
&lt;p&gt;I had walked into a small petrol station to pitch a web development contract, holding a clean, highly functional, cost-effective quote built on top of a WordPress foundation. The owner did not look at the proposal. He looked at the envelope, looked up at me, and said: &lt;em&gt;&amp;quot;WordPress? Who the fuck you think you are?&amp;quot;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;This is what the cult of complexity looks like up close. A man who has never written a line of code in his life, deeply offended that I was not going to hand-carve his website from raw silicon. Years later I would meet the same instinct in boardrooms, in cloud architecture reviews, in AI product demos. The accent changes. The vanity does not.&lt;/p&gt;
&lt;hr style=&quot;margin: 2em 0;&quot;&gt;
&lt;h2 id=&quot;the-nicotine-stained-pc&quot; tabindex=&quot;-1&quot;&gt;The Nicotine-Stained PC&lt;/h2&gt;
&lt;p&gt;To see this blueprint in its purest form, look at Lebanon in 1998. I was ten years old when I first heard about an internet cafe, because one had a massive sign outside for &lt;em&gt;FIFA: Road to World Cup 98&lt;/em&gt;, the EA Sports game with Chumbawamba&#39;s &amp;quot;Tubthumping&amp;quot; blasting on the menu screen on loop. The line was so long it would have been faster to fly to France and watch the actual tournament live. Internet cafes became a massive trend overnight, considered &amp;quot;easy money,&amp;quot; and every entrepreneur on every corner opened one. Within a few years, what started as a row of shiny gaming PCs had rotted into a bleak room of off-white monitors stained with cigarette smoke, game libraries as empty as the cafes themselves. &lt;strong class=&quot;text-accent&quot;&gt;Nobody paused to ask if the market actually needed another one.&lt;/strong&gt; They saw a trend and sprinted toward it blindly until it decayed from the inside out.&lt;/p&gt;
&lt;blockquote class=&quot;analogy-box&quot;&gt;
	&lt;h3&gt;🔄 The Trend Decay Loop&lt;/h3&gt;
	&lt;p&gt;Every iteration of this pattern runs the same cycle: a new technology generates massive early returns, the herd rushes in, supply saturates the market, prices collapse, quality collapses with them, and the trend rots from the inside out. Internet cafes. Bespoke custom CMS platforms. Over-engineered cloud stacks. AI chatbot wrappers. The loop never changes. Only the acronyms do.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr style=&quot;margin: 2em 0;&quot;&gt;
&lt;h2 id=&quot;the-stigma-of-ready-made&quot; tabindex=&quot;-1&quot;&gt;The Stigma of &amp;quot;Ready-Made&amp;quot;&lt;/h2&gt;
&lt;p&gt;This obsession with building things yourself rather than using standard tools is driven by a profound, almost aggressive cultural stigma against anything &amp;quot;ready-made.&amp;quot; It is woven into every layer of daily life in the Levant. You see it on Christmas Eve, when your grandma is huffing and puffing in total disapproval because your mom made the practical decision to buy a ready-made turkey rather than slaughtering and preparing one entirely by hand. You see it in old-school classrooms where teachers reject the very concept of a calculator because &amp;quot;everything must be calculated by hand.&amp;quot;&lt;/p&gt;
&lt;p&gt;We have a beautiful old proverb that translates to: &lt;em&gt;&amp;quot;Give your bread to the baker, even if he eats half of it.&amp;quot;&lt;/em&gt; It means you should leave specialized tasks to the professionals. But the tragedy of our culture is that everyone honestly thinks they are the master baker. You should see the look people give you when you tell them you are hiring a plumber. The immediate reaction is hubris: &lt;em&gt;&amp;quot;Why pay them? I can do it better myself.&amp;quot;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Local mechanics will genuinely convince themselves that they know better than the engineers at multi-billion-dollar German automotive laboratories. I remember a friend of mine whose dad bought a brand-new Mercedes S-Class. It needed a simple, routine oil change. Instead of taking it to the official dealership service center, he made the mistake of taking it to a neighborhood garage.&lt;/p&gt;
&lt;p&gt;When the mechanic handed the car back, he also handed over a small pile of four extra screws and a couple of detached sensors. The guy looked him dead in the eye, winked, and said: &lt;em&gt;&amp;quot;Listen, habibi, you don&#39;t need these. Mercedes only adds these extra parts to drive up the price of the car.&amp;quot;&lt;/em&gt; &lt;strong class=&quot;text-accent&quot;&gt;He honestly believed he had out-engineered Stuttgart in a garage in Beirut.&lt;/strong&gt;&lt;/p&gt;
&lt;hr style=&quot;margin: 2em 0;&quot;&gt;
&lt;h2 id=&quot;wordpress-you-think-we-are-poor&quot; tabindex=&quot;-1&quot;&gt;&amp;quot;WordPress? You Think We Are Poor?&amp;quot;&lt;/h2&gt;
&lt;p&gt;When the web boom finally hit the region, that exact same &amp;quot;four extra screws&amp;quot; mentality shifted straight into code. It became culturally &lt;em&gt;3ayb&lt;/em&gt; (shameful) to buy or use a ready-made website layout or platform. If you used a pre-built framework, you were considered poor, uneducated, or lazy. You &lt;em&gt;had&lt;/em&gt; to build it yourself from scratch to save face.&lt;/p&gt;
&lt;p&gt;The fallout of this mindset is a quiet disaster. The reality is that while our people are historically fantastic at cooking or physical car mechanics, the region was late to the web engineering trend, but everyone wanted to act like an elite software architect anyway.&lt;/p&gt;
&lt;p&gt;A production server is not a traditional cook. You can&#39;t just burn a dish, throw it in the trash, and start over. But these proud business owners refused to use established, standard platforms, so they gave their contracts to cheap, corner-cutting development companies who promised them a &amp;quot;custom, built-from-scratch&amp;quot; website.&lt;/p&gt;
&lt;p&gt;Under the hood, these custom websites were mechanical disasters. A bored teenager could SQL inject them in thirty seconds. They completely lacked basic security protocols, proper caching layers, and structural data validation. Those cheap agencies threw away all the &amp;quot;extra screws and sensors&amp;quot; that actually keep an enterprise safe, exposing customers&#39; names, addresses, and raw credit card data to anyone who asked. And when the database inevitably got breached or the server crashed under a minor traffic spike, the owner never blamed their own vanity or the cheap agency that ripped them off. They blamed the internal developer, the one who spent months trying to convince them to use WordPress or Shopify, only to be laughed out of the room and told it was &lt;em&gt;3ayb&lt;/em&gt;.&lt;/p&gt;
&lt;hr style=&quot;margin: 2em 0;&quot;&gt;
&lt;h2 id=&quot;same-vanity-new-acronyms&quot; tabindex=&quot;-1&quot;&gt;Same Vanity, New Acronyms&lt;/h2&gt;
&lt;p&gt;The instinct does not stop at the application layer. It mutates straight into cloud infrastructure, and in Developer Experience, you spend a surprising amount of your career cleaning up after it.&lt;/p&gt;
&lt;p&gt;I have been pulled into more than one architecture review where a team is drowning in deployment friction and YAML files that nobody fully understands anymore. One of them I still remember: the lead architect walked me through a service-mesh diagram the size of a subway map, leaned back, and said, with the exact same wink as that Beirut mechanic, &lt;em&gt;&amp;quot;We&#39;re building for scale.&amp;quot;&lt;/em&gt; When you trace these decisions back, the origin is always the same: someone read an engineering whitepaper from Netflix or Google, decided that a plain virtual private server was beneath their dignity, and convinced leadership they needed a bespoke spaceship. AWS EKS, Kubernetes, Docker registries, distributed service meshes, multi-zone RDS replication. The full stack. &lt;strong class=&quot;text-accent&quot;&gt;For a shop that takes forty orders on a good day.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;They burned thousands of dollars a month in compute costs while their developers drowned in the maintenance overhead. The same people who refused to use WordPress because it was &lt;em&gt;3ayb&lt;/em&gt; just signed off on an architecture three orders of magnitude more complex, because it was custom-built and had the right acronyms in the slide deck. The wink holds right up until the client sees the first cloud bill. Then the panic starts, and everyone suddenly wants to know why a small online shop costs more every month than a year of plain shared hosting.&lt;/p&gt;
&lt;p&gt;And the bill is never the end of it, because in tech every layer breeds the next. Every service you spin up now needs observability, so you bolt on metrics, traces, and dashboards. Observability is only worth anything if it tells you the moment something breaks, so you wire up alerting. Alerts that fire at three in the morning need a human awake to catch them, so now you are funding an on-call rotation. And the company stipend is the cheap part. When that Grafana alert goes off, it does not wake one engineer. It wakes his wife and his sleeping infant too, because the alarm is loud enough to rattle the whole building. I know, because mine once sat up in the dark and said, &lt;em&gt;&amp;quot;Stop it. I will pay you the thirty euros for on-call myself, just let us sleep.&amp;quot;&lt;/em&gt; And the best part? The alert was not even real. It was a demo service some engineer had spun up weeks earlier and forgotten to tear down, stuck in a crash loop on the dev cluster, paging the whole rotation over absolutely nothing.&lt;/p&gt;
&lt;p&gt;Each layer is a perfectly reasonable answer to the layer beneath it, and not one of them would exist if you had just shipped the boring thing. &lt;strong class=&quot;text-accent&quot;&gt;Complexity does not add up. It compounds.&lt;/strong&gt;&lt;/p&gt;
&lt;hr style=&quot;margin: 2em 0;&quot;&gt;
&lt;h2 id=&quot;the-real-bill&quot; tabindex=&quot;-1&quot;&gt;The Real Bill&lt;/h2&gt;
&lt;p&gt;The worst line on the bill is never the money. It is the human cost. A new engineer now has to wade through thousands of lines spread across a dozen microservices just to move a button. Every change drags a tail behind it: a review, a sign-off, a round of QA, a deploy window measured in coffee breaks. Worse, the services are so entangled that you cannot touch one without updating another, so the simple fix gets parked until next sprint. Next sprint it turns out to depend on a third service, so it gets parked again. And again. The work does not get cancelled. It quietly dies in the backlog while everyone stays busy.&lt;/p&gt;
&lt;p&gt;And none of it does a single meaningful thing for the client who trusted you with a simple website, the one who just wanted to earn a little more. Whatever revenue it brings bleeds straight back into the machine, feeding the same complexity that is starving the business it was built to grow.&lt;/p&gt;
&lt;hr style=&quot;margin: 2em 0;&quot;&gt;
&lt;h2 id=&quot;now-the-machine-talks-back&quot; tabindex=&quot;-1&quot;&gt;Now the Machine Talks Back&lt;/h2&gt;
&lt;p&gt;The current mutation runs on large language models.&lt;/p&gt;
&lt;p&gt;You open a banking app to check your balance and get trapped in a conversation with a sluggish chatbot asking about your financial goals. You open a food delivery app and instead of a clean, instant search filter, you have to type a natural language prompt to find a pizza place. A three-line &lt;code&gt;if/else&lt;/code&gt; block, a dropdown, or a basic index filter would have solved the problem in milliseconds with zero hallucination risk. Instead, the team shipped a conversational wrapper that takes fifteen seconds and regularly gets it wrong, &lt;strong class=&quot;text-accent&quot;&gt;because building the boring thing didn&#39;t make for a good quarterly demo.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;It happened to me last week. I had a small, specific request: add my infant son to an existing flight booking. One line item. I opened the airline app, tapped Manage Flight, and an AI assistant popped up asking what I wanted to do. I told it I wanted to add an infant to my ticket. It gave me a menu of options, none of which was the thing I had just asked for. I spelled it out again. This time it cheerfully sent me to an FAQ page about infant ticket prices: plenty of detail on what an infant costs, nothing on how to actually add one. I went back. Same loop, a different help section. Back again, another one. Eventually it suggested I email customer support, so I did. The reply came from another AI, which thanked me for my message and advised me to open the app and chat with the customer relations bot. The same bot. The same vicious circle.&lt;/p&gt;
&lt;p&gt;So I gave up on all of it. I drove to the physical store and, I will admit, took my frustration out on a poor agent who did not deserve it. She listened for ten seconds, clicked one button, and added my son to the booking. Five minutes, done. &lt;strong class=&quot;text-accent&quot;&gt;A human with a mouse beat the entire conversational stack the airline had spent a fortune building to replace her.&lt;/strong&gt;&lt;/p&gt;
&lt;hr style=&quot;margin: 2em 0;&quot;&gt;
&lt;h2 id=&quot;i-built-the-spaceship-too&quot; tabindex=&quot;-1&quot;&gt;I Built the Spaceship Too&lt;/h2&gt;
&lt;p&gt;I should be honest, because none of this comes from a clean conscience. The first version of this very website ran on AWS. RDS for a database it did not need, Elastic Beanstalk to orchestrate it, Grafana bolted on top so I could stare at dashboards for traffic that barely existed. A spaceship, for a portfolio. I had built the exact thing I now spend my career tearing down.&lt;/p&gt;
&lt;p&gt;Then I saw the bill.&lt;/p&gt;
&lt;p&gt;The only thing separating me from the petrol station owner was that I had spent enough years cleaning up other people&#39;s over-engineering to recognize my own. So I pivoted. I stripped it to the bone: Eleventy generating plain static files, served by Cloudflare Pages. No database. No cluster. No dashboards.&lt;/p&gt;
&lt;p&gt;It did not just get cheaper. It became literally free, faster, and easier to maintain. But the part I did not see coming was what it did to me. When a deploy took twenty minutes and every small change meant babysitting infrastructure, I left the site untouched for years. Strip the complexity away and the loop gets short enough that the work becomes fun again. I wrote about that exact shift in &lt;a href=&quot;/blog/posts/four-years-and-one-afternoon&quot;&gt;Four Years and One Afternoon&lt;/a&gt;. The less time you spend feeding the machine, the more you have for the only things a reader ever actually feels: the writing, and the handful of optimizations that matter.&lt;/p&gt;
&lt;hr style=&quot;margin: 2em 0;&quot;&gt;
&lt;h2 id=&quot;the-virtue-of-prevention&quot; tabindex=&quot;-1&quot;&gt;The Virtue of Prevention&lt;/h2&gt;
&lt;p&gt;As engineers, our highest virtue shouldn&#39;t be how much complexity we can manage. It should be how much complexity we can actively prevent.&lt;/p&gt;
&lt;p&gt;The screws that mechanic removed are still missing. The Kubernetes cluster will need a full-time engineer who costs more than the cluster does. The chatbot will get a one-star review from someone who just wanted a pizza.&lt;/p&gt;
&lt;p&gt;The customer is still hungry.&lt;/p&gt;
</content>
    <category term="tech"/>
  </entry>
  <entry>
    <title>Your AI Is a Fortune Teller</title>
    <link href="https://charbelwakim.com/blog/posts/your-ai-is-a-fortune-teller"/>
    <updated>2026-06-24T00:00:00.000Z</updated>
    <id>https://charbelwakim.com/blog/posts/your-ai-is-a-fortune-teller</id>
    <summary>It doesn&#39;t tell you the truth. It tells you what you came to hear. The danger was never the AI. It was the access policy built around it, and the context you fed it.</summary>
    <content type="html">&lt;p&gt;My grandfather grew up in Ras Baalbeck, a small town in the Bekaa Valley of Lebanon. When cars first arrived in the village, people were afraid. Not in a vague, anxious way. In a specific, practical way. They left hay and grain in front of the cars at night. They didn&#39;t want the machines to go hungry and come after them.&lt;/p&gt;
&lt;p&gt;He told me this when I was twelve or thirteen. I had just started getting into computers. I remember thinking: how could anyone believe a car needs to eat?&lt;/p&gt;
&lt;p&gt;I have thought about that story a lot lately.&lt;/p&gt;
&lt;p&gt;Human beings have always feared the things they don&#39;t understand. Fire, first. Then they learned to harness it, then to worship it. When cameras appeared in the nineteenth century, many people refused to be photographed. They believed the machine would capture their soul. When cars arrived in mountain villages across Lebanon, people left out hay.&lt;/p&gt;
&lt;p&gt;Now it&#39;s AI. The fear is real. The understanding is thin. And the people loudest about the danger are often the ones who understand it least. Or the ones who understand it best and need you not to.&lt;/p&gt;
&lt;h2 id=&quot;the-hay-and-the-keys&quot; tabindex=&quot;-1&quot;&gt;The Hay and the Keys&lt;/h2&gt;
&lt;p&gt;On June 11, 2026, Senator Mark Warner told a Senate committee that General Joshua Rudd, who runs the NSA and the Pentagon&#39;s Cyber Command, had briefed him on Anthropic&#39;s Mythos model. In Warner&#39;s recounting, it had &lt;a href=&quot;https://www.economist.com/briefing/2026/06/14/donald-trumps-blocking-of-anthropic-is-capricious-and-chaotic&quot;&gt;&amp;quot;broken into almost all of our classified systems, not in weeks, but in hours.&amp;quot;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Within a day, the line was everywhere, stripped to its scariest shape.&lt;/p&gt;
&lt;p&gt;What the retelling dropped: the AI did this during authorized red-team testing. The NSA asked it to try. They handed it access. It succeeded. That&#39;s what red-teaming is for. Warner&#39;s own point was almost the opposite of the headline. He was relieved a capability like this sat with a company willing to test it before shipping. By the time the claim reached most people, that part was gone.&lt;/p&gt;
&lt;p&gt;It&#39;s the same story as the hay. Nobody left it out for nothing. Someone opened the gate, gave the machine the keys, and then reported that the machine had moved on its own.&lt;/p&gt;
&lt;p&gt;This is how technology fear has always worked. You strip out the human decision that came before the outcome. The fire burned the house. The camera stole the soul. The car came alive. The AI hacked us.&lt;/p&gt;
&lt;p&gt;In each case, the actual chain of events started with a human hand.&lt;/p&gt;
&lt;p&gt;I understand why the story lands differently without that context. &amp;quot;AI broke into NSA systems in hours&amp;quot; is terrifying. &amp;quot;AI succeeded at the task we explicitly authorized it to do&amp;quot; is a press release. But omitting the context isn&#39;t just bad communication. It&#39;s the hay. It&#39;s leaving out the part where you made the decision.&lt;/p&gt;
&lt;p&gt;The danger was never the technology. It was the access policy built around it.&lt;/p&gt;
&lt;p&gt;This is not the same as saying AI is safe. Atomic energy isn&#39;t dangerous because of physics. It&#39;s dangerous because of who holds the button. AI is the same, only more accessible than a nuclear facility by orders of magnitude. The access question just reaches more people, in more situations, with less oversight.&lt;/p&gt;
&lt;p&gt;But the answer to that is not to fear the thing. It&#39;s to be serious about the access. And to educate. I knew at twelve that a car doesn&#39;t need to eat. Not because the fear was unreasonable. Because I learned what a car actually was. My grandfather&#39;s village wasn&#39;t naive. Knowledge doesn&#39;t reduce fear. It gives it meaning.&lt;/p&gt;
&lt;p&gt;You should be afraid of AI the way you should be afraid of a car. Not because it might eat you. Because someone might drive it drunk. AI needs the same treatment. Not less regulation, not more panic. More understanding.&lt;/p&gt;
&lt;h2 id=&quot;the-same-failure-smaller&quot; tabindex=&quot;-1&quot;&gt;The Same Failure, Smaller&lt;/h2&gt;
&lt;p&gt;The same pattern shows up at the individual level, quieter.&lt;/p&gt;
&lt;p&gt;A relative asked ChatGPT whether to visit Lebanon. They already knew what they wanted to do. They wanted to go. So they wrote: &amp;quot;I really want to visit but I&#39;m worried about the situation. Should I go?&amp;quot;&lt;/p&gt;
&lt;p&gt;ChatGPT told them to go. Here&#39;s how to stay safe. Here are the things to watch. Numbered list. Confident tone.&lt;/p&gt;
&lt;p&gt;If they had written &amp;quot;I don&#39;t think it&#39;s safe right now, what do you think?&amp;quot; ChatGPT would have agreed with that too. Same model. Same data. Opposite answer.&lt;/p&gt;
&lt;p&gt;This is not a bug. This is a feature. ChatGPT is not an oracle. It&#39;s a fortune teller. It tells you what you came to hear.&lt;/p&gt;
&lt;p&gt;They gave the model access to their conclusion. It handed it back. They called it advice. Just like the NSA gave the model the keys to its systems, and the headline called the result a breach.&lt;/p&gt;
&lt;p&gt;I&#39;ve watched developers paste a Jira ticket into an AI coding tool (title, description, acceptance criteria), flip on auto-accept, and go make coffee. They come back. The code is there. Tests pass. They open a PR. No thinking happened. The model doesn&#39;t know the rest of the codebase, the edge case flagged in standup last Tuesday, or what the ticket is actually solving for. It had the ticket. It had the cursor. That&#39;s it. And when it breaks in production, they blame the AI.&lt;/p&gt;
&lt;p&gt;At every level, from Senate hearings to pull requests, the failure is the same. People hand over access without thinking about what they&#39;re handing over. Then they&#39;re surprised by what comes back.&lt;/p&gt;
&lt;blockquote class=&quot;analogy-box&quot;&gt;
&lt;h3&gt;🎓 The Good Teacher Problem&lt;/h3&gt;
A bad teacher hands you the answer. You write it down, pass the test, forget it by Tuesday. A good teacher makes you work for it, asks the question a different way, points at what you&#39;re missing, waits. You find it yourself, and that one sticks. AI, used well, is the good teacher: you bring a half-formed thought and ask it to push back. Most people just want the answer. They get it, they move on, no sharper than when they started. An answer without the question behind it is just noise dressed up as signal.
&lt;/blockquote&gt;
&lt;h2 id=&quot;the-variable&quot; tabindex=&quot;-1&quot;&gt;The Variable&lt;/h2&gt;
&lt;p&gt;My grandfather&#39;s village eventually learned what cars were. They figured out you don&#39;t feed them hay. You feed them petrol. You learn to drive. A generation later, they couldn&#39;t imagine life without them.&lt;/p&gt;
&lt;p&gt;The fear didn&#39;t go anywhere. It just got smaller than the usefulness.&lt;/p&gt;
&lt;p&gt;That&#39;s probably where we end up with AI. The question is what we do between now and then. Whether we use the fear to demand backdoor access and call it safety. Whether we use the tool to confirm what we already believe and call it research. Whether we hand over the ticket and call it engineering.&lt;/p&gt;
&lt;p&gt;Or whether we treat access as the serious question it has always been. Who gets it. What context they bring. What they do with what comes back.&lt;/p&gt;
&lt;p&gt;That was the question with fire. With cameras. With cars in Ras Baalbeck.&lt;/p&gt;
&lt;p&gt;It&#39;s still the question.&lt;/p&gt;
</content>
    <category term="tech"/>
  </entry>
  <entry>
    <title>Finding the Spark: From Breaking PCs to Building Developer Experience</title>
    <link href="https://charbelwakim.com/blog/posts/finding-the-spark"/>
    <updated>2026-06-21T00:00:00.000Z</updated>
    <id>https://charbelwakim.com/blog/posts/finding-the-spark</id>
    <summary>How I went from breaking PCs as a kid to engineering Developer Experience, and the father who lit the spark but never got to see where it led.</summary>
    <content type="html">&lt;p style=&quot;text-align: center; font-style: italic; margin-bottom: 2em;&quot;&gt;To my Pap.&lt;/p&gt;
&lt;h2 id=&quot;floppies-graphics-cards-and-broken-metal&quot; tabindex=&quot;-1&quot;&gt;Floppies, Graphics Cards, and Broken Metal&lt;/h2&gt;
&lt;p&gt;My introduction to tech was a family accident. I was eight when the Super Nintendo first arrived in Lebanon. My dad took me on a visit, and his friend&#39;s thirty-year-old son was stuck on a level in &lt;em&gt;Super Mario&lt;/em&gt;. I watched for a minute, took the controller, and beat it. The guy was so impressed he gave me the Nintendo on the spot. Or that&#39;s how my dad told it for the rest of his life, to anyone who would listen. My dad, a communication engineer, saw the spark. From that day on, he steered me toward technology.&lt;/p&gt;
&lt;p&gt;A few years later, my uncle got a PC. I walked into his room and saw &lt;em&gt;DOOM&lt;/em&gt; running on floppy disks. In my young mind, it looked like a mountain of a hundred disks, though my engineering brain now knows it was probably closer to thirteen or fourteen. Seeing how fascinated I was, my dad scraped the money together through overtime and on-call weeks to buy us an entry-level PC when I was around twelve. That was the point of no return.&lt;/p&gt;
&lt;p&gt;After playing through &lt;em&gt;Need for Speed 2&lt;/em&gt;, I saved every coin of pocket money I could find to buy the newly released &lt;em&gt;Need for Speed 3&lt;/em&gt;. When I went to the local game shop to pick it up, the clerk behind the counter asked me a simple question: &lt;em&gt;&amp;quot;Do you have 3dfx?&amp;quot;&lt;/em&gt; I didn&#39;t even know what that was. &lt;em&gt;&amp;quot;No,&amp;quot;&lt;/em&gt; I replied, &lt;em&gt;&amp;quot;can you just put it on the CD for me?&amp;quot;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The guy laughed in my face. &lt;strong class=&quot;text-accent&quot;&gt;He laughed and laughed at my ignorance.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I left that shop so pissed off that I made a vow right then and there: I was going to learn exactly how a computer functions from the ground up. I saved up, bought my first 3dfx Voodoo card to get the game running, and immediately began dismantling the PC and the graphics card whenever I got bored, just to figure out how the components talked to each other.&lt;/p&gt;
&lt;p&gt;When I finally got that card seated into the motherboard and launched &lt;em&gt;Need for Speed 3&lt;/em&gt; for the very first time with actual 3dfx acceleration, that metallic Voodoo intro sound blasted through the shitty, white $5 computer speakers that squeaked more than made music. Those were the classic speakers that would erupt into a frantic, buzzing static whenever a nearby Nokia 3210 was about to receive a call or a text message, predicting the incoming transmission seconds before the brick phone even lit up. Between that rhythmic, predictive speaker buzz and the screeching, static symphony of the dial-up modem handshaking with the internet (sounds I will dear God never forget), my childhood bedroom felt like a data center.&lt;/p&gt;
&lt;p&gt;That same obsession didn&#39;t stay contained to my bedroom. I got deep into LAN gaming, and internet cafes were too expensive. My friends and I would organize sessions at each other&#39;s places, taking turns hosting, which meant one thing: disassembling the entire PC, packing the tower, monitor, keyboard, and cables into cardboard boxes, loading the whole twenty-kilogram operation into my dad&#39;s trunk, and hauling it across town. Some weekends they came to me, some weekends I went to them. Most sessions were Red Alert 2, Counter-Strike, or FIFA, and getting those games to actually run on our hardware was half the challenge. We became experts at hunting down patches, no-CD cracks, and every workaround the internet had to offer, just to squeeze another hour of multiplayer out of machines that had no business running those games. Looking back, the fact that I was willing to do that most weekends says everything about where my priorities were.&lt;/p&gt;
&lt;p&gt;All that constant disassembly had a cost. My dad was impressed by the curiosity but less so by the execution. I had, I am ashamed to admit, broken the family PC trying to put it back together one too many times.&lt;/p&gt;
&lt;hr style=&quot;margin: 2em 0;&quot;&gt;
&lt;h2 id=&quot;the-limewire-rite-of-passage&quot; tabindex=&quot;-1&quot;&gt;The Limewire Rite of Passage&lt;/h2&gt;
&lt;p&gt;Shortly after the hardware phase came another rite of passage for every young engineer trying to be a digital smart-ass: Limewire.&lt;/p&gt;
&lt;p&gt;My parents had banned me from listening to alternative rock music, which naturally meant the only thing I wanted to do was find a way to listen to it. I fired up the peer-to-peer network to secretly hunt down Linkin Park&#39;s &amp;quot;Numb&amp;quot;. Oblivious to basic cybersecurity, I found a link, clicked download, and double-clicked a file named &lt;strong&gt;&lt;code&gt;linkin_park_numb_mp3.exe&lt;/code&gt;&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;My teenage brain saw &amp;quot;mp3&amp;quot; and ignored the massive red flag of the &lt;code&gt;.exe&lt;/code&gt; extension. &lt;strong class=&quot;text-accent&quot;&gt;It wasn&#39;t the song.&lt;/strong&gt; It was malware masquerading as an executable. Within seconds, Windows XP was bricked, frozen over with cascading error pop-ups before collapsing into a terminal blue screen.&lt;/p&gt;
&lt;p&gt;When my dad saw the digital wreckage I had caused, he looked at the dead operating system, turned to me, and set a legendary, hard boundary:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;&amp;quot;I am not fixing this. You broke it, you fix it.&amp;quot;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;It took a frantic sprint of troubleshooting, reading manuals under pressure, and figuring out how to repair an OS from scratch, but I revived the machine. When the desktop finally booted back up, the teenage arrogance radiating off me was so intense that my dad just stood there staring at me. He looked at the working PC, then at my smug face, visibly caught in a deep paternal dilemma: he couldn&#39;t decide whether he should be proud of my engineering resourcefulness or slap me right across the face for being an insufferable little prick.&lt;/p&gt;
&lt;p&gt;The funny thing about that moment is how code propagates over time. Today, in my role in Developer Experience, we build the automated guardrails and safety nets for our engineering team. But occasionally, a developer will bypass a pipeline, ignore the telemetry, and deploy a rogue piece of breaking architecture that brings a staging environment to its knees.&lt;/p&gt;
&lt;p&gt;Whenever they come to me asking for a quick infrastructure reset to sweep it under the rug, I channel my inner dad and repeat the exact same words that forced me to grow up: &lt;strong class=&quot;text-accent&quot;&gt;&amp;quot;I am not fixing this. You broke it, you fix it.&amp;quot;&lt;/strong&gt;&lt;/p&gt;
&lt;hr style=&quot;margin: 2em 0;&quot;&gt;
&lt;h2 id=&quot;the-school-punishment-and-the-bed-cover-java-sessions&quot; tabindex=&quot;-1&quot;&gt;The School &amp;quot;Punishment&amp;quot; and the Bed-Cover Java Sessions&lt;/h2&gt;
&lt;p&gt;By the time I hit fifteen, high school computer classes were a nightmare of boredom. The classes were focused entirely on spreadsheets, sums, and averages. It felt like a waste of computing power and brain cells. Because of the knowledge I&#39;d gained from breaking my own PC at home, I knew the school&#39;s locked-down machines had a vulnerability. I realized I could simply reboot them into Safe Mode, bypassing all the school&#39;s restrictions.&lt;/p&gt;
&lt;p&gt;I discovered an old programming language called Logo (the one with the little turtle where you type commands like &lt;code&gt;RT 90&lt;/code&gt; to turn ninety degrees or &lt;code&gt;FD 100&lt;/code&gt; to draw a line). That turtle was my very first taste of writing code to command an environment.&lt;/p&gt;
&lt;p&gt;Eventually, the school dean caught me messing around outside the curriculum and was furious. But my computer teacher saw something else entirely. He stepped in and told the dean not to punish me conventionally. Instead, his &amp;quot;punishment&amp;quot; was sending me to his private office to just sit and read on his computer.&lt;/p&gt;
&lt;p&gt;It was a brilliant piece of mentorship, but there was a minor side effect: I immediately ended up &amp;quot;hacking&amp;quot; his computer. All I really did was click on the local network icon, but because the school&#39;s internal security architecture was practically nonexistent, the headmaster&#39;s PC appeared right on my screen. Within a few clicks, I was looking at a directory containing the grades of every student in the school.&lt;/p&gt;
&lt;p&gt;It wasn&#39;t the hack of the century, but it was an epiphany: &lt;em&gt;Wow, there is a whole world hidden beneath the surface of these interfaces.&lt;/em&gt; I went home, pulled the bed covers over my head with a flashlight, and begged my sisters not to snitch on me to our parents. I spent those long nights teaching myself Java from scratch. I wanted to understand the operating system, the networking, and what a sixteen-year-old&#39;s version of &amp;quot;ethical hacking&amp;quot; looked like.&lt;/p&gt;
&lt;hr style=&quot;margin: 2em 0;&quot;&gt;
&lt;h2 id=&quot;stepping-away-from-the-keyboard&quot; tabindex=&quot;-1&quot;&gt;Stepping Away From the Keyboard&lt;/h2&gt;
&lt;p&gt;Years later, I ran my own startup for five years. Partway through, my business partner wanted me off the keyboard and managing people full time, so I stepped away from it. There is no dramatic story in what followed, and that is the point. It was just slow, boring work that rotted me from the inside, dimming the spark that had kept me up under the bed covers at sixteen one standup and one spreadsheet at a time.&lt;/p&gt;
&lt;p&gt;When I sold my shares and left, I went back to what I actually loved: operating systems, automation, and the simple joy of fixing a machine so someone else could do their job.&lt;/p&gt;
&lt;p&gt;Then I joined Emma Sleep as a backend engineer.&lt;/p&gt;
&lt;hr style=&quot;margin: 2em 0;&quot;&gt;
&lt;h2 id=&quot;discovering-developer-experience&quot; tabindex=&quot;-1&quot;&gt;Discovering Developer Experience&lt;/h2&gt;
&lt;p&gt;While working on our legacy e-commerce backend, a colleague and I were tasked with a massive headache: automating a painfully slow, manual deployment process and creating ephemeral environments for our developers to test their code without stepping on each other&#39;s toes.&lt;/p&gt;
&lt;p&gt;I fell in love with the project. It wasn&#39;t about building a consumer feature. &lt;strong class=&quot;text-accent&quot;&gt;It was about fixing the broken factory floor.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;When our engineering department decided to ditch the monolithic system and migrate to a custom, self-built microservices architecture, the Head of Engineering approached me with a proposal: &lt;em&gt;&amp;quot;Do you want to try stepping into Developer Experience (DevEx)?&amp;quot;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I said yes immediately.&lt;/p&gt;
&lt;p&gt;The moment I stepped into DevEx, my whole trajectory made sense, even though I couldn&#39;t have put the job itself into words yet. It was the bridge between my passion for helping people and my love for raw software infrastructure. In DevEx, your users aren&#39;t random customers on the internet. &lt;strong class=&quot;text-accent&quot;&gt;Your users are your fellow engineers.&lt;/strong&gt; Your job is to look at their workflows, find every piece of annoying corporate friction, every slow build time, every broken deployment script, and automate it out of existence.&lt;/p&gt;
&lt;hr style=&quot;margin: 2em 0;&quot;&gt;
&lt;h2 id=&quot;the-architecture-of-the-spark&quot; tabindex=&quot;-1&quot;&gt;The Architecture of the Spark&lt;/h2&gt;
&lt;p&gt;Looking back, the path is only obvious in hindsight. Nobody sits down at a pristine, perfectly planned desk at eight years old and decides they want to be a Staff Developer Experience Engineer. The career doesn&#39;t exist in a textbook. The spark is forged in the friction: a condescending game store clerk, a Safe Mode hack in a boring computer class, a fake &lt;code&gt;linkin_park_numb_mp3.exe&lt;/code&gt; file detonating Windows XP under the watchful eye of a strict father who somehow knew I had it in me.&lt;/p&gt;
&lt;p&gt;If my childhood had been full of perfectly optimized, unbreakable systems, I probably never would have become an engineer. &lt;strong class=&quot;text-accent&quot;&gt;I learned how things worked because I broke them.&lt;/strong&gt; I learned how to fix them because nobody else was going to do it for me.&lt;/p&gt;
&lt;p&gt;That is the architecture of the spark.&lt;/p&gt;
&lt;hr style=&quot;margin: 2em 0;&quot;&gt;
&lt;h2 id=&quot;legacy-code&quot; tabindex=&quot;-1&quot;&gt;Legacy Code&lt;/h2&gt;
&lt;p&gt;My dad&#39;s name is Hikmat. The thick village accent in our family flattened it to &amp;quot;Hakmat&amp;quot;, and I used to tease him with it, dragging the wrong vowel out just to get a rise out of him. He pretended to hate it. He didn&#39;t.&lt;/p&gt;
&lt;p&gt;He saw me join Emma. He saw me start picking at deployment pipelines and broken developer workflows, back when I was still finding myself in DevEx and couldn&#39;t have told you what the job even was.&lt;/p&gt;
&lt;p&gt;He didn&#39;t fully get DevEx either. But he was curious about it the way he stayed curious about everything. On every video call he&#39;d ask me about what I was building. And every time I flew back from Germany to Lebanon, his old programming books came out the moment I walked through the door.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&amp;quot;Charbal, put your bags down and come look at these books I saved from my day.&amp;quot;&lt;/em&gt; Charbal, not Charbel. The same village accent that flattened Hikmat into Hakmat did the same to my name. So we&#39;d sit over volumes so obsolete they were practically archaeology, and he&#39;d walk me through how it all used to work. It didn&#39;t matter that they were ancient, not to him and not to me. He just loved that we still spoke the same language.&lt;/p&gt;
&lt;p&gt;He never saw me become a Staff Engineer. He left before the spark he&#39;d ignited in me, the one I&#39;d chased my whole life, finally got a name.&lt;/p&gt;
&lt;p&gt;That one stings, and no amount of clever phrasing is going to fix it. He&#39;s still &amp;quot;Hakmat&amp;quot; in my phone, and I still pay the bill on his number. I would rather die than let someone else have it.&lt;/p&gt;
&lt;p&gt;But he would have understood it in a heartbeat. He was a communication engineer. He spent decades diagnosing systems, recovering from failures, and breaking problems down until they were small enough to solve. He had a line he repeated so often it was just background noise when I was a kid, and only turned into signal after he was gone. It loses something on the way from Arabic into English, but it came out close to: &lt;strong class=&quot;text-accent&quot;&gt;&amp;quot;What makes a person successful is their ability to adapt and navigate their way out of any problem.&amp;quot;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;So every time I tear apart a broken pipeline, stare down a developer&#39;s impossible environment, or look an engineer dead in the eye and say &amp;quot;you broke it, you fix it,&amp;quot; I&#39;m just running the operating system he installed in me at eight years old, in front of a Super Nintendo, in a family friend&#39;s living room in war-stricken Lebanon.&lt;/p&gt;
&lt;p&gt;He never got to read this one. Learning to adapt to that is the last problem he left me.&lt;/p&gt;
&lt;p&gt;The last thing I ever said to him was over WhatsApp. I&#39;d asked him to send photos of some papers. He did, the way he always did. I wrote back, &lt;em&gt;&amp;quot;sallemon Hakmat.&amp;quot;&lt;/em&gt; He replied, &lt;em&gt;&amp;quot;ahlen.&amp;quot;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Sallemon, Pap.&lt;/p&gt;
</content>
    <category term="career"/>
  </entry>
  <entry>
    <title>Four Years and One Afternoon</title>
    <link href="https://charbelwakim.com/blog/posts/four-years-and-one-afternoon"/>
    <updated>2026-06-19T00:00:00.000Z</updated>
    <id>https://charbelwakim.com/blog/posts/four-years-and-one-afternoon</id>
    <summary>My personal site sat almost frozen for four years. Changing a profile picture took three commits and two merges. Then I opened one conversation with Claude, and in an afternoon it became a different site.</summary>
    <content type="html">&lt;p&gt;Changing my profile picture used to take three commits and two merges.&lt;/p&gt;
&lt;p&gt;I am not exaggerating. It is in the git history. &lt;code&gt;Change picture&lt;/code&gt;, then &lt;code&gt;Merge branch &#39;change-profile-picture&#39; into development&lt;/code&gt;, then &lt;code&gt;Merge branch &#39;development&#39;&lt;/code&gt;. A small ritual, performed by hand, to swap one image.&lt;/p&gt;
&lt;p&gt;That was the rhythm of this site for four years.&lt;/p&gt;
&lt;h2 id=&quot;the-site-that-sat-still&quot; tabindex=&quot;-1&quot;&gt;The site that sat still&lt;/h2&gt;
&lt;p&gt;The first commit landed on March 21, 2022. It was a free HTML template. jQuery, a stack of jQuery plugins, Bootstrap 3, a parallax library, an animation library, a full screen loading spinner, and a vendor prefix baked into every single id and class.&lt;/p&gt;
&lt;p&gt;It worked. So I mostly left it alone. Maybe that was laziness. Maybe the changes just never felt worth the time. Probably both.&lt;/p&gt;
&lt;p&gt;The git history reads like a heart monitor on a quiet night. Sixty commits in the first month while I set it up, then long flat lines. September 2022 to March 2023, nothing. June to December 2024, nothing. March 2025 to January 2026, nothing. When a change did happen, it was tiny. &amp;quot;Change site title.&amp;quot; &amp;quot;Fix description.&amp;quot; &amp;quot;Remove unused images.&amp;quot;&lt;/p&gt;
&lt;p&gt;And every one of those tiny changes paid a tax. Branch, commit, merge into development, push, test, merge into main, push, sync back. Out of 319 commits in this repo, 142 are merge commits. Nearly half of everything I ever did here was just moving changes from one branch to another, by hand.&lt;/p&gt;
&lt;blockquote class=&quot;analogy-box&quot;&gt;
&lt;h3&gt;🧾 The deploy ritual for a typo&lt;/h3&gt;
Imagine running your full production release process, change ticket and all, every time you fix a single typo. That was my workflow for a portfolio site. The ceremony was bigger than the change. So the changes stopped coming.
&lt;/blockquote&gt;
&lt;p&gt;The result was a time capsule. A 2022 template, still loading jQuery in 2026, still shipping a 514 file flag icon library I never used, still animating things on scroll that nobody asked for. It was not broken. It was just old, and quietly heavy, and I had no appetite to spend a weekend fixing what was not on fire.&lt;/p&gt;
&lt;h2 id=&quot;one-conversation&quot; tabindex=&quot;-1&quot;&gt;One conversation&lt;/h2&gt;
&lt;p&gt;It started on a slow afternoon, a boring World Cup group game on in the background. I had a Claude subscription I was barely using. On a whim I opened my laptop and thought: let&#39;s see what Claude Code can actually do.&lt;/p&gt;
&lt;p&gt;I did not hand it a spec. I talked to it the way I would talk to a sharp colleague sitting next to me. &amp;quot;Go through the site and remove anything unused.&amp;quot; &amp;quot;What do you think of the hero image?&amp;quot; &amp;quot;This feels like too much red.&amp;quot; &amp;quot;The first scroll jumps to the top, what is happening?&amp;quot;&lt;/p&gt;
&lt;p&gt;It went and looked. It found the dead code I had forgotten. It explained why the scroll was broken before fixing it. It pushed back when I asked for something that would hurt, and it told me when an idea was good.&lt;/p&gt;
&lt;p&gt;That last part matters more than the typing. The bottleneck on a personal site is never the typing. It is the activation energy. It is the gap between &amp;quot;I should really clean that up&amp;quot; and actually doing it on a Tuesday night.&lt;/p&gt;
&lt;p&gt;That gap collapsed.&lt;/p&gt;
&lt;h2 id=&quot;the-afternoon&quot; tabindex=&quot;-1&quot;&gt;The afternoon&lt;/h2&gt;
&lt;p&gt;Here is what came out of it, in roughly the time it used to take me to change a profile picture and merge it twice.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;jQuery and its whole plugin stack, gone. The site is now two small vanilla JavaScript files.&lt;/li&gt;
&lt;li&gt;Bootstrap&#39;s CSS trimmed from 134 KB down to 23 KB, keeping only the grid I actually use.&lt;/li&gt;
&lt;li&gt;The animation library, the parallax, the scroll reveals, the loading spinner, all removed. The site renders instantly now, on purpose.&lt;/li&gt;
&lt;li&gt;Images served as AVIF with fallbacks. A work thumbnail went from 92 KB to 26 KB.&lt;/li&gt;
&lt;li&gt;Real accessibility. Skip links, focus rings, semantic landmarks, reduced motion respected.&lt;/li&gt;
&lt;li&gt;Structured data, clean meta, a sitemap that updates itself on merge.&lt;/li&gt;
&lt;li&gt;The vendor prefix stripped out of every id, so the URLs are finally just &lt;code&gt;#about&lt;/code&gt; and &lt;code&gt;#work&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The raw numbers from that stretch:&lt;/p&gt;
&lt;div class=&quot;diff-stat&quot;&gt;
	&lt;span class=&quot;diff-files&quot;&gt;19 commits, 577 files changed&lt;/span&gt;
	&lt;span class=&quot;diff-add&quot;&gt;+890&lt;/span&gt;
	&lt;span class=&quot;diff-del&quot;&gt;-98,722&lt;/span&gt;
&lt;/div&gt;
&lt;p&gt;Most of those deletions were dead weight I had been carrying for years without noticing.&lt;/p&gt;
&lt;p&gt;The site you are reading this on is the result. It is lighter than it has ever been, and for the first time it does not look like a template.&lt;/p&gt;
&lt;h2 id=&quot;the-receipts&quot; tabindex=&quot;-1&quot;&gt;The receipts&lt;/h2&gt;
&lt;p&gt;I did not want to just claim it was faster, so I checked. Cloudflare had been quietly measuring the old site the whole time, so I have real before and after numbers.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Page load time:&lt;/strong&gt; 1.3 seconds, now 385 milliseconds. A 70.4% drop.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;First Contentful Paint:&lt;/strong&gt; 733 milliseconds, now 326 milliseconds. A 55.5% drop.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Largest Contentful Paint:&lt;/strong&gt; 1.2 seconds, now 346 milliseconds. A 71.2% drop.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It is not a clever trick. It is what happens when there is almost nothing left to load. No jQuery, no plugin stack, no animation library, a tenth of the CSS. The browser stopped doing work, so the page stopped making you wait.&lt;/p&gt;
&lt;p&gt;Responsiveness tells the same story. Cloudflare scores every click, tap, and keypress for how fast the page reacts, and 100% of them came back in the good range.&lt;/p&gt;
&lt;blockquote class=&quot;analogy-box&quot;&gt;
&lt;h3&gt;✈️ Not a vending machine, a co-pilot&lt;/h3&gt;
The mistake is to picture AI as a vending machine. Insert prompt, receive code. That is not what this was. It was closer to flying with a co-pilot who knows the systems cold. I still chose the heading. I still said the red was too loud and picked the slate. I still cropped my own face. The taste stayed mine. The grind did not.
&lt;/blockquote&gt;
&lt;h2 id=&quot;what-actually-changed&quot; tabindex=&quot;-1&quot;&gt;What actually changed&lt;/h2&gt;
&lt;p&gt;It is tempting to say the lesson is &amp;quot;AI writes code now.&amp;quot; That misses it.&lt;/p&gt;
&lt;p&gt;The honest lesson is about the cost of doing the right thing. For four years, the boring correct work, the accessibility, the dead code removal, the dependency cleanup, never happened. Not because I did not know it should. Because the cost was a weekend I never wanted to spend.&lt;/p&gt;
&lt;p&gt;When that cost drops to a conversation, the math flips. Suddenly the right thing is also the easy thing. The activation energy is gone, so the work gets done.&lt;/p&gt;
&lt;p&gt;So let me put a number on it, because I like numbers. My time runs about 100 euros an hour. Doing all of this by hand, the rewrite, the cleanup, the accessibility pass, the image pipeline, the testing, would have been a focused week. Call it 40 hours. That is 4,000 euros of my time, if I had ever found the week, which in four years I never did.&lt;/p&gt;
&lt;p&gt;The actual cost? One afternoon. Call it six hours of my attention, so 600 euros of my time, plus a 21 euro monthly subscription. That is 621 euros against 4,000. The tool that did the heavy lifting cost less than a nice lunch.&lt;/p&gt;
&lt;p&gt;I still make the decisions. I still own the taste, the voice, and every call about how this should look and feel. What I no longer own is the tax. The branch dance, the manual merges, the archaeology through old code to remember why something was there. The half hour lost fighting Photoshop to crop one image, then giving up and begging my wife to remove a background for me.&lt;/p&gt;
&lt;p&gt;The illustration at the top of this post is the same trick. I described it in a sentence, generated a handful, and picked the one I liked. The taste was mine. The hours in an image editor were not.&lt;/p&gt;
&lt;p&gt;Some of the repetitive parts I turned into my own commands. A new-post command that scaffolds the files for an article, a preview command that spins up a shareable link, a cleanup command that sweeps away branches once they are merged. The workflow that used to be a careful ritual is mostly a single keystroke now.&lt;/p&gt;
&lt;p&gt;And funnily enough, by the end I caught myself rushing through the day job so I could get home, open my personal laptop, and talk to Claude about my own site.&lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;text-accent&quot;&gt;My profile picture used to cost three commits. The rewrite cost an afternoon. That is the whole story, and it is also, I think, where a lot of our work is heading.&lt;/span&gt;&lt;/p&gt;
&lt;h2 id=&quot;update-june-19-2026&quot; tabindex=&quot;-1&quot;&gt;Update — June 19, 2026&lt;/h2&gt;
&lt;p&gt;After the post went out, someone asked whether Claude had tested the site on mobile. The honest answer at the time was: not yet.&lt;/p&gt;
&lt;p&gt;So I ran it. Playwright MCP at 390px viewport, burger menu open and close, LCP trace, full network audit. The kind of pass that used to mean setting up a device lab or at least plugging in a phone.&lt;/p&gt;
&lt;p&gt;The performance numbers came back clean. TTFB at 3 milliseconds, FCP at 64, full page load at 51. The LCP preload for the hero avatar was wired up correctly. No surprises there, which was its own kind of confirmation.&lt;/p&gt;
&lt;p&gt;It found two real things worth fixing. The X, LinkedIn, and GitHub icon links had no accessible text. A screen reader would hit them and announce nothing. And the burger button had a tap target of 24 by 30 pixels, well below the 44 pixel minimum Apple recommends. Easy to miss on a real thumb.&lt;/p&gt;
&lt;p&gt;Both fixed on a branch in about ten minutes.&lt;/p&gt;
&lt;p&gt;Then I turned the whole session into a reusable command. One slash command that starts the dev server, checks Playwright is available, runs the mobile and desktop audit, and prints a structured pass or fail. Next time any layout or accessibility change lands, the full test is one line. Then wired up Lighthouse CI so those numbers from the post can&#39;t quietly regress. Every push to main now runs the audit and fails if any score drops below 90.&lt;/p&gt;
&lt;p&gt;The pattern is the same one the post is about. The QA loop that used to require a device, a cable, and a block of time now takes a conversation. The right thing is still the right thing. It just costs less to do it.&lt;/p&gt;
</content>
    <category term="tech"/>
  </entry>
  <entry>
    <title>The Tri-Regional Operating System: Composing a Career Across the Levant, Europe, and the GCC</title>
    <link href="https://charbelwakim.com/blog/posts/the-tri-regional-operating-system"/>
    <updated>2026-06-14T00:00:00.000Z</updated>
    <id>https://charbelwakim.com/blog/posts/the-tri-regional-operating-system</id>
    <summary>An engineering post-mortem on navigating three drastically different work cultures, and the ultimate personal hack for maintaining your sanity across conflicting cultural operating systems.</summary>
    <content type="html">&lt;h2 id=&quot;protocols-payloads-and-the-refusal-to-log-into-infrastructure-that-is-not-your-own&quot; tabindex=&quot;-1&quot;&gt;Protocols, Payloads, and the Refusal to Log Into Infrastructure That Is Not Your Own&lt;/h2&gt;
&lt;p&gt;In systems architecture, running the same application across different infrastructure stacks requires a deep understanding of environment variables. If you don&#39;t adjust your configuration, the system crashes.&lt;/p&gt;
&lt;p&gt;The same rule applies to a career that crosses geographies. Moving between the Levant, Western Europe, and the GCC is not just a time zone change. Each region runs on a completely different set of protocols: how you communicate, how you handle risk, how human networks are structured.&lt;/p&gt;
&lt;p&gt;What reads as &amp;quot;high performance&amp;quot; in one region triggers a fatal error in another. To stay functional as a global professional, you have to learn how to run conflicting cultural operating systems side by side without burning out your own circuits. My journey through these three systems ran through chaotic startups, late-night street food, an economic collapse, and an unforgettable 4K video stream.&lt;/p&gt;
&lt;hr style=&quot;margin: 2em 0;&quot;&gt;
&lt;h2 id=&quot;the-levant-running-on-raw-metal-high-volatility-high-resilience&quot; tabindex=&quot;-1&quot;&gt;The Levant: Running on Raw Metal (High Volatility, High Resilience)&lt;/h2&gt;
&lt;p&gt;Early professional life in the Levant comes with no corporate scaffolding. No standardized pipelines. No predictable infrastructure. You are running on raw metal.&lt;/p&gt;
&lt;p&gt;When I co-founded my first startup straight out of my computer engineering studies, it was pure chaos. Nothing was standard. It was a constant cycle of shipping whatever code we had ready to keep the servers running. We eventually found some stability when we carved out a niche building CMS platforms for major radio networks across the region. That stability finally gave us the opportunity to grow up, to bridge from a scrappy startup into a real company. We just never took it. We stopped seeing eye to eye, and I walked away in search of something new.&lt;/p&gt;
&lt;p&gt;That something new was Keeward. They sent me to Paris at 25, lit up my love for how Europeans work, and eventually ran out of runway, stopped paying salaries for six months, and shut down.&lt;/p&gt;
&lt;p&gt;After Keeward, I joined a major retail giant to manage their e-commerce infrastructure and was handed a solo task: migrate the entire platform from Magento 1 to Magento 2, completely alone. Melissa, my then girlfriend and now my wife, used to meet me on Hamra Street at all sorts of godless hours for a quick bite, bringing snacks and little notes so I had something to look forward to before diving back into production. The only truly good thing that came out of that period was knowing she was the one.&lt;/p&gt;
&lt;p&gt;Then Lebanon&#39;s macroeconomic collapse triggered a total system failure. My savings vanished overnight. What had been a genuinely good $5,000 USD salary started being paid in local currency, and hyperinflation knocked my purchasing power down to around $50 USD. The system forced a termination loop. I proposed to Melissa somewhere in the middle of all that chaos, because when everything is collapsing around you, you know fast who you want next to you. I secured a path to Germany. She relocated with her family to Saudi Arabia while we figured out the next move together.&lt;/p&gt;
&lt;p&gt;And here is the paradox of the Levant: despite the godless hours, the toxic management, and everything collapsing around us, it was genuinely fun. We were happy. We went skiing, we traveled, we stayed out all night. Maybe it was a coping mechanism. Maybe the human middleware was just that resilient. Either way, we ran a high-joy background process right alongside a failing infrastructure. We simply forgot the madness outside the door and lived.&lt;/p&gt;
&lt;p&gt;But the scars are real, and they do not fully go away. When the 25th falls on a Sunday and my salary does not land until Monday, I still feel it. A flash of panic, a tightening in the chest, even though I know it is just a weekend clearing delay and everything is fine. Or when my internet drops from 1 Gbps to 400 Mbps, a small part of my brain still braces for three days without a connection. Rationally I know these are ghosts. But the body remembers what the mind has moved on from.&lt;/p&gt;
&lt;blockquote class=&quot;analogy-box&quot;&gt;
	&lt;h3&gt;⚡ The Takeaway&lt;/h3&gt;
	&lt;p&gt;The Levant builds elite firefighters. It creates an engineering mindset that is hyper-adaptable and highly resourceful. But without an orchestration layer, the human cost of constant context-switching and toxic hierarchy eventually forces a system shutdown.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;western-europe-the-decoupled-microservice-framework&quot; tabindex=&quot;-1&quot;&gt;Western Europe: The Decoupled Microservice Framework&lt;/h2&gt;
&lt;p&gt;When I finally moved to Germany to join a major e-commerce company, the psychological relief was immediate. I still remember my first week in Frankfurt: waking up knowing the water would run, the electricity would stay on, and my salary would land on time, every time. The very first thing I did in my new apartment was stream a movie in glorious, unbuffered 4K. A simple data-throughput test that confirmed I had landed in a stable system.&lt;/p&gt;
&lt;p&gt;The real cultural shock came later. In Western Europe, roles are tightly decoupled. Everyone has a clearly defined boundary, and they protect it without apology.&lt;/p&gt;
&lt;blockquote class=&quot;analogy-box&quot;&gt;
	&lt;h3&gt;🛑 Protocol Mismatch: The After-Hours Error&lt;/h3&gt;
	&lt;p&gt;During my first few weeks in Germany, my Levant-conditioned brain told me to answer a work email late at night to show dedication and avoid the risk of being yelled at. The next morning, HR promptly told me not to work after hours. Overworking was not logged as a badge of honor. It was flagged as a failure of resource scheduling and a violation of system boundaries.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Adapting to this took time. Coming from a world of constant firefighting, it felt genuinely strange to close my laptop at 5:00 PM or leave my work phone at home during vacation without having an anxiety spiral.&lt;/p&gt;
&lt;h2 id=&quot;the-gcc-the-high-velocity-greenfield-scale-up&quot; tabindex=&quot;-1&quot;&gt;The GCC: The High-Velocity, Greenfield Scale-Up&lt;/h2&gt;
&lt;p&gt;The third region in this stack is the GCC, built around hyper-growth hubs like Riyadh and Jeddah. My wife was building her architectural career there, so learning to interface with this environment was not optional.&lt;/p&gt;
&lt;p&gt;The GCC operates like a heavily funded greenfield scale-up. The budget feels unlimited, and companies want enterprise-grade infrastructure deployed overnight. But that ambition runs on top of deeply entrenched, top-down hierarchies. The culture rewards visible hustle, constant availability, and managing upward.&lt;/p&gt;
&lt;blockquote class=&quot;analogy-box&quot;&gt;
	&lt;h3&gt;👔 Protocol Mismatch: The T-Shirt Incident&lt;/h3&gt;
	&lt;p&gt;A friend based in Riyadh invited me to his office to explore working together. I showed up in a t-shirt. The look on his face told me everything. In the GCC corporate environment, appearance is part of the stack. How you dress, how you carry yourself, how visible your dedication is. These are not soft signals. They are performance metrics.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Beyond the dress code, the deeper shock was the rhythm. Phone calls from bosses at 4 or 5 in the morning are not an incident. They are the normal operating cadence. Constant availability is not a perk you offer, it is a baseline expectation. And underneath all that energy, the infrastructure is often surprisingly fragile: no formal contracts, no shared drives, no backups. Entire projects managed over WhatsApp threads. The ambition is real, but the architecture holding it together is held with duct tape.&lt;/p&gt;
&lt;p&gt;Then there is the hierarchy. In the GCC, tasks are not tasks. They are orders. You do not push back, you do not flag a risk, and you certainly do not say no, even when you know something is wrong. Raising a concern is often read as insubordination rather than engineering judgment. You execute, you stay visible, and you keep your reservations to yourself.&lt;/p&gt;
&lt;p&gt;The disconnect hits hard when you live between these two worlds. Your European firmware tells you to protect your focus and flag problems early. The GCC environment reads both as weakness, operating on the assumption that real professionals comply first and ask questions never.&lt;/p&gt;
&lt;hr style=&quot;margin: 2em 0;&quot;&gt;
&lt;h2 id=&quot;refactoring-the-noise-the-ultimate-lifestyle-hack&quot; tabindex=&quot;-1&quot;&gt;Refactoring the Noise: The Ultimate Lifestyle Hack&lt;/h2&gt;
&lt;p&gt;Early in my cross-regional career, my instinct was to defend my choices. I would get genuinely angry when people called me lazy for closing my laptop at 5:00 PM, or greedy for asking for overtime pay. I wasted a lot of CPU cycles trying to explain a modern, balanced way of working to people running completely different societal code.&lt;/p&gt;
&lt;p&gt;But trying to refactor an entire region&#39;s legacy mindset is a losing battle. The better path is a much simpler response protocol.&lt;/p&gt;
&lt;blockquote class=&quot;analogy-box&quot;&gt;
	&lt;h3&gt;🔌 The Drop-Connection Protocol&lt;/h3&gt;
	&lt;p&gt;When someone asks why you closed your laptop at 5:00 PM or turned off your phone on vacation, do not explain yourself. Look them in the eye, smile, and say &quot;You&#39;re completely right.&quot; Then drop the connection. Return status &lt;code&gt;200 OK&lt;/code&gt; and move on. People who genuinely want to understand will ask real questions. People who do not are not owed your data.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;the-northern-star-root-certification&quot; tabindex=&quot;-1&quot;&gt;The Northern Star: Root Certification&lt;/h2&gt;
&lt;p&gt;Real operational peace comes when you stop using external validation as your primary dashboard metric. Big personal disruptions have a way of clearing out the low-priority log files. When my father passed away, the background noise of corporate politics and cultural judgment lost all its power overnight. I stopped caring about the critics.&lt;/p&gt;
&lt;p&gt;In a way, it was a long-deferred update. I grew up in Lebanon, but my father had worked all over Europe, Germany in particular, studied at a German school, and genuinely loved German engineering. I still remember the teary eyes when I told him I had a job offer there, that weird mix of proud and heartbroken that only a father watching his only son leave can pull off. He raised us with a European mindset from the very start. That was my original configuration file. My origin story, if you want one.&lt;/p&gt;
&lt;p&gt;My dad is my Northern Star. A man of unbreakable faith and unshakeable moral clarity. He held a senior position at the national telecommunications company, watched colleagues make millions by compromising their integrity, and never took a cent that was not his. He would even pay out of pocket for things the company should have provided, because the alternative was letting his standards slip.&lt;/p&gt;
&lt;p&gt;When he passed, the routing protocol he had installed in me throughout my childhood finally made sense. One I had spent years resisting without ever understanding why it mattered so much. But carrying that inheritance comes with weight. Now that I am a father myself, my biggest fear is not a failed deployment. It is whether I can pass that same clarity down to my own child, especially when he is constantly exposed to the exact opposite values.&lt;/p&gt;
&lt;p&gt;In a world running on conflicting algorithms and compromised ethics, making sure his inner operating system is anchored to something solid is my ultimate life project.&lt;/p&gt;
&lt;p&gt;As my dad always said: the most important architectural goal in life is to lay in bed at night with a clean conscience. Trust your own telemetry, hold your boundaries, return a cheerful &lt;code&gt;200 OK&lt;/code&gt; to the critics, and keep your core system safe.&lt;/p&gt;
</content>
    <category term="career"/>
  </entry>
  <entry>
    <title>Debugging the Cultural Stack: Career, Parenting, and Monolithic Legacy Code</title>
    <link href="https://charbelwakim.com/blog/posts/debugging-the-cultural-stack"/>
    <updated>2026-06-11T00:00:00.000Z</updated>
    <id>https://charbelwakim.com/blog/posts/debugging-the-cultural-stack</id>
    <summary>Navigating the technical and emotional optimization problem of modern dual-income parenting. This post explores the cultural friction between Western Europe&#39;s shared-load architecture and the traditional monolithic frameworks of the GCC, offering a systems engineering perspective on managing external judgment, professional identity, and family dynamics.</summary>
    <content type="html">&lt;h2 id=&quot;architecting-a-modern-life-across-conflicting-cultural-operating-systems&quot; tabindex=&quot;-1&quot;&gt;Architecting a Modern Life Across Conflicting Cultural Operating Systems&lt;/h2&gt;
&lt;p&gt;Building a demanding career while raising a young family is already hard. But when you&#39;re doing it across two very different cultures (Europe&#39;s fast-paced, independent professional world and the GCC&#39;s community-driven, deeply traditional one), the system can experience severe runtime errors.&lt;/p&gt;
&lt;p&gt;The tension often shows up in an unexpected place: how you raise your kids and run your home. Specifically, how people react when a two-income family uses a nanny. If you work from home while your partner leads demanding projects in a corporate environment, you&#39;ve probably hit that exhausting wall of judgment from the people around you.&lt;/p&gt;
&lt;h2 id=&quot;the-root-cause-conflicting-operating-systems&quot; tabindex=&quot;-1&quot;&gt;The Root Cause: Conflicting Operating Systems&lt;/h2&gt;
&lt;p&gt;To understand why well-meaning friends, relatives, or neighbors can drive you crazy with passive-aggressive comments, we have to look at the software running behind their worldview.&lt;/p&gt;
&lt;blockquote class=&quot;analogy-box&quot;&gt;
	&lt;h3&gt;💻 Systems Analogy #1: The Legacy Monolith vs. Microservices&lt;/h3&gt;
	&lt;p&gt;Traditional cultural frameworks operate like an ancient, highly optimized Monolithic codebase. Every feature (family role) is tightly coupled. If you try to decouple a piece, say outsourcing a few hours of childcare to a nanny so a mother can lead an engineering or architectural team, the legacy system flags it as a fatal system failure. It simply lacks the cognitive hardware to parse a modern, distributed architecture.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;When people see a woman working long hours, leading teams, and coming home happy while a nanny covers for a few hours, the legacy filter reads it as &amp;quot;laziness&amp;quot; or &amp;quot;slacking.&amp;quot; They&#39;re running an old blueprint where a woman&#39;s worth is measured entirely by visible domestic work. They completely miss the huge value she&#39;s building for her family through her career: financial, emotional, and long-term.&lt;/p&gt;
&lt;h2 id=&quot;the-geographical-variance-gcc-vs-europe&quot; tabindex=&quot;-1&quot;&gt;The Geographical Variance: GCC vs. Europe&lt;/h2&gt;
&lt;p&gt;Living across cultures means constantly compiling your life for two very different runtime environments. What society expects from you around childcare, money, and careers looks completely different depending on where you are:&lt;/p&gt;
&lt;table class=&quot;table&quot;&gt;
	&lt;thead&gt;
		&lt;tr&gt;
			&lt;th&gt;The GCC / Traditional Matrix&lt;/th&gt;
			&lt;th&gt;Western Europe / Modern Matrix&lt;/th&gt;
		&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
		&lt;tr&gt;
			&lt;td&gt;&lt;strong&gt;The Extended Village Monolith:&lt;/strong&gt; Society expects raising children to be a full-time job for the mother, backed by grandparents and relatives who live close by.&lt;/td&gt;
			&lt;td&gt;&lt;strong&gt;The Modular Infrastructure:&lt;/strong&gt; Society treats daycares, kitas, and professional nannies as a normal part of life for families where both parents work.&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;&lt;strong&gt;The Financial Asymmetry Model:&lt;/strong&gt; Traditional thinking says a woman&#39;s salary is her personal spending money. She shouldn&#39;t &lt;em&gt;need&lt;/em&gt; to use it to run the home. Critics see her working to pay for a nanny as a nonsense equation: why work just to pay someone else to do what is seen as her job?&lt;/td&gt;
			&lt;td&gt;&lt;strong&gt;The Shared Load Architecture:&lt;/strong&gt; Financial overhead, career growth, and domestic investments are treated as a shared, load-balanced ledger. Both partners are expected to invest in the household, and combining income to support both careers is seen as the smart move.&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;&lt;strong&gt;The Misogyny Cache:&lt;/strong&gt; A clear double-standard exists: when a man works long hours, he&#39;s praised as a provider. When a woman does the same, she&#39;s often seen as neglecting her family.&lt;/td&gt;
			&lt;td&gt;&lt;strong&gt;Symmetric Professional Evaluation:&lt;/strong&gt; Ambition is measured the same for men and women. Career success is seen as something that benefits the whole family, not something that takes away from it.&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;&lt;strong&gt;The Stigma of the &quot;Alone&quot; Child:&lt;/strong&gt; Leaving a baby with a nanny during a work call is seen as abandonment, ignoring the fact that the other parent is literally in the next room.&lt;/td&gt;
			&lt;td&gt;&lt;strong&gt;Boundary Optimization:&lt;/strong&gt; Keeping work blocks and parenting blocks separate is seen as the healthiest way to stay fully present for both.&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&quot;refactoring-your-defense-how-to-cope-with-the-noise&quot; tabindex=&quot;-1&quot;&gt;Refactoring Your Defense: How to Cope with the Noise&lt;/h2&gt;
&lt;p&gt;When the constant drip of cultural judgment starts to drain your battery, your first instinct might be to fight back, explain yourself, or defend your choices. That&#39;s a waste of processing power. Explaining yourself implies they have the right to audit your implementation. Instead, protect your system&#39;s peace with these strategies.&lt;/p&gt;
&lt;h3 id=&quot;agree-and-disarm&quot; tabindex=&quot;-1&quot;&gt;Agree and Disarm&lt;/h3&gt;
&lt;p&gt;When you get a passive-aggressive comment, don&#39;t push back. Flip it by agreeing cheerfully. If someone says, &lt;em&gt;&amp;quot;It&#39;s a shame she works such long hours away from the baby,&amp;quot;&lt;/em&gt; just say: &lt;em&gt;&amp;quot;I know, we&#39;re so lucky her projects are going so well that we can afford great, dedicated care. It&#39;s an amazing setup!&amp;quot;&lt;/em&gt; The legacy critic has nowhere to go from there.&lt;/p&gt;
&lt;h3 id=&quot;put-your-routine-on-an-information-diet&quot; tabindex=&quot;-1&quot;&gt;Put Your Routine on an Information Diet&lt;/h3&gt;
&lt;p&gt;Stop exposing your internal data variables to public APIs. People can only judge what they can see. Keep conversations about your schedule, the nanny, and work totally vague: &lt;em&gt;&amp;quot;Everything is going great, the baby is thriving, and we couldn&#39;t be happier.&amp;quot;&lt;/em&gt; Then immediately switch the conversation to them.&lt;/p&gt;
&lt;h3 id=&quot;re-frame-the-attachment-model&quot; tabindex=&quot;-1&quot;&gt;Re-frame the Attachment Model&lt;/h3&gt;
&lt;p&gt;Attachment is not a fixed-size disk partition where giving a slice to a nanny leaves less room for the parents. Babies are fully capable of forming healthy bonds with caregivers, family, and friends without weakening the bond with their parents. Your consistent presence during feeds, changes, and all the in-between moments ensures your signature is permanently written to their primary core memory.&lt;/p&gt;
&lt;h3 id=&quot;redirect-the-output&quot; tabindex=&quot;-1&quot;&gt;Redirect the Output&lt;/h3&gt;
&lt;p&gt;Frustration is energy. When you feel the urge to argue, explain, or vent, don&#39;t pipe it into a conversation that will go nowhere. Redirect it somewhere useful: a workout, a project, a creative outlet. This post, for instance, exists entirely because of that frustration. Channel it into something that outlasts the argument.&lt;/p&gt;
&lt;blockquote class=&quot;analogy-box&quot;&gt;
	&lt;h3&gt;🎚️ Systems Analogy #2: High-Throughput Buffering&lt;/h3&gt;
	&lt;p&gt;Trying to manage a critical technical meeting or architectural alignment while simultaneously pacifying an infant on your lap is not &quot;efficient&quot;. It is poor resource scheduling. It causes context-switching lag, introduces high jitter, and spikes your internal CPU. Utilizing a caregiver for specific blocks acts as a buffer, allowing you to execute tasks with zero lag, so that when the block ends, you can drop your work context entirely and offer 100% clean, unthrottled presence to your child.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;the-scoreboard-that-matters&quot; tabindex=&quot;-1&quot;&gt;The Scoreboard That Matters&lt;/h2&gt;
&lt;p&gt;The ultimate patch for external judgment is accepting that your energy is limited. You can&#39;t refactor society&#39;s legacy code, and you shouldn&#39;t burn yourself out trying to get a passing grade from people still running a completely different century.&lt;/p&gt;
&lt;p&gt;The best response to cultural noise is a happy, high-performing household. When your partnership is built on real mutual respect, where you genuinely support and celebrate each other&#39;s wins and work together to build a life that fits your ambitions, everything else becomes background noise.&lt;/p&gt;
&lt;p&gt;Your child&#39;s happiness, your partner&#39;s professional fulfillment, and your own mental health are the only metrics on your dashboard. Trust your telemetry, ignore the legacy logs, and keep building.&lt;/p&gt;
&lt;blockquote class=&quot;analogy-box&quot;&gt;
	&lt;h3&gt;📊 Systems Analogy #3: Define Your SLOs, Ignore the Noise&lt;/h3&gt;
	&lt;p&gt;In production, you don&#39;t alert on every possible signal. You define the metrics that matter to your service&#39;s health and discard the rest. Monitoring everything leads to alert fatigue and engineers who stop trusting their own dashboards. Cultural judgment is the same kind of noise. Define your SLOs: your child&#39;s happiness, your partner&#39;s fulfillment, your own mental health. Everything else is a false positive. Silence the alert.&lt;/p&gt;
&lt;/blockquote&gt;
</content>
    <category term="life"/>
  </entry>
</feed>
