
Applying the Web Dev Mindset to Dealing With Life Challenges
Applying the Web Dev Mindset to Dealing With Life Challenges êŽë š
Editorâs note
This article is outside the typical range of topics we normally cover around here and touches on sensitive topics including recollections from an abusive marriage. It doesnât delve into much detail about the abuse and ends on a positive note. Thanks to Lee for sharing his take on the intersection between life and web development and for allowing us to gain professional insights from his personal life.
When my dad was alive, he used to say that work and home life should exist in separate âwatertight compartments.â I shouldnât bring work home or my home life to work. Thereâs the quote misattributed to Mark Twain about a dad seeming to magically grow from a fool to a wise man in the few years it took the son to grow from a teen to an adult â but in my case, the older I get, the more I question my dadâs advice.
Itâs easy to romanticize someone in death â but when my dad wasnât busy yelling, gambling the rent money, or disappearing to another state, his presence was like an AI simulating a father, throwing around words that sounded like a thing to say from a dad, but not helpful if you stopped to think about his statements for more than a minute.
Letâs state the obvious: you shouldnât do your personal life at work or work too much overtime when your family needs you. But you donât need the watertight compartments metaphor to understand that. The way he said it hinted at something more complicated and awful â it was as though he wanted me to have a split personality. I shouldnât be a developer at home, especially around him because he couldnât relate, since I got my programming genes from my mum. And he didnât think I should pour too much of myself into my dev work. The grain of truth was that even if you love your job, it canât love you back. Yet what Iâm hooked on isnât one job, but the power of code and language.
The lonely coder seems to free his mind at night
Maybe my dadâs platitudinous advice to maintain a distance between my identity and my work would be practicable to a bricklayer or a president â but itâs poorly suited to someone whose brain is wired for web development. The job is so multidisciplinary it defies being put in a box you can leave at the office. That puzzle at work only makes sense because of a comment the person you love said before bedtime about the usability of that mobile game they play. It turns out the app is a competitor to the next company you join, as though the narrator of your life planted the earlier scene like a Chekovâs gun plot point, the relevance of which is revealed when you have that âa-haâ moment at work.
Meanwhile, existence is so online that as you try to unwind, you canât unsee the matrix you helped create, even when itâs well past 5 p.m. The user interface you are building wants you to be a psychologist, an artist, and a scientist. It demands the best of every part of you. The answer about implementing a complex user flow elegantly may only come to you in a dream.
Donât feel too bad if itâs the wrong answer. Douglas Crockford believes itâs a miracle we can code at all. He postulates that the mystery of how the human brain can program when he sees no evolutionary basis is why we havenât hit the singularity. If we understood how our brains create software, we could build an AI that can program well enough to make a program better than itself. It could do that recursively till we have an AI smarter than us.
And yet so far the best we have is the likes of the aptly named Github Copilot. The branding captures that we havenât hit the singularity so much as a duality, in which humanity hopefully harmonizes with what Noam Chomsky calls a âkind of super-autocomplete,â the same way autotune used right can make a good singer sound better, or it can make us all sound like the same robot. We can barely get our code working even now that we have all evolved into AI-augmented cyborgs, but we also canât seem to switch off our dev mindset at will.
My dev brain has no âoffâ switch â is that a bug or a feature?
What if the ability to program represents a different category of intelligence than we can measure with IQ tests, similar to neurodivergence, which carries unique strengths and weaknesses? I once read a study in which the researchers devised a test that appeared to accurately predict which first-year computer science students would be able to learn to program. They concluded that an aptitude for programming correlates with a âcomfort with meaninglessness.â The researchers said that to write a program you have to âaccept that whatever you might want the program to mean, the machine will blindly follow its meaningless rules and come to some meaningless conclusion. In the test, the consistent group showed a pre-acceptance of this fact.â
The realization is dangerous, as both George Orwell and Philip K. Dick warned us. If you can control what words mean, you can control people and not just machines. If you have been swiping on Tinder and take a moment to sit with the feelings you associate with the phrases âswipe rightâ and âswipe left,â you find your emotional responses reveal that the appâs visual language has taught you what is good and what is bad. This recalls the scene in âThrough the Looking-Glass,â in which Humpty Dumpty tells Alice that words mean what he wants them to mean. Humptyâs not the nicest dude. The Alice books can be interpreted as Dodgsonâs critique of the Victorian education system which the author thought robbed children of their imagination, and Humpty makes his comments about language in a âscornful tone,â as though Alice should not only accept what he says, but she should know it without being told. To use a term that itself means different things to different people, Humpty is gaslighting Alice. At least heâs more transparent about it than modern gaslighters, and thereâs a funny xkcd in which Alice uses Humptyâs logic against him to take all his possessions.
Perhaps the ability to shape reality by modifying the consensus on what words mean isnât inherently good or bad, but in itself âmeaningless,â just something that is true. Itâs probably not a coincidence the person who coined the phrases âthe map is not the territoryâ and âthe word is not the thingâ was an engineer. What we do with this knowledge depends on our moral compass, much like someone with a penchant for cutting people up could choose to be a surgeon or a serial killer.
Toxic humans are like blackhat hackers
For around seven years, I was with a person who was psychologically and physically abusive. Abuse boils down to violating boundaries to gain control. As awful as that was, I do not think the person was irrational. There is a natural appeal for human beings pushing boundaries to get what they want. Kids do that naturally, for example, and pushing boundaries by making CSS do things it doesnât want to is the premise of my articles on CSS-Tricks. I try to create something positive with my impulse to exploit the rules, which I hope makes the world slightly more illuminated. However, to understand those who would do us harm, we must first accept that their core motivation meets a relatable human need, albeit in unacceptable ways.
For instance, more than a decade ago, the former hosting provider for CSS-Tricks was hacked. Chris Coyier received a reactivation notice for his domain name indicating the primary email for his account had changed to someone elseâs email address. After this was resolved and the smoke cleared, Chris interviewed the hacker to understand how social engineering was used for the attack â but he also wanted to understand the hackerâs motivations. âEarl Drudgeâ (ananagram for âdrug dealerâ) explained that it was nothing personal that led him to target Chris â but Earl does things forâmoney and attentionâ and Chris reflected that âas different as the ways that we choose to spend our time are I do things for money and attention also, which makes us not entirely different at our core.â
It reminds me of the trope that cops and criminals share many personality traits. Everyone who works in technology shares the mindset that allows me to bend the meaning and assumptions within technology to my will, which is why the qualifiers of blackhat and whitehat exist. They are two sides of the same coin. However, the utility of applying the rule-bending mindset to life itself has been recognized in the popularization of the term âlife hack.â Hopefully, we are whitehat life hackers. A life hack is like discovering emergent gameplay that is a logical if unexpected consequence of what occurs in nature. Itâs a conscious form of human evolution.
If youâve worked on a popular website, you will find a surprisingly high percentage of people follow the rules as long as you explain properly. Then again a large percentage will ignore the rules out of laziness or ignorance rather than malice. Then there are hackers and developers, who want to understand how the rules can be used to our advantage, or we are just curious what happens when we donât follow the rules. When my seven-year-old does his online math, he sometimes deliberately enters the wrong answer, to see what animation triggers. This is a benign form of the hacker mentality â but now itâs time to talk about my experience with a lifehacker of the blackhat variety, who liked experimenting with my deepest insecurities because exploiting them served her purpose.
Verbal abuse is like a cross-site scripting attack
William Faulkner wrote that âthe past is never dead. Itâs not even past.â Although I now share my life with a person who is kind, supportive, and fascinating, Iâm arguably still trapped in the previous, abusive relationship, because I have children with that person. Sometimes you canât control who you receive input from, but recognizing the potential for that input to be malicious and then taking control of how it is interpreted is how we defend against both cross-site scriptingand verbal abuse.
For example, my ex would input the word âstupidâ and plenty of other names I canât share on this blog. She would scream this into my consciousness again and again. It is just a word, like a malicious piece of JavaScript a user might save into your website. Itâs a set of characters with no inherent meaning. The way you allow it to be interpreted does the damage. When the âstupidâ script ran in my brain, it was laden with meanings and assumptions in the way I interpreted it, like a keyword in a high-level language that has been designed to represent a set of lower-level instructions:
- Intelligence was conflated with my self-worth.
- I believed she would not say the hurtful things after her tearful promises not to say them again once she was aware it hurt me, as though she was not aware the first time.
- I felt trapped being called names because I believed the relationship was something I needed.
- I believed the input at face value that my actual intelligence was the issue, rather than the power my ex gained over me by generating the reaction she wanted from me by her saying one magic word.
Patching the vulnerabilities in your psyche
My psychologist pointed out that the ex likely knew I was not stupid but the intent was to damage my self-worth to make me easy to control. To acknowledge my strengths would not achieve that. I also think my brand of intelligence isnât the type she values. For instance, the strengths that make me capable of being a software engineer are invisible to my abuser. Ultimately itâs irrelevant whether she believed what she was shouting â because the purpose was the effect her words had, rather than their surface-level meaning. The vulnerability she exploited was that I treated her input as a first-class citizen, able to execute with the same privileges I had given to the scripts I had written for myself. Once I sanitized that input using therapy and self-hypnosis, I stopped allowing her malicious scripts to have the same importance as the scripts I had written for myself, because she didnât deserve that privilege. The untruths about myself have lost their power â I can still review them like an inert block of JavaScript but they canât hijack my self-worth.
Like Alice using Humpty Dumptyâs logic against him in the xkcd cartoon, I showed that if words inherently have no meaning, there is no reason I canât reengineer myself so that my meanings for the words trump how the abuser wanted me to use them to hurt myself and make me question my reality. The sanitized version of the âstupidâ script rewrites those statements to:
- I want to hurt you.
- I want to get what I want from you.
- I want to lower your self-worth so you will believe I am better than you so you wonât leave.
When you translate it like that, it has nothing to do with actual intelligence, and Iâm secure enough to jokingly call myself an idiot in my previous article. Itâs not that Iâm colluding with the ghost of my ex in putting myself down. Rather, itâs a way of permitting myself not to be perfect because somewhere in human fallibility lies our ability to achieve what a computer canât. I once worked with a manager who when I had a bug would say, âThatâs good, at least you know youâre not a robot.â Being an idiot makes what Iâve achieved with CSS seem more beautiful because I work around not just the limitations in technology, but also my limitations. Some people wonât like it, or wonât get it. I have made peace with that.
We never expose ourselves to needless risk, but we must stay in our lane, assuming malicious input will keep trying to find its way in. The motive for that input is the malicious userâs journey, not ours. We limit the attack surface and spend our energy understanding how to protect ourselves rather than dwelling on how malicious people shouldnât attempt what they will attempt.
Trauma and selection processes
In my new relationship, there was a stage in which my partner said that dating me was starting to feel like âa job interview that never endsâ because I would endlessly vet her to avoid choosing someone who would hurt me again. The job interview analogy was sadly apt. Iâve had interviews in which the process maps out the scars from how the organization has previously inadvertently allowed negative forces to enter. The horror trope in which evil has to be invited reflects the truth that we unknowingly open our door to mistreatment and negativity.
My musings are not to be confused with victim blaming, but abusers can only abuse the power we give them. Therefore at some point, an interviewer may ask a question about what you would do with the power they are mulling handing you âand a web developer requires a lot of trust from a company. The interviewer will explain: âI ask because weâve seen people do [X].â You can bet they are thinking of a specific person who did damage in the past. That knowledge might help you not to take the grilling personally. They probably didnât give four interviews and an elaborate React coding challenge to the first few developers that helped get their company off the ground. However, at a different level of maturity, an organization or a person will evolve in what they need from a new person. We canât hold that against them. Similar to a startup that only exists based on a bunch of ill-considered high-risk decisions, my relationship with my kids is more treasured than anything I own, and yet it all came from the worst mistake I ever made. My driverâs license said I was 30 but emotionally, I was unqualified to make the right decision for my future self, much like if you review your code from a year ago, itâs a good sign if you question what kind of idiot wrote it.
As determined as I was not to repeat that kind of mistake, my partnerâs point about seeming to perpetually interview her was this: no matter how much older and wiser we think we are, letting a new person into our lives is ultimately always a leap of faith, on both sides of the equation.
Taking a planned plunge
Releasing a website into the wild represents another kind of leap of faith â but if you imagine an air-gapped machine with the best website in the world sitting on it where no human can access it, that has less value than the most primitive contact form that delivers value to a handful of users. My gambling dad may have put his appetite for risk to poor use. But itâs important to take calculated risks and trust that we can establish boundaries to limit the damage a bad actor can do, rather than kid ourselves that itâs possible to preempt risk entirely.
Hard things, you either survive them or you donât. Getting security wrong can pose an existential threat to a company while compromising on psychological safety can pose an existential threat to a person. Yet thereâs a reason âbeing vulnerableâ is a positive phrase. When we create public-facing websites, itâs our job to balance the paradox of opening ourselves up to the world while doing everything to mitigate the risks. I decided to risk being vulnerable with you today because I hope it might help you see dev and life differently. So, I put aside the CodePens to get a little more personal, and if Iâm right that front-end coding needs every part of your psyche to succeed, I hope you will permit dev to change your life, and your life experiences to change the way you do dev. I have faith that youâll create something positive in both realms.