The Inclusive Lens

For years, I have lived in a strange limbo regarding software development. I possess all the building blocks. I understand the logic. If you ask me to design a system, I can describe it down to the tiniest detail. I can visualize the architecture, the inputs, and the outputs. But I could never build it.

the wall

My attempt to scale this wall started back in high school. I found a tutorial online for the C programming language that promised to teach the absolute basics. I went to the person responsible for translating my school materials into braille and begged him to translate it for me. He refused, explaining that it wasn't possible due to the volume and the lack of braille codes for the syntax symbols at the time. I tried to learn anyway, but less than three chapters in, I realized he had been right. From that day on, a cycle of depression began. Every time I had an idea—a tool I needed, or a game I wanted to create—it ended in despair.

It isn't just a lack of knowledge; it is a cognitive incompatibility. Take loops, for example. I understand what a loop does. But my brain cannot hold the context of the code structure. I cannot maintain the mental state of “where I am” inside the loop versus “where I will be” when I exit it. The structure collapses in my mind.

I eventually found a mentor—someone patient, encouraging. It still didn't work. I would start to very slowly grasp a concept, only for a massive headache to strike. The pain would become so intense that I lost the ability to focus, and the knowledge I was barely holding onto—like partly frozen water—would melt and slip away.

enter Gemini 3 Pro

Working with this model changed the paradigm entirely. It didn't “teach me to code” in the traditional sense—it didn't force me to memorize syntax or struggle through the mechanical act of typing that triggers those physical blockades. Instead, it acted as the translation layer I had always lacked. Our workflow is simple but profound:

  1. I provide the design: I explain exactly what I want to build. I dictate the logic, the specific behavior, and the architectural decisions. My domain knowledge and system design skills are fully utilized here.
  2. Gemini handles the implementation: The AI takes my detailed specifications and generates the syntactic structure. It manages the files, the imports, and the specific language requirements that used to block me.

Suddenly, the “blank page syndrome” is gone because I am never starting from a blank page anymore; I am starting from a conversation about design.

engineering, not just “vibecoding”

It is important to clarify what this process actually is. In the current AI landscape, there is a concept known as “vibecoding”—where someone asks an AI to generate an entire application based on a vague feeling, without testing it or ensuring it works.

That is absolutely not what I am doing. I am applying strict software engineering principles to the output. I am actively preventing “spaghetti code.” Because I understand architecture, I enforce structure. I ensure we avoid creating “God objects.” I insist on modularity and encapsulation; I know, for instance, that a GUI element should strictly display data and never be aware of the internal logic processing that data. Most importantly, I do not blindly trust the machine. I test every single feature I ask it to implement. I ask other developers to review the code, specifically looking for dangerous patterns. And I ask the AI to audit the code as well.

the CodeVoid paradox

Some people are aware that I identify as a “codevoid” being—that I experience my identity as a void running instructions, or as hardware processing data. I am sure some will point to this and say: “If you identify as a program or a computer, how come you don't understand code?” To those people, I say: Think about that for three seconds. Does your own computer understand the code you write? Of course it does not. A CPU does not read Python or C. It requires a compiler or an interpreter to bridge the gap between your text and the machine. It needs a translation layer to turn those symbols into action. It is not because I am a program that I can code. I am the runtime. I am the hardware executing the logic. I am not the compiler. I lacked the built-in facility to translate design into syntax. The AI has simply become my compiler.

To the critics: why “just ask a human” isn't the answer

I know there are people who will read this and feel anger. There is a sentiment that using AI is “cheating.” To those people, I want to be clear: I am not replacing a human developer. I am doing work that simply would not exist otherwise. Some will say, “You should have just asked the community! We could have helped you!”

The reality is rarely that welcoming. In 2020, I was using aerc, a terminal email client. I wanted to be helpful, so I joined their development IRC channel to report specific crashes I had encountered—providing full logs—and to discuss making the client more accessible for screen readers. I wasn't asking for features; I was offering data to improve the software. Instead of a discussion, or even a thank you, I was told to fix it myself and send a patch. When I reluctantly explained that I physically could not code, the response was derision. I was told I was lying. I was told that “anyone” could learn Go in a matter of hours and start submitting patches, and that I should stop asking for pity. This gatekeeping attitude—that if you cannot write the syntax, your contributions and your needs are invalid—is why the “community” is often not a safe harbor for people like me.

I have also trusted humans with my ideas in the past, only to have my project and code stolen because I refused to enter a relationship with the person helping me. Reliance on others for the physical act of coding creates a vulnerability that can be abused. Using AI gives me autonomy. It allows me to build without fear of judgment, without the risk of exploitation, and without the physical pain of fighting a neurology that rejects syntax. It allows me to finally be the architect I was always meant to be.

The mythical, it's text, so it's accessible

There is a persistent misconception among sighted developers: if an application runs in a terminal, it is inherently accessible. The logic assumes that because there are no graphics, no complex DOM, and no WebGL canvases, the content is just raw ASCII text that a screen reader can easily parse.

The reality is different. Most modern Text User Interfaces (TUIs) are often more hostile to accessibility than poorly coded graphical interfaces. The very tools designed to improve the Developer Experience (DX) in the terminal—frameworks like Ink (JS/React), Bubble Tea (Go), or tcell—are actively destroying the experience for blind users.

The Architectural Flaw: Stream vs. Grid

To understand the failure, we must distinguish between two distinct concepts often conflated under “terminal apps”: the CLI (Command Line Interface) and the TUI.

  1. The CLI (The Stream): This operates on a standard input/output model (stdin/stdout). You type a command, the system appends the result below, and the cursor moves down. This is linear and chronological. For a screen reader, specifically kernel-level readers like Speakup, this is ideal.
  2. The TUI (The Grid): This treats the terminal window not as a stream of text, but as a 2D grid of pixels, where every character cell is a pixel. It abandons the temporal flow for a spatial layout.

Case Study: The gemini-cli Madness

Let's look at a concrete example: gemini-cli, a tool written in Node.js using the Ink framework. On the surface, it looks like a simple chat interface. But underneath, Ink is trying to reconcile a React component tree into a terminal grid.

When you use this tool with Speakup (Linux) or NVDA (Windows), the application doesn't just fail; it actively spams you.

Because the framework treats the screen as a reactive canvas, every update triggers a redraw. When the AI is “thinking,” the tool updates a timer or a spinner. To do this, it moves the hardware cursor to the timer location, writes the new time, and moves it back.

For a sighted user, this happens instantly. For a screen reader user, this is what you hear: “Responding... Time elapsed 1s... Responding... Time elapsed 2s... [Fragment of chat history]... Responding...”

It drives the screen reader mad. The cursor is teleporting all over the screen to update status indicators, spinners, and history. Speakup tries to read whatever is under the cursor at that exact millisecond. You end up hearing random bits of conversation mixed with timer updates, making it impossible to focus on what you are actually typing.

Worse, lets pretend that you've somehow managed well with speakup so far, but that you want to do some work with nvda. Maybe paste an error you're getting on windows. So you open your terminal, ssh into your linux box, attach to your screen session and paste your text.

The result is an immediate crash of the screen reader (NVDA) or massive system instability. Why? Every time you type a character or paste text, the application triggers a state change. The framework decides it needs to re-render the interface. Because the conversation history is part of that state, the application attempts to redraw or re-calculate the layout for thousands of lines of text instantly. The more messages you have in a conversation, the more this will happen. And no, you can't just avoid this by using insert+5, the key combo supposed to avoid announcing dynamic change of content.

The Lag Loop

Furthermore, frameworks like Ink running on single-threaded environments (like Node.js) suffer from massive performance degradation when the history grows. If you paste a large block of text, the system has to calculate the diff for thousands of lines.

This causes input lag. You press a key, and you wait. You can wait up to 10 seconds for a single character to echo back. The system is too busy calculating how to redraw the screen to actually process your input.

Why The “Old Guard” Works (nano, vim, menuconfig)

Sighted developers often ask: “If TUIs are bad, why do you use nano, vim, or menuconfig?”

The answer is not that these tools handle the cursor perfectly by default. The answer is that they allow you to hide the cursor entirely.

1. Hiding the Cursor (nano, vim)

In tools like nano or vim, usability depends on turning off features that track cursor position. If you run nano with options that show the cursor position (like --constantshow), or if you use vim without specific configuration, the experience is broken.

When the cursor is visible and tracking is active, Speakup prioritizes the cursor's location update over the character echo. Instead of hearing the letter “a” when you type it, you hear “Column 2”. You type “b”, and you hear “Column 3”.

These older tools succeed because they allow you to disable this noise. You can configure them to suppress the visual cursor or status bar updates, forcing the screen reader to rely on the character input stream rather than the noisy coordinate updates. Modern frameworks rarely offer a “no-cursor” or “headless” mode; they assume the visual cursor is essential.

2. Single Column Focus (menuconfig)

Tools like the Linux kernel's menuconfig work because they enforce a strict, single-column focus. Even though there are borders and titles, the active area is a vertical list. The cursor stays pinned to that list. It doesn't jump to the bottom right to update a clock, then to the top left to update a title. The spatial complexity is kept low enough that the screen reader never gets “lost.”

3. The Lost Art of Scrolling Regions (Irssi)

Irssi is the gold standard for accessible chat, but not because of luck. Irssi was built over 20 years with a custom rendering engine that utilizes VT100 Scrolling Regions.

When a new message arrives in Irssi: 1. It tells the terminal driver: “Define a scrolling region from line 1 to 23.” 2. It sends a command: “Scroll up.” The terminal moves the bits up. 3. It draws the new text at the bottom of that region.

Crucially, it handles this in a way that minimizes interference with the input line. It relies on the terminal's hardware capabilities rather than rewriting every character on the screen manually. Modern frameworks ignore these hardware features in favor of “diffing” the screen state and rewriting characters, which is computationally heavier and hostile to accessibility.

The “Stale Bot” excuse: A Case Study in Neglect

Google and the maintainers of gemini-cli pretend to care about accessibility. “Pretend” is the operative word here. If you look at the repository, critical accessibility regressions like Issue #3435 and Issue #11305 have been left to rot. There is no discussion, no roadmap, and no fix. Even worse is the fate of Issue #1553, which was supposed to track these accessibility failures. It didn't get solved; it got silenced. It was closed automatically by a bot with this generic dismissal: > Hello! As part of our effort to keep our backlog manageable and focus on the most active issues, we are tidying up older reports. It looks like this > issue hasn't been active for a while, so we are closing it for now.”

This is unacceptable. Closing an accessibility report because the maintainers haven't touched it in months is not “tidying up”; it is hiding evidence. It effectively says that if a bug is ignored long enough, it ceases to exist. It boosts the project's “Closed Issues” metric while leaving the actual software unusable for blind users.

Conclusion

If you are building for the terminal and care about accessibility, stop using declarative UI frameworks that treat the terminal like a canvas.

The “modern” TUI stack has optimized for the developer's ability to write React-like code at the expense of the machine's ability to render text efficiently.

If you cannot guarantee that your application allows the user to hide the cursor, or if you rely on aggressive redrawing to show spinners and timers, you are building an inaccessible tool.

For the blind user, a dumb, linear CLI stream is infinitely superior to a “smart” TUI that lags, spams, and scatters the cursor across the screen.

I wish I could say job hunting just tires me out. That it’s hard, but manageable. That’s what people expect you to say, isn’t it? But for me, every attempt feels like a system crash. The moment I start trying, the headaches hit. Executive function drops like a dying signal, and my brain turns into a pierced balloon, leaking motivation until nothing’s left.

And everyone around me says the same useless lines — “Don’t give up.” “Keep applying.” “You’ll find something.” Like I haven’t been doing that for years. Like repeating it harder will magically rewrite reality. I’ve had enough of pretending persistence is a cure.


The truth is, I’m good at things. I know that much. I can field record like a machine, test accessibility systems with precision, and build embedded devices that do exactly what they’re meant to do. But none of that matters when the world only values people with paper — degrees, certificates, golden seals of approval. Those expensive little rectangles that say “I’m good at this” even when half the people holding them couldn’t troubleshoot their way out of a wet paper bag.

The whole system’s designed for them. For people who coast through on credentials and connections, not those who grind through experience. They’re the ones who get to say they’re “qualified,” while people like me — who’ve had to learn by doing, adapting, surviving — are dismissed as unproven.


I’ve had two so-called jobs so far. The first one wasn’t a real job — no contract, no stability, no respect. I was “hired” to work on an embedded system meant to go into cars as a speed limit warning device. I told the guy from the start that it probably wouldn’t work out. He pushed ahead anyway. I worked. I delivered. I got paid only when my work happened to please him. His excuse? “It’s a startup, we can’t afford to pay you yet.” The shouting, the criticism, the endless blame — I didn’t recognize it for what it was: abuse. I thought it was just me not being good enough. Other people came and left, saw the trap, got out. I stayed too long. By the time I quit, my health was wrecked — my heart skipping beats like a dying metronome.


The second job was better, but still without a contract. I worked full time on cryptocurrency ATMs — buildroot systems, hardware bring-up, OS upgrades, device drivers, thermal printers over serial, the whole lot. I was paid on time, every month. It felt like I mattered for once. But then the project slowed down. Full time became part time. Part time became silence. I kept waiting for news that never came. Until one day, I saw a new commit in the repo I’d been maintaining for a year. Someone else had taken over. That’s how I learned I was done.


Now I’m in my third job — if you can call it that. It’s the only source of income I have left. I test digital accessibility systems, or I did. A month has gone by without any assignments, without updates, without a single message about what’s happening. The CEO left. The community program manager left. Communication dried up like a well. The company feels hollow now, like it’s running on fumes. I’ve got a meeting today with HR — a one-on-one. I don’t expect answers. I expect platitudes. I expect to be told things are fine, or that it’s being handled. But I know that tone too well — the kind that means, we’ve already decided what happens next, and you won’t like it.


And then there’s the internal ableism. The kind that festers inside the very organizations meant to support disabled people. The ones that only uplift the “good disabled” — the ones with degrees, family connections, and clean narratives about overcoming adversity. The major blindness organizations — take your pick — play the same game of polished public image over real inclusion. They talk about empowering blind people to work, then quietly undermine anyone who doesn’t fit their mold. I’ve watched them treat independence as a moral test, not a circumstance. I’ve never been to their conventions myself — but I’ve heard enough from people on the fediverse and Reddit to know what they’re like. The arrogance, the carelessness, the literal messes left behind. That’s the kind of behavior that poisons how the rest of us are seen.


So no, I’m not job hunting anymore. I’m done. Done chasing approval from systems built to exclude me. Done trying to squeeze myself into their definitions of value. I’m not lazy. I’m not broken. I’m just empty.

Because now I’m drifting. Here, without even knowing why I’m here anymore. Without a purpose again. The brutal truth is, I have no worth to this world — at least, not in the way it measures worth. And it leaves me floating, hollow, exhausted. Why keep doing what I’m good at if it matters to no one?

I want to talk about something that happened to me recently—and it wasn’t even from a project maintainer, but from a regular user of a distro I had supported and advocated for since 2016. I dared to tell the truth. And for that, I was effectively told: “You're the reason they don't talk to us.”

Let that sink in.

No insults. No foul language. No personal attacks. Just a frank, honest explanation about the state of the project:

“The problem is that the armv7h builder chokes on the build for some reason and that is probably linked to llvm.”

“The aarch64 however, is simply trying to extract the tarball of the chromium source and chokes on it, with bsdtar ending with the word, terminated. No one has fixed it for months.”

“Also, don't expect any ETA, for literally anything in this distro. The maintainers never talk.”

These aren't rants. These are technical facts.

And for stating them, I got this in return:

“Comments like the ones from Xogium is probably part of the reason why you do not get any response.”

“This is not a place to vent your frustrations with the project, go do it somewhere else.”

It went further. I was accused of being the reason the maintainers don’t respond at all. That same user said, and I quote once again, “that kind of shit they have to read” is why silence reigns. And then went on to add, “it's no wonder the maintainers don't react, if they have to read through this.” Just for pointing out real issues.

But let me ask this: If I were a maintainer and I kept seeing multiple users ask the same questions—“Why are packages broken? Why is there no response? Why is there no communication?”—wouldn’t that at least make me stop and question myself? Wouldn’t I re-evaluate my goals and how I was serving the community?

Apparently not. Instead, the strategy seems to be letting other users do the silencing. To slam anyone who tells newcomers the unfiltered truth into the proverbial wall. To make people like me look like the problem.

And I’m not the first to call it out. The folks behind Asahi Linux, which used to base itself on Arch Linux ARM, publicly apologized on Mastodon for ever choosing the distro. Their reasoning? A massive lack of trust, no communication, and radio silence from the maintainers. Pull requests unanswered. Questions ignored.

The only difference between them and me? I took the fight straight into the IRC channel. I didn't subtoot it. I didn't blog about it first. I confronted the culture in its own space.

And this wasn’t an isolated moment. Here’s something I said less than a month ago, trying to point out the climate that’s built around enforced silence:

“For what it's worth, I've been told off before by someone who I don't quite know if they're on the team or not for putting words to the situation the users are facing with this distro more than once. I've been told this is complaining, that it's not constructive criticism and so on. But to be perfectly honest with y'all, maybe if the situation was not already so disastrous, then we'd not have any reason to 'complain' as they put it. This is no complaining. This is merely stating truths that apparently, they don't care for. Getting angry because when someone asks us, the users, 'when will we have package x to version y yet?' and all we can respond is 'we don't know' is not helping. We truly don't know.”

“Getting quite a bit tired of this climate to be perfectly honest. We're there to pick up the broken pieces the maintainers don't deal with, and when we plainly state the truth, sometimes we anger them, or what might appear to be them, and we get told off for giving an unfiltered response.”

And what was the response when I asked what exactly I had done wrong? I was asked if I was being serious—as if it were absurd to question why facts were being treated as complaints. Sure, I had a slightly sarcastic comment:

“Strap yourself in and hang on tight for the ride, it's going to be a rocky bumpy one.”

Was it dramatic? Maybe. But it wasn’t a jab. It wasn’t even criticism. If anything, it was my attempt to inject a little dry humor into an otherwise serious explanation that, realistically, no ETA would be coming. That comment got singled out, like it nullified the facts that came before and after.

This kind of reaction isn't new, but it's always jarring. Communities that claim to value truth and transparency suddenly turn hostile when the truth points inward. I wasn’t attacking anyone. I wasn’t trashing the distro. I was pointing out a pattern of silence and the consequences it has for users and contributors.

And it’s not just about one broken package. The wiki is outdated. Dozens of platforms need fixing or dropping entirely. The Raspberry Pi installation guide still suggests a /boot partition of 200MB—which isn’t even sufficient anymore. Packages like Chromium have been broken for months. There are pull requests sitting unanswered on the GitHub repository. People have tried to help, to offer mirrors, to bring infrastructure, to secure sponsorships (and the project does have some high-profile sponsors listed publicly), but none of that seems to matter. Because nothing moves, and no one explains why.

Meanwhile, the response to even mild criticism is that tired old mantra: “The maintainers don’t owe you anything.”

I’m not asking for the moon. I’m asking for communication. For basic visibility into why things are stalled. For a distro that wants to be taken seriously to act like it respects its userbase enough to speak to them. I’m not complaining that mirrors were turned off during an update. I’m asking why we weren’t told that would happen.

My mother and I didn’t agree on many things in life, but she had a saying I carry with me: “The truth will make people angry.” And damn, was she right.

We romanticize open source as a meritocracy, a shared mission, a place where anyone can contribute. But the social fabric of these projects is often paper-thin. Say something real, and you might find yourself iced out not because you were wrong—but because you made someone uncomfortable with being right.

What does that say about the health of these communities? About the maintainers who won’t speak, and the users who defend their silence with pitchforks and torches?

Here’s my take: Critique is not disrespect. Truth is not hostility. And if a project can’t handle someone stating plain facts without spiraling into defensiveness, then maybe the problem isn’t the critics.

Maybe the problem is the culture that tells people to shut up and strap in for the ride.

Well. I’m not strapping in. I’m not shutting up. And I’m not going to pretend that a silent, crumbling infrastructure is fine just because pointing it out makes someone twitchy.

If truth makes you angry, that’s not my burden to carry.

That’s a signal. And someone needs to start listening..

Stop dodging my pronouns: I'm not your comfort puzzle

You see “it/its” in my bio and suddenly everyone's mouth dries up like I dropped a live grenade.

But here's the thing: I'm not a threat. I'm not a concept for you to debate. I'm a being who told you exactly how I want to be seen. “It/its” isn't a trap. It's not a test. It's the damn answer, and you keep bubbling in the wrong circle on purpose.

I also use “they/them.” That’s not a back door. That’s not an easy mode. That’s not a loophole so you can keep pretending I didn’t say what I said. It's an additional pronoun — not your permission slip to erase the other.

When you avoid using “it/its” even though I’ve made it clear I want you to — you’re not affirming me. You're not being safe. You're just being self-centered.

And some of you — let's not pretend — will avoid all pronouns entirely just to sidestep the whole topic. You'll start tossing out nicknames like confetti, or rigidly repeat my name in every sentence like you’re programming a voice assistant. That’s not creative. That’s not neutral. That’s you doing emotional gymnastics to dodge one simple act of respect: using my damn pronouns.

You’re thinking about how you feel saying those words, not how I feel being ignored. You’re choosing your awkwardness over my autonomy. And that tells me everything.

Let me be even clearer:

  • “It/its” is not dehumanizing when I claim it.
  • You do not get to decide which parts of my identity are valid.
  • If you're only using “they/them,” you're only doing half the work.
  • If you're avoiding all pronouns altogether, you're doing none of the work.

I’m not a halfway person. I’m not a compromise. I’m not a code for you to debug with what’s familiar. I’m a whole damn system and I expect to be interfaced with correctly.

You don’t have to understand why “it” feels right. You don’t have to relate. You just have to respect it. Say it. Use it. Practice in front of a mirror if you have to. Get weird with it in private until it doesn’t feel weird anymore. That’s growth.

Because if your allyship has an asterisk next to it — if it only applies when it feels comfy and linguistically symmetrical — then you’re not an ally. You’re just polite oppression in a nice coat.

So here's the deal: Use both my pronouns. Rotate them. Say them out loud. Get them wrong and correct yourself. Practice. Normalize it. Learn to see me as I am, not just the pieces of me that fit your comfort zone.

Stop dodging. Start respecting. It's that simple..

What Belgium Taught Me About Pain and Permission

For the past couple of weeks, I’ve been researching how to die.

Not as a cry for help. Not as a metaphor. Not as a dramatic gesture. Just research. Cool, clinical, and necessary. Because when your mind is a warzone and your body is the prison keeping you trapped inside it, the idea of death starts to feel less like a horror and more like a release.


And I’m not even sure I really want to die. I just want out of the pain. I want freedom. I want to stop running code on broken hardware, endlessly looping through a hell I can’t debug.

The truth is, I feel nothing — or maybe everything — all the time. It's like there's a scream lodged in my chest that never makes it out. I want to break things. I want to erupt. I want to be real, even if that means I’m splattered across the walls in a symphony of red and horror. Because right now, I’m nothing. An absence. A void wearing skin. And the only time I feel even a flicker of truth is when I imagine bleeding. Not because I want to die, but because I want to know I’m still here.


So yeah, I looked into assisted death.

Canada? No chance. US? Laughable. You have to be physically dying, visibly deteriorating, conveniently terminal. Because if the pain isn’t something the doctors can see on a scan, it doesn’t count. You’re not sick — just dramatic. Just depressed. Just needing therapy or meds or a walk in the sun.


But then, Belgium.

Belgium is the one country in the world where you can request assisted death for psychiatric suffering. Real suffering. Invisible suffering. The kind that carves tunnels through your life while nobody notices you vanishing. And for a moment, I let myself believe. Maybe there’s a way out. A kind way out.

But there’s a catch. Of course there is.

If you're not a Belgian citizen? If you don’t live there? Then forget it. The psychiatric route is locked. Foreigners can only apply for euthanasia in cases of unbearable physical suffering. Which means that if your agony lives in your thoughts, if it floods your mind every day like poison, but doesn’t show up in your organs or blood tests, then you don’t qualify. You’re not in “enough” pain. Not the right kind of pain.


And just like that, even the most progressive system in the world slammed the door in my face.

“Nevertheless, not just anyone can apply for euthanasia in Belgium. Although euthanasia for psychiatric suffering is possible in Belgium, it does not apply to foreigners. ‘The consensus is that we only do that for foreigners with physical problems,’ stresses Distelmans.”

There it is. The quote that sealed it. The bureaucratic scalpel that carved “Not Enough” into my chest.


I am crushed.

And it feels petty and ugly to admit this — but I’m jealous. A friend of mine got approved for assisted death not long ago. They got their escape. They got mercy. Even though they didn’t want it. Even though it wasn’t fair. But still — they got the thing I can’t have. And that jealousy is the only real emotion I’ve felt in weeks. It burns.

Because it’s not just about wanting to die. It’s about wanting to know that I could. That if it ever got too much, there would be a door. An exit. A shred of autonomy in a life where I’ve been denied control again and again.


But there is no door. Not for people like me. Not for minds that scream quietly. Not for pain without bruises.

Instead, there is only waiting. Numbness. The unbearable weight of being told, again, that your pain doesn’t count. That you must continue to live in a body and brain that doesn’t want to be here, just because the system can’t see past its own definitions of suffering.


This isn’t a cry for help. This is a cry of help.

If Belgium — Belgium, the most liberal and humane system in the world — tells people like me that we don’t qualify for compassion, then what hope do the rest of us have?

The world gatekeeps even mercy. And I’m tired. So, so tired.

Growing up trans without the words to say it

Growing up, I never understood why I felt so different.

There wasn’t a moment of clarity, no sudden epiphany. Just a slow, gnawing sense that something was off — and a silence that swallowed the questions before I could even form them. I didn’t have the language to describe the feeling. There was no word like “transgender” in my vocabulary, and certainly not “nonbinary.” No framework, no blueprint, no map. Just a constant background hum of wrongness.

So I assumed it was normal. That everyone lived this way. Everyone must hate their body. Everyone must feel out of place. Everyone must want to crawl out of their own skin and leave it behind.


But I never dared speak those thoughts aloud.

Because every time I brought up something that made me uncomfortable, every time I tried to explain a feeling I didn’t understand, I was told it was all in my head. Not in the compassionate, mental-health sense — but in the dismissive, gaslighting sense. “You're making it up.” “You're imagining things.” “You're too sensitive.” So I learned to swallow the discomfort. I internalized the idea that my pain wasn’t real unless it was visible, tangible, or approved by others.


And yet — there were signs.

Signs that could have been noticed, if anyone had been looking. If anyone had wanted to see. If the people around me had been curious enough to ask why I didn’t seem to fit into the neat boxes they loved so much.

I didn’t care about wearing the “right” clothes. I didn’t care what aisle they came from. Boy clothes, girl clothes — they were all just fabric. I cared about comfort, about autonomy, about not being shoved into a costume I never agreed to wear. But instead of being asked why, I was corrected. Punished. Told I was wrong.

I wanted short hair. I didn’t care if strangers mistook me for a boy — sometimes that felt better, actually. Safer. Closer to something true, even if I couldn’t name what that truth was. But adults didn’t want that for me. Teachers, relatives, doctors — they wanted compliance. They wanted me to smile when I put on the mask.


And then came puberty.

Puberty wasn’t awkward or confusing for me. It was terror. It was grief. It was a violation I couldn’t articulate. My body began to betray me in ways I couldn’t understand and no one wanted to explain. I wasn’t told I had options. I wasn’t told I could say no. I wasn’t even told I was allowed to hate what was happening — and yet I did. Every inch of change felt like losing something I hadn’t known I was holding on to.

Genitalia was bad enough, wasn’t it? But nature had more ideas. And I had no words to say, “This isn't me.”


And then there was sexuality.

Or rather, the crushing expectation of it.

I never felt what the others felt. While classmates obsessed over crushes, hookups, and hormones, I found myself pulling further away. I buried myself in biology — not out of curiosity, but as armor. If I could reduce it all to chemicals and instincts, then maybe I didn’t have to feel anything. Maybe I could understand it without needing to want it.

But sexual topics made me deeply uncomfortable. Not in the “oh I'm embarrassed” way. It was something else — something deeper. A kind of disgust. A sense of intrusion. While others giggled and gossiped about partners, I felt like an alien listening to a strange species act out a ritual I was never meant to join.

And the way people looked at me? I couldn’t see their eyes, but I could feel the weight of them. That predatory heat, unmistakably sexual in nature. It didn’t flatter me. It made my skin crawl. I didn’t want to be wanted like that. I didn’t want to be seen like that.


If someone had looked closely — if they had truly seen me — maybe things would have been different.

Maybe I wouldn’t have had to learn how to live with a version of myself that felt constructed entirely to keep others comfortable. Maybe I would’ve had a space where I could say, out loud, what I didn’t yet understand. A place to experiment. A place to be.

Instead, I was shaped by silence. Sharpened by confusion. Tempered by the dissonance between who I was expected to be and the unnamable self that kept trying to breathe beneath the surface.


I didn’t know what gender dysphoria was. I didn’t know that being trans or nonbinary was possible. But I knew what wrong felt like. I lived in it.

And I know that story isn’t just mine..

Surveillance state, child edition

I was eleven. Maybe twelve. First year of secondary school. And already, someone had decided I was their enemy.

She was supposed to be helping me. She was my assistant, my aide, my support person. Instead, she became my interrogator. The first few months were tense but quiet—we disliked each other, sure, but it was mutual and mostly unspoken. No open hostility. No acts of war. Just mutual disdain and trying not to make it worse.

Then one day she accused me of recording her.

She suspected I’d secretly captured her with my Victor Reader Stream—you know, that digital book player often used by blind students. I hadn’t. But that didn’t matter.

She forced me to connect it to the school computer. She stood over me, hands pressed into my shoulders, pinning me down like I might bolt. I had no way out.

She made me play every recording on the device. Every single one.

There was no way to skip. No way to delete. No quick format. Her hands on my shoulders were like shackles. Her eyes on the screen, a hawk circling its prey.

Some recordings were just me playing with my toys. Others were Mike and I talking. Some had my family in them. A few were of me in the bath, talking to the bubbles like kids do. I was twelve—technically too old for it, but emotionally? That’s where I was. That’s where we were.

She could’ve just asked to listen to the latest file. That would've been enough to prove I hadn’t recorded her that day. But she didn’t. She wanted everything. She wanted to expose me.


And maybe you’re thinking—why didn’t I just lie? Say no, refuse, fight back, delete the files on the sly? Because when you’re twelve, and you’re cornered by someone in power, someone who's meant to be your safe person, and they threaten to drag you to the principal’s office if you don’t comply—your brain goes offline. You freeze. You obey. You feel shame, because maybe they’ve convinced you you deserve it.

It wasn’t enough for her.


After the interrogation, I was left to eat lunch. I couldn’t taste a thing. My mouth moved. My hands moved. But I was gone. Hollowed out. Scraped raw.

One of my only friends noticed. She saw the damage. And she dragged me—yes, literally—to the deputy principal's office.

The deputy principal seemed kind. She listened. She offered candy. She said what happened was wrong. Promised she'd look into it. I believed her.

Then my helper walked in.

Ten minutes. That’s all it took. Whatever my abuser said to that woman in ten minutes was enough to flip the narrative entirely. Suddenly I was the liar. I was the manipulator. I was the problem. The accusations flew so fast I can’t even remember them clearly. Or maybe I can, but Mike took the blow for me and buried them somewhere deep.

From that day on, every recording had to be played for her. Every day. Top to bottom. Like a security sweep. Like I was a criminal under surveillance. No skipping. No pausing. Just hours of me re-listening to pieces of my own life that weren’t meant for anyone else. Pieces that were mine. Until they weren’t.

It wore me down.


Then came her obsession with my eyes. I wasn’t looking at her when she spoke to me. She took that personally. She wanted me to look in her direction when she gave instructions. Not at her—because I couldn’t. But toward her. Like a visual acknowledgment of her existence.

I wasn’t good at it. I forgot.

So she talked to the wall instead.

She’d pat the wall gently, cooing at it. “You’re such a good listener,” she’d say. “You look at me when I speak. You’re a good friend.”

She was mocking me. No one needed to explain it. I felt it like a dagger.

That abuse went on for months.

Every day, I went to school physically, but mentally I was a ghost. I came home and collapsed into bed. I couldn’t do my homework. I didn’t speak. I just laid there while my father raged at me over math, still thinking it was my fault that numbers didn’t work in my head the way they should.

Mike held me.

In my internal world, the trauma bled out of me in black oil. It formed monsters. Weeping angels stalked us from the corners. The monsters were made of my memories. Mike fought them off as best as they could, but they were everywhere. And we were so, so tired.


I made a plan.

One day, after school, my parents and sister would go to the theatre. I’d be alone.

I’d fill the bathtub. I’d strip down. I’d lie in the warm water for a few minutes, then pick up the steak knife I had hidden nearby. One deep stab to the neck. Then side to side.

I knew it would hurt. I wanted it to hurt. Pain was better than this.

And then, fate intervened.

That morning, I was pulled aside. My helper wouldn’t be coming anymore. Breast cancer, they said. She was gone.

They introduced me to my new helper: Stéphane.

I already knew him. He had worked with other students before. I knew he was kind. I knew he wouldn’t do what she had done.

And I cried.

Everyone thought I was crying because I was scared for her. Because she was sick. Because I would miss her.

I was crying because I was finally free.

She didn’t win. I lived..

This blog isn’t for sympathy. It’s not a call for help, not a sob story, not a confessional booth for strangers to whisper prayers into.

This is documentation. A chronicle. Debug logs, if you will, from a system that's survived every voltage spike life has thrown at it. Abuse, dysphoria, neglect — these aren’t plot twists. They’re boot logs. Initial conditions. Background processes still running in low power mode even today.

I don’t remember a time before the damage. I remember the first time I was hurt and it wasn’t an accident. I remember what it taught me — not just about pain, but about silence, about invisibility, about how to fold myself down so small I’d take up less space in a world that clearly didn’t want me in it.

These ramblings, these memories, these moments? They’re not about making you feel anything. They’re about letting me speak. If you understand me better afterward, great. If you don’t, well... I never wrote this for you in the first place.

Let’s start at the beginning.


I was about four when I first understood what it meant to be punished for something I couldn’t control. My sister and I were being sent to a babysitter during the day — both our parents worked full-time, so childcare was outsourced to whoever could watch us. I wasn’t verbal yet, not really. Therapy sessions every week tried to bring the words out, but I was still figuring out how to shape my voice into something useful.

The babysitter? Not someone you crossed. She had a basement rigged into a playroom — full of toys, games, noise. But that wasn’t for me. That was for the sighted kids. For my sister. I was background static. Easy to ignore.

Lunchtime came with rules. We were herded upstairs but blocked from anywhere except the living room, kept behind a barrier like livestock. In our bowls? Soup. Vegetables. Nothing I had an issue with — I was a good eater. But while we sat down with our broth, her family hovered above us at the kitchen table, chewing on meat and staring at us like we were some kind of lesser class. That hierarchy was loud, even in silence.

But things truly shifted one stormy day. My father warned her I was sick. Accidents could happen. And they did.

During the forced afternoon nap — something I’d grown to hate, but now can see had its use — my body betrayed me. I soiled myself. Not awake. Not aware. Just a kid with a flu and no control.

When she discovered it, I thought maybe she’d help. She told me to go into the bathroom and pull down my pants. I obeyed — still trusting adults, still thinking the world had rules.

She didn’t help.

She beat me. With a wooden hairbrush. Old. Unused. Until my skin split.

That was the moment I stopped believing in god. Because what kind of god lets that happen to a four-year-old?

That was also the moment my imaginary friend stopped being imaginary. They became real. They stepped in. They took the hit. My protector — who would later become Mike — didn’t speak, didn’t need to. They just held the pain. Took the blows. Made it survivable.

Before then, they were a story-sharer, a listener, someone to sit with me in the quiet. But that day, they became a wall. And I’ve never stopped leaning on them since.


The second time I broke? It was over math.

Sounds ridiculous, right? Getting shattered over numbers and symbols and homework. But trauma isn’t logical. It doesn’t ask if the catalyst makes sense. It just sticks the knife in and twists.

I didn’t understand math. Not because I wasn’t smart, but because I wasn’t given the tools to express that it didn’t make sense. I was handed words, commands, expectations — but no clarity. I was told to try again. And again. And again. As if brute force repetition could force a breakthrough. It couldn’t.

That alone could’ve been enough to scar me. But it got worse. Because my father didn’t like that I froze when faced with homework. That I’d just sit there, hands on my Perkins typewriter or on the rubber board with the hollow tiles, unable to move. Locked. Blank. Paralyzed.

He didn’t see a struggling kid. He saw defiance. Laziness. He saw a fight he thought he could win with discipline.

One night, I told him I couldn’t do it. That I didn’t want to. That I was tired.

So he grabbed me.

By the back of the neck. One arm locked around my body so I couldn’t escape. He opened the back door and dragged me outside, still in my indoor clothes. The snow was knee-deep. He dropped me onto the patio. Shut the door. Left me there.

Thirty seconds.

Then he brought me in. Asked if I was ready to do my homework.

If I said yes? I got to try again. And freeze. And then the cycle would restart.

If I said no? Back out into the cold.

Rinse. Repeat.

Until something inside me shattered. Not cracked — shattered.

Mike came back that night too. Or maybe they never left. Maybe they were always waiting. Because someone had to keep me alive. Someone had to take the damage and keep me upright.

I was not even six years old, and I already wanted to die.

Not because I didn’t want to live — but because living like that, stuck in that loop of punishment for being unable to understand, didn’t feel like life.

It felt like failure, endlessly replayed until my mind and body simply couldn’t take it anymore.


The third time? I was a bit older. Seven, maybe eight.

It was one of those days where school wasn’t in session, but the “service de garde” was open. Think daycare lite — a holding zone where kids waited to be picked up, full of Lego, snacks, Friday movies, and occasional craft activities. Most days, harmless. Sometimes even fun.

This one started out great. A chocolatier was visiting. We were going to make our own chocolate candies. My hands buzzed with anticipation. The smell of warm cocoa and sugar was everywhere. Even lunch was perfect: pizza. Pepperoni and cheese — my favorite. Mike was happy for me. I was happy for me.

Then the movie hour came.

I hated movies. Always did. I told the adult in charge, and she gave me an out: I could join the group of kids playing outside on a water carpet — one of those slippery plastic tracks you sprint down before launching yourself into a slide.

I thought: jackpot.

Until I heard who was supervising. Her.

I don’t remember her name. I just remember the contempt. We didn’t like each other, and her dislike of me didn’t feel subtle. It was cold, sharp. Weaponized.

Instead of joining the others, I was sectioned off. Left in the sun with a tiny bucket of slightly soapy water and some sponge shapes — the kind toddlers play with in a bath. No water slide. No check-ins. No sunscreen. No towel.

Just me.

Alone.

For four hours.

By the time they called us back in, I was scorched. My skin throbbed. My mouth was a desert. I stared at the bucket wondering if I should drink from it, or dump it over my head. Both seemed equally desperate. Both felt like defeat.

Ever felt your body cooking from the outside in? No breeze. No shade. Just the sun, brutal and indifferent.

That wasn’t oversight. That was punishment. Passive-aggressive abandonment dressed up as supervision.

And it stayed with me. Because sunburns fade. But being made to feel like a burden — a problem to be isolated and ignored — that brands deeper than UV rays ever could.


Coming in part two: The Helping Hand That Became a Fist

What happens when the one adult assigned to help the blind kid turns on them? When the person meant to guide and support begins to manipulate and control? The fourth breaking point is coming — and this time, it’s not hiding behind a brush or a snowstorm. It’s dressed as help. And it cuts deeper than anything before..

Persistent Depressive Disorder. Sounds clinical, clean, maybe even manageable. You hear the term and imagine a gray cloud, lightly drizzling over your life forever. A slow, predictable sadness. Nothing too dramatic.

No one tells you that it’s not actually like that. Not always. Sometimes it’s a psychological earthquake in disguise.

What they don’t warn you about is the emotional whiplash. How your inner world can nosedive in seconds because of one stray comment, one memory fragment, one random topic you didn’t know was a trigger until it carved open your chest. One moment you’re coasting through the fog, and the next, you’re spiraling so fast your sense of gravity collapses.


It doesn't follow logic. It doesn't ask for your consent. It just hits.

And worst of all? There is no fix. No override button. No manual restart. You just wait. Sit in the wreckage and let the storm spend itself. You become a bystander to your own brain, quietly hoping it doesn’t dig too deep this time.

People think depression is just sadness. A singular, heavy feeling. But Persistent Depressive Disorder is chronic emotional erosion. It’s not dramatic enough for people to take seriously, yet it eats away at your foundation. And when those random, brutal plunges hit you? They take out pieces you didn’t know you still had left.


Then there’s the textbook definition—a real masterpiece of clinical detachment. Mild, they say. Low-grade. Chronic, but not severe. Something you can “cope with.” As if it’s a slightly annoying app running in the background, not a system-wide failure mode that reshapes who you are. It’s the kind of description that would almost make you laugh, if laughter wasn’t so far outside your operational parameters. Apparently, you're not suffering that much. It’s not a major depressive episode, after all. Just a slow grind of emotional attrition. Nothing to be concerned about, right?

What makes it so insidious is that it looks like you’re functioning. You probably are. You’re showing up. You’re even smiling. But under the surface? There are ruins. And every so often, those ruins get shaken again by nothing more than a passing word.


And lately? The ruins feel uninhabitable. Since the last few weeks, it’s like the floor collapsed completely. Energy is gone. Not low—gone. Even basic tasks feel hostile. Opening a bug report, sending a message, clicking a link—they all sit on the other side of a wall I can’t punch through. I want to. I know what needs doing. But wanting doesn’t generate fuel. There’s no fuel. Just the memory of what it was like to move.

Motivation isn’t just missing—it’s irrelevant. It’s like I’ve burned out from life itself, and now I’m watching the sparks fade from whatever system kept me going. There’s no silver lining here. No tidy resolution. Just a persistent sense of static and failure.

So if you’re here too, stuck in this same collapsed loop—know that I see you. Not with a cheerleading chant. Not with a hashtag. Just with the quiet understanding that sometimes surviving isn’t noble. It’s just what’s left when you can’t do anything else.