<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://jeddcampbell.com/feed.xml" rel="self" type="application/atom+xml" /><link href="https://jeddcampbell.com/" rel="alternate" type="text/html" /><updated>2026-05-28T09:31:20+00:00</updated><id>https://jeddcampbell.com/feed.xml</id><title type="html">Your awesome title</title><subtitle>Write an awesome description for your new site here. You can edit this line in _config.yml. It will appear in your document head meta (for Google search results) and in your feed.xml site description.</subtitle><entry><title type="html">Programmed Behaviour</title><link href="https://jeddcampbell.com/programmed-behaviour" rel="alternate" type="text/html" title="Programmed Behaviour" /><published>2026-04-03T00:00:00+00:00</published><updated>2026-04-03T00:00:00+00:00</updated><id>https://jeddcampbell.com/programmed-behaviour</id><content type="html" xml:base="https://jeddcampbell.com/programmed-behaviour"><![CDATA[<p>Our school had a lot of traditions. Two in particular left their mark on me, so that even several years after leaving school they were still imprinted on my behaviour. The first was greeting people you walked past, or who walked past you, especially your elders. Teachers, parents, strangers, it didn’t matter. You gave a polite greeting, an acknowledgement of their existence. The second was walking on the grass. The grass on our school grounds was sacred. Only the staff were permitted to walk on the lush lawns that adorned our school terraces. An exception was made for your final year of school where you finally gained the privilege to do the same. It was exhilarating. An honor, even. After four years of being confined to the bustling corridors, you finally got to walk on the grass. And in that moment I understood it. Something so trivial as walking on grass became meaningful.</p>

<p>For years after leaving school I retained the urge to great everyone I walked past and preferred walkways over grass. When I remembered that I was no longer in school, confined by those traditions and rules, I would feel free to walk on the grass and also feel a sense of elevation. It took me years to grow out of those sensations. They were embedded in my psyche by a mini-society that upheld and enforced those values until they felt <em>right.</em> I look back on these small traditions fondly, but it also makes me realize how almost any “value” can be encoded into your behaviour.</p>

<p>In the same way, groups of all sorts can program behaviours into us that can stick around for a while, or indefinitely. I briefly played some Magic: The Gathering at a local club, and at the start of every turn my opponents would say “Untap, Upkeep, Draw”. It was a little mantra that directed your actions for the beginning phase of your turn. It helped me remember what I needed to do and the order I needed to do it in. And so I started saying it as well. It started feeling natural real fast.</p>

<p>What I’m getting at is that this sort of behaviour-programming happens all the time in humans and other animals. My dog Roo has similar behaviours that trigger when he hears certain sounds (such as keys being jingled) or words (such as “let’s play outside”). If I say goodbye to someone on the phone he gets excited because that often means someone is at the gate. These behaviours start to feel normal and correct to us. They become our way of doing things, automatic responses, natural mannerisms.</p>

<p>I remember when my mom took me to a new church as a young teenager. During the worship part of the service everyone was putting their hands up in the air. It looked so awkward. It took several Sundays for me to muster up the courage and do the same. Afterwards, a lady came up to my mother and complimented her on raising young men who worship the Lord so enthusiastically. That sealed it. Everyone was doing it, it was an outward sign of being part of the group, and the group approved of it. For years it felt wrong <em>not</em> to put my hands in the air during worship. If I wanted to feel more “worship-y” then that’s what I’d do. If I felt unworthy, lacking, or pensive then I would refrain from it. Even further, you could <em>sit down</em> during the worship service to look even more serious. Or you could wave a flag to look more enthusiastic. Or you could stand at the front so that <em>everyone</em> could see how seriously you took it. Obviously I didn’t think about it in such blatant terms back then. These subtleties and nuances were encoded into the behaviour of everyone around me, and I learned them through exposure.</p>

<p>Religion makes good use of behaviour programming. Got to read your Bible every day, pray before every meal, attend homegroup, prayer group, and church on Wednesday, Thursday, and Sunday respectively. Church starts off with announcements, then testimonies, then worship, then preaching, then closing prayer, then coffee, or some variation of those steps. After a while it feels wrong not to read your Bible on a given day, or pray before a meal, or skip church on Sunday. If the pastor decides not to preach, or not to have worship on a given Sunday something feels a little off, novel even. And if you move to a different church that does it similarly to your old church then you feel comfortable. If they change things up slightly then it might not “click” for you, but if you hold out for a while then you’ll get used to it.</p>

<p>Religious communities create well-trodden patterns of behaviour that you can assimilate and come to think of as your own. Some of these behaviours are mundane and practical, but others are social signals of identity and commitment. They serve to show the group how much you mean it. In Psychology there is a concept known as Credibility Enhancing Displays. This is where a person performs some observable, costly behaviour that shows others how invested they are in a belief. These are usually quite extreme, such as martyrdom, self-mutilation, animal sacrifice, walking on coals. Religions still invoke milder versions of these forms of commitment signalling. Baptism, testimonies, public confession, and even the language employed in normal conversation all become signals of showing just how much you believe the propositions and are part of the group.</p>

<p>Religion starts to feel as natural as the air you breathe. The behaviours you engage in on a daily, weekly, or yearly basis start to feel <em>right</em> in your bones. This isn’t evidence of their truth, or their usefulness, but people often mistake that feeling of <em>rightness</em> for both of those things. It’s the way it <em>should</em> be done. And if you deviate then those signals are on full display for everyone to see how you’re diverging from the group.</p>

<p><em>What a powerful testimony!
He’s lying on the floor in the front, how dedicated!
They’re finally getting baptized!
They gave a lot of tithe.
They asked him to preach, what a solid Christian man!
They play in the band!
He’s the lead pastor.
They can speak in tongues!
Where were you on Sunday?
When did you last read your Bible?
They just started eating without praying!
She didn’t stand during worship, or raise her hands.
He doesn’t do devotionals with his family.</em></p>]]></content><author><name>Jedd Campbell</name></author><summary type="html"><![CDATA[When gaming is more than just for fun]]></summary></entry><entry><title type="html">Mindset of a Professional Gamer</title><link href="https://jeddcampbell.com/mindset-of-a-pro-gamer" rel="alternate" type="text/html" title="Mindset of a Professional Gamer" /><published>2025-11-14T00:00:00+00:00</published><updated>2025-11-14T00:00:00+00:00</updated><id>https://jeddcampbell.com/mindset-of-a-pro-gamer</id><content type="html" xml:base="https://jeddcampbell.com/mindset-of-a-pro-gamer"><![CDATA[<p>I play games for fun, but I <em>really</em> enjoy the competitive element as well. I find a lot of reward in being competent at a game. This is an edited version of an on-going conversation with an ex-professional Dota 2 player. Most of this is relevant to other competitive games, but also to life in general. I asked him about the psychology of competitive gaming: how he handles losing, deals with disappointment, and how he maintains composure in high pressure situations.</p>

<h3 id="figuring-out-what-you-want">Figuring out what you want</h3>

<p>For me, with Dota, I needed to succeed, and at that time in my life there was nothing that was going to stand in the way of it. I would try and maintain the friendships with [Redacted] and [Redacted], and thank God I did, but I would still cut them, and that’s a bit cutthroat, and I don’t think that anyone should actually do that. I regret those things. But the end goal is important, and you just need to understand what you’re willing to devote, because once you understand how much time and energy you’re going to devote to this, you’ll be satisfied with certain results or your rate of growth.</p>

<p>Analyze where you want to go, because if it’s really that important to you that you’re investing more than three hours a day into it and you want to make a thing out of it and reach the top 1%, then you can’t have someone on your team that’s going to tilt. But yeah, just understand what it might do to the relationship. I also think being competitive brings out the worst in us. But that’s not necessarily a bad thing if you’re able to do the introspection and grow and learn from it, because it’s important to recognize that those qualities exist in us.</p>

<p>So I would just say do some introspection about the things that matter to you and your goal with this game, and try to balance that. You know, dilute the things that matter to you, because multiple things can go wrong in life, so it’s good to have an assortment of things that bring you joy. So when I get tilted at games, I go to my family, and that helps. Just my example.</p>

<p>I think that when enough time has passed, like a year or two, and you look back on all of this, a lot of it comes down to a real balance in your health, mentally and physically, even somewhat spiritually. Not that I’m religious, but your soul has to be in a good place. Your mind and your body have to all be in a good place if you expect to be functioning at your full potential, if you expect to be able to convince yourself of certain competencies that you possess and to envelop confidence. You’re going to have to be very in line with yourself, very aware of yourself, and take care of yourself. Those are all really important things, and any psychologist will say that to an athlete.</p>

<p>I think being number one is overrated, especially at our age and phase in life. I think top 1% is a very nice and achievable metric. It displays a lot of experience and competence above the average. I think it’s very relevant to all things in life. But taking things in balance is more important than reaching the top for ordinary life. This is just referring to becoming great at something.</p>

<h3 id="becoming-confident">Becoming confident</h3>

<p>Find a strategy that’s going to work for you. In Dota my strategies were multifaceted in order to cope, but for instance I would be very controlling, micromanagement, etc. This made me feel more in control of the outcome and often helped.</p>

<p>But instantly queuing ranked games is really important, especially for confidence. So I’m going to try and explain this. Confidence is definitely a mindset. It’s knowing something. It’s knowing that you’re capable of actually achieving the goal that you’ve got in mind, and knowing it’s inevitable. A simple way of convincing yourself of this is understanding that thousands of humans achieved this metric before you. They’re no different to you. It’s solely about how much information we can consume and retain that matters, and the top one percent just have better learning techniques and strategies developed so their information is more reliable. But once you’ve convinced yourself that your goal is achievable and that you’re going to get it, it’s just a matter of time; then the confidence really comes along with the logic.</p>

<p>Clicking the search button when you’re on the ranked ladder is hard because sometimes your MMR goes down. But if you bring the approach of wanting a certain volume of games for your day and you’re just going to instantly queue after each game, it was so much easier. But letting the doubt settle in of wanting that number to go up, not down, is wrong. You have to somehow avoid that train of thought. I did it with my quota of games for the day and instant-queueing most of them. I would only take breaks if the loss was bad and I needed it. But I’d still reflect on every loss, even for 5 minutes.</p>

<h3 id="handling-losses">Handling losses</h3>

<p>If you’re despondent about your results, it’s fair to say that you were very emotionally invested, maybe time invested, but whatever went wrong, it mattered to you. Understanding how much value you’re putting on the game is important. I would say only at a professional level should a game be able to ruin your day. Otherwise, it’s just not worth letting it ruin your day. It shouldn’t matter that much. That’s just my opinion after having gone through that phase. But if it is at a professional level, then yeah, it warrants ruining your day because it’s your career.</p>

<p>This comes with confidence but also realism. I knew every loss was nothing but a lesson. So unless it was a tournament that I needed to win, losses didn’t deter me. I very consciously chose to reflect on every loss to identify what I thought was the crux or turning point that lost it for us. I did this for every single game. This review process made me feel a lot of relief after every loss because it helped me realize that the loses were preventable.</p>

<p>It was easy for me to learn from each loss because what I searched for in gaming was a sense of expertise, knowledge, and skill. So I was prepared to build it authentically by learning from each defeat. This was easier than it sounds because I’m somewhat compulsive, so dwelling on my loss in a form of analysis came naturally and helped propel me to want to reattempt the situation with an alternative approach.</p>

<p>For tourneys the losses hit hard. That’s just a character-building thing. Either you keep going and climbing that mountain, or you change roads. But the competitive aspect never changes, and you never stay on top forever. When you played ranked, there’s doubt if you’re going to raise the number or drop it. That shouldn’t be a thing. You should queue ranked for another reason: to improve. And then set a milestone. If you reach a certain MMR, you can start some perspective shift. That’s how it was with me. When I reached pro MMR I started to care about my rank, but I’d already taught myself not to be too obsessed with it. So although it’s a tightrope you have to walk and balance, the lessons reinforce better strategies.</p>

<p>Until you reach pro level you’re just a person trying to get better. What does it matter if we fail on the way? So find a way around wanting the number to go up too much. Ultimately, with consistency and small habits of improvement, the number will go up by itself inevitably. I used to tell myself “extinguish the fire” every time I wanted something too badly. It was like my mantra. It helped calm me down and focus on objectives, rectifying bad habits in every part of my game rather than always being concerned with the final outcome of the game.</p>

<p>You have to understand that you’re going to play with the win rate, right? So let’s say you’ve got a 55% win rate, which is usually decent. Then you know that it’s inevitable after a certain volume and duration that your goal is going to get achieved because you’ve got a positive win rate. So that’s all that matters. Then the losses don’t matter because you just know that they’re part of the 45%. It’s cool. Let’s learn from it. And that’s actually really important: learning from every single loss. Ninety-nine percent of losses are worthy of dissection. You have to analyze the root cause. You look at each little piece that goes wrong as breadcrumbs, and you follow it to the root of the issue. So in Dota, if something goes wrong at 10 minutes, it’s probably mistakes 30 to 60 seconds prior to the event, sometimes many minutes prior. But you have to watch the replay to analyze.</p>

<h3 id="decision-making-and-ego">Decision-making and Ego</h3>

<p>And as for decision-making, even in games, I can probably guess that 90% of the incorrect decisions I made in games can sometimes be attributed to my ego in some way or another, if I were to do enough introspection. I’m just saying it’s possible. And I believe a rather stoic take on the matter is important, you know, not to be overwhelmed with emotion in a loss, but to really draw whatever you can grow from the experience and accept the despair and quiet resignation, you know, just kind of… even if you can help your teammates that are probably also depressed, especially because you all are a bunch of friends.</p>

<h3 id="the-cost-of-making-mistakes">The cost of making mistakes</h3>

<p>The epiphany I had when opening my mind up to this sort of change came from my pro Dota coach. He taught me that every mistake you make adds to a snowball. Every last hit you miss is the seconds of not having your Blink on an Axe, etc. Every second you’re costing your game matters. And if you go back and look at your replays, you can quantify every step you missed and understand how far behind you are at each point in the game compared to the most efficient play possible. Making it to pro level is keeping that efficiency bar on par with you. Every time you drop below it, your performance is insufficient, a weak link in the chain.</p>

<p>Point being, building small habits (looking at my map, clicking on enemies’ items and mana, etc.) is the foundation of success. If you make those habits second nature, the success follows. And also not to underestimate a mistake. Even the smallest one is the first step to the snowball. Many people always say, ah, it’s just one death, my bad, bad positioning. In pro Dota it was unacceptable. You make a mistake and all eyes are on you.</p>

<h3 id="the-importance-of-obsession">The importance of obsession</h3>

<p>And then I just wanted to mention two other actually important points. You mentioned a flow state. That really comes with obsession, and obsession in every sense of the word. You have to not be impaired by any other thought at all. No work, no thinking about what’s going on behind you, no spouse. Nothing else has to be in your head. It has to be the entire game. Zero break of focus from any source, and second-nature mechanics, meaning you do not have to think at all about the buttons you’re pressing. It is completely second nature because you’ve repeated it and rehearsed it so thoroughly, because you were so obsessed with it.</p>

<p>For instance, me playing Tinker 500 games. Obsessed with it. It’s all I wanted to do. I wanted to play it in every single matchup, and I wanted to learn from every single matchup. It had above a 65% win rate. It’s one of the best in Europe, you know. So it’s absolutely important to be obsessed if you expect to ever get so focused on something that the game and the strategy are all that you’re focusing on and the mechanics are completely second nature.</p>

<p>I would say the most important thing is watching the pros because they’ve got the highest quality of information. You can really build a baseline foundation on that information and take that into every game. Then you can build on it yourself, but definitely understand what the best people in the world know. That’s important. I have to say when I was playing Dota, which was probably 200 hours a month of gaming, maybe more, at least 200 hours a month of gaming, and 40 to 50 of that was watching the pros. It was absolutely key. There was no way around that. Anyway, I think ego death is kind of important in all of this and being kind of stoic about it and just pragmatic. Essentially, just running after the information. What can you learn from every game to improve yourself? That’s all that matters.</p>

<h3 id="regrets">Regrets</h3>

<p>If a team member sucks or isn’t doing well, it’s tricky because, like I say, if it’s not at a professional level, you don’t really want to burn friendships or relationships. I don’t think it’s ever worth it then, personally. Just an example is that I used to play with [Redacted], you know? And then we kicked him because he wasn’t really good enough anymore. And I still regret that to this day. But looking at where my career went, I know it was necessary. But it’s definitely a regret. I also kicked [Redacted] from a team once. That was one of my biggest regrets. But I did fix it by bringing him back onto the team, but it still sucked, and it’s never ever worth it. It’s never worth doing that to a friend, in my opinion. Those are my biggest regrets.</p>]]></content><author><name>Dennis Connellan, Jedd Campbell</name></author><summary type="html"><![CDATA[When gaming is more than just for fun]]></summary></entry><entry><title type="html">Erasure</title><link href="https://jeddcampbell.com/erasure" rel="alternate" type="text/html" title="Erasure" /><published>2025-09-20T00:00:00+00:00</published><updated>2025-09-20T00:00:00+00:00</updated><id>https://jeddcampbell.com/erasure</id><content type="html" xml:base="https://jeddcampbell.com/erasure"><![CDATA[<p>I’m reading George Orwell’s 1984. It’s a phenomenal piece of literature. There is a scene in the book that hit me hard. Allow me to first give some context before I explain the scene.</p>

<p>In the book, the main character Winston expresses how vague and fuzzy his recollection of the past is becoming. Information is highly controlled by The Party and one of their departments, The Ministry of Truth, is responsible for constantly adjusting and updating the historical records. They have systems in place for recalling newspapers, updating the texts, destroying the old ones, and re-issuing them. This bothers Winston, but he can’t even tell if the information being replaced was even true to begin with. From his perspective, they are simply replacing false information with more false information, according to the whims of The Party. He has no idea what is true and what is false, what historical events are fictitious or real, which details contain kernels of truth or none at all. History is constantly being erased and revised.</p>

<p>But then he recalls a day where, for the first and only time in his life, he held evidence in his hand that The Party was lying about a specific event. There were three enemy leaders that were on trial for their crimes against The Party. The leaders publicly confessed their crimes and were given positions in The Party. Perchance, on Midsummer’s day, Winston happened to walk into a café where these three leaders were seated at a table. It was dangerous to even be seen in the same neighbourhood as them, let alone the same building. He noted that they were just sitting there, broken noses, with tears in their eyes. Several months later, these three leaders were re-convicted. They were forced to re-confess their original crimes, along with new ones that they had been committing since their reintegration into The Party. They were executed. And then, at his job in The Ministry of Truth, Winston happened upon a torn piece of newspaper about their new crimes. It stated that those three leaders had, on Midsummer’s day, been in a different country consorting with the enemies of The Party. Winston held onto the fragment for a moment before dropping it into a “Memory Hole” where it would be incinerated.</p>

<p>In that moment Winston saw behind the curtain. He knew that those men were in a café on Midsummer’s day, and yet The Party had published propaganda saying that they were elsewhere. This small connection called into question every bit of information The Party published. Subconsciously he knew that this was happening constantly, but there was no way to prove it. History had been made unfalsifiable.</p>

<p>Here’s an abrupt change of topic, although not really.</p>

<p>The Septuagint is a translation of the original Hebrew scriptures from the Biblical Hebrew language into Koine Greek. This translation happened around the 3rd-1st century BCE. Biblical Hebrew was no longer widely spoken or read by the Jewish community so the Septuagint was an important translation. The Septuagint is quoted in both Paul’s letters and the Gospels.</p>

<p>There is a prophecy in Isaiah 7:14 that reads as follows in the NIV translation:</p>

<blockquote>
  <p>Therefore the Lord himself will give you a sign: The virgin will conceive and give birth to a son, and will call him Immanuel.</p>

</blockquote>

<p>In the original Hebrew text, the word used for “virgin” is “almah”. The word “almah” has no concern for the woman’s virginity, but refers to a young woman who has reached puberty. The word that explicitly refers to a virgin in Hebrew is “betulah”. However, when this passage was translated from Hebrew into Greek in the Septuagint, the translator used the word “parthenos”, which is associated with virginity (although it can occasionally be used to simply refer to a young woman). The author of the gospel of Matthew (1:18-25) includes a reference to the Isaiah 7:14 passage in the Septuagint also using the word “parthenos”. Most English translations render both passages as “virgin”, although some have now started to use “young woman” instead.</p>

<p>Let’s review some other information about the virgin birth narrative.</p>

<ol>
  <li>Neither Mark, John, or Paul explicitly mention or refer to the virgin birth.</li>
  <li>Matthew and Luke give conflicting accounts of the narrative, with little overlap between the accounts.</li>
  <li>This was an era of antiquity where virgin birth narratives were employed to assert a person’s divinity. In Luke’s narrative it is the Holy Spirit that enters Mary. Many Greek heroes were said to have been conceived between gods and mortals. The audience of the gospels was familiar with these stories.</li>
  <li>The ancient world did not have an understanding of how conception works. They did not understand that it requires both male semen and a female egg to produce a zygote.</li>
  <li>Matthew presents Jesus ministry as a fulfilment of prophecies in Isaiah. The original Isaiah prophecy was intended for King Ahaz of Judah and it was fulfilled in that time. It was not necessarily intended as a later messianic prophecy.</li>
</ol>

<p>We now understand the reproductive process well enough to know that virgin births are literally impossible. What we have are texts from the ancient world that have now been granted divine status. Millions of Christians believe in the virgin birth, with no possible alternative. They trust what is written, completely.</p>

<p>This is a look behind the curtain. I ask myself what else has been covered by the veil of history, erased and revised by the scribes and church fathers, impossible to prove true or false?</p>

<blockquote>
  <p>It is full of interest. It has noble poetry in it; and some clever fables; and some blood-drenched history; and some good morals; and a wealth of obscenity; and upwards of a thousand lies.</p>
</blockquote>

<ul>
  <li>Mark Twain
    <blockquote>

    </blockquote>
  </li>
</ul>]]></content><author><name>Jedd Campbell</name></author><summary type="html"><![CDATA[How the victors rewrite history and deny that it's been rewritten]]></summary></entry><entry><title type="html">Yet Another Lie</title><link href="https://jeddcampbell.com/yet-another-lie" rel="alternate" type="text/html" title="Yet Another Lie" /><published>2025-08-14T00:00:00+00:00</published><updated>2025-08-14T00:00:00+00:00</updated><id>https://jeddcampbell.com/yet-another-lie</id><content type="html" xml:base="https://jeddcampbell.com/yet-another-lie"><![CDATA[<p>One of the strong impressions I was given as a Christian is that all other worldviews are so very wrong. At their best they are humanity’s feeble attempts to fill a void that only the Christian worldview can fill. We looked on them in pity, wishing they would accept the Truth. I was completely disinterested in Philosophy. We had this distinction, you see, between stuff that humans did, and stuff that God did. The Christian worldview was God’s way of doing things, his wisdom, his ideas. Philosophy was man’s attempt to be wiser than God, to do it our own way.</p>

<p>One of the lies that I found myself believing until very recently was this: Even if you’re not a Christian, you ought to be grateful that Christianity existed because it gave us so many of our morals and ethics that we have today. In other words, I had this idea that, despite not believing in all the supernatural claims, the religious movement had a hugely positive impact on society in ways that we wouldn’t otherwise have had. That Christianity contributed to our moral progress in a way that was irreplaceable.</p>

<p>Now, some of this might be true, even trivially so. Christianity has dominated the west for nearly 2000 years. It has obviously left it’s mark.</p>

<p>But I now think I understand the general Christian aversion to Philosophy. Upon studying Philosophy, it becomes increasingly obvious how much <em>Philosophy influenced Christianity.</em> You realize that there were hundreds, if not thousands, of smart people actively working on the problems of society. And Christianity borrows heavily from several philosophical schools of thought.</p>

<p>In our ignorance, Christianity gets all the credit.
In our ignorance, we fear what humanity would be without Christianity.
In our ignorance, Christianity gets to rewrite history and make itself the center of the human story.</p>

<p>But now I’m starting to think we were close to an enlightenment 2000 years ago, and Christianity may very well have been a setback.</p>]]></content><author><name>Jedd Campbell</name></author><summary type="html"><![CDATA[Is Christianity the largest benefactor of human progress?]]></summary></entry><entry><title type="html">Breaking The Spell</title><link href="https://jeddcampbell.com/breaking-the-spell" rel="alternate" type="text/html" title="Breaking The Spell" /><published>2025-05-20T00:00:00+00:00</published><updated>2025-05-20T00:00:00+00:00</updated><id>https://jeddcampbell.com/breaking-the-spell</id><content type="html" xml:base="https://jeddcampbell.com/breaking-the-spell"><![CDATA[<p><em>Content warning: Offense</em></p>

<p>The word “disillusioned” so perfectly summarizes the de-conversion process. It is to become disappointed in someone or something that one discovers to be less good than one had previously believed. I became disillusioned with Christianity when I realized that a lot of the stories I grew up believing were mythologized, that much of the certainty of the faith was misplaced, and that most Christians are caught in an epistemic trap.</p>

<p>I recently became disillusioned with Christians (and possibly with humans more broadly, but I’m still working through that). When I first stopped believing I held onto the notion that after a few good conversations with friends and family, many of them would realize how untrue Christianity is. I thought that deep down inside each person was more committed to finding out the nature of reality than to theology. Boy was I wrong.</p>

<p>I’m disappointed. It’s hard to see people mentally check out in front of you, mid conversation. It’s hard to hear regurgitated apologetics. It’s hard to see willing ignorance on full display. It’s hard to see people’s intellectual priorities so skewed by indoctrination. Christianity is a mental fortress that’s been under construction for more than 2000 years. It can’t let you leave. It <em>won’t</em> let you leave. It’s an overwhelming mass of psychological, social, and intellectual traps. It’s the most effective cult that’s ever existed. It’s members are proud to be there. And it’s hard to see that from the outside, looking in.</p>

<p>I also realized only recently that I’m still paying a cognitive tax towards Christianity. I still feel the need to justify myself, my actions, my positions, my beliefs. I’ve been poised and ready for these intense, emotional conversations. Conversations that rarely happen. Conversations that leave me drained and frustrated. Conversations that never resolve. Conversations that loop and loop and loop and loop because that’s the best defense Christianity has - circular reasoning.</p>

<p>To what end? None, I now realize.</p>

<p>I have gone through the trial of re-evaluating my core beliefs. There is now nothing that I won’t question - even my unbelief. Nothing is sacred. No stone is safe from being unturned. I try to carry that mindset into every conversation - that if my current beliefs are wrong I’ll change them yet again. Intellectual honesty has become a core value. But it is a cognitive tax that I pay dearly, while everyone around me does not.</p>

<p>I need to move on. For my own sanity.</p>

<p>I’m no longer interested in debate. Creationism vs. Evolution? Evolution. We weren’t created in the image of a deity. It’s not an open question in my mind. There is a vast body of literature that supports this conclusion. This understanding has resulted in leaps and bounds in biology and medicine. It’s not a matter of faith. Creationism is superstition. I’m sorry if that makes you feel like you’re not God’s special little human. Evolution isn’t a lie from the devil. Creationism is a lie from theologians. Did Jesus rise from the dead? No. And neither has anyone else. Dead is dead. Exactly what happened to cause a bunch of Jews to believe that is lost to history. The fact that 2 billion people believe it tells me more about humanity and psychology than it does about miracles. I’m sorry if that makes you feel like I’m going to hell. I’m not. I’ll be just fine. Is the Bible the inspired word of God? It is not. A bunch of humans wrote it down. They had superstitions. They had interesting beliefs. But no deity was involved. Are there good things in the Bible? Yes. Humans can be good. Are there bad things? Yes. Humans can be bad. They also exaggerate, mythologize, lie, and occasionally tell the truth. The Bible contains the whole lot. So how did life begin? I don’t know. We’ll figure it out. How are we conscious? I don’t know. We’ll figure it out. Or we won’t. But Zeus didn’t do it, and neither did Yahweh, or Allah, or Jesus.</p>

<p>I’m done paying cognitive tax to Christianity. I don’t want it to take up so much real-estate in my head anymore. I’m done justifying my worldview to people who don’t really care. So yeah, I’m done having these conversations, with the caveat that I’ll have them if I sense that you’re genuinely interested in how the world works, or what I believe.</p>]]></content><author><name>Jedd Campbell</name></author><summary type="html"><![CDATA[Content Warning - May Offend]]></summary></entry><entry><title type="html">The Religious Conversation</title><link href="https://jeddcampbell.com/religious-conversation" rel="alternate" type="text/html" title="The Religious Conversation" /><published>2025-04-07T00:00:00+00:00</published><updated>2025-04-07T00:00:00+00:00</updated><id>https://jeddcampbell.com/religious-conversation</id><content type="html" xml:base="https://jeddcampbell.com/religious-conversation"><![CDATA[<p>I’ve been on both sides of the religious conversation.</p>

<p>For most of my life I was trying to convince others that Christianity was the one true religion. I had been brought up in it, and to everyone around me that sort of evangelism was a virtue. I deeply believed that Christianity was a foundational truth. It was more than just religious conviction. In my mind and my heart I believed that Christianity was at the center of History, Biology, Science, and Philosophy. I also believed that this Truth was so powerful that it would impact people by mere exposure.</p>

<p>I am now on the other side of the fence. And while I no longer feel the need to evangelize I do enjoy having conversations about religion. It was such a big part of my life, and it’s so important to people around me. At first, my capacity for these sorts of conversations felt infinite. I would happily go down any rabbit hole and winding path to try understand someone’s perspective or express my own. It has been helpful, and I’ve had many constructive conversations with people.</p>

<p>But I grow weary.</p>

<p>Theological commitment trumps everything. It outweighs truth, curiosity, and reason. It is a stubbornness that knows no bounds. I sometimes wonder how I escaped it. I think back on the intensity of my conviction and shudder, knowing that if my doubting had been any weaker I would have remained in the faith. I shudder because I cannot unlearn what I now know about Christianity: it’s epistemic vices, it’s empty promises, it’s human origin.</p>

<p>My patience with these religious conversations is drying up. It’s like trying to nail jelly to a wall.</p>

<p>Religon allows people to believe whatever makes sense to them, without regard to truth. It allows them to take under-determined evidence and point it to any conclusion that they fancy. To the faithful, anything is possible. They’re free to make stuff up whether it purports to reality or not.</p>

<p>To them, my perspective is just a fallible human opinion.</p>

<p>To them, their own perspective is backed by The Word of God.</p>

<p>To them, science is a fallible, corrupt, man made, secular quasi-religion.</p>

<p>To them, revelation is a source of divine truth (except if it comes from someone they don’t agree with or it goes against their beliefs).</p>

<p>To them, all other religions, cults, and worldviews are false and demonic.</p>

<p>To them, their own worldview is rock solid.</p>

<p>To the faithful, this life is of little value compared to what they fantasize about beyond death.</p>

<p>These are the bars of the believer’s mind cage. They prevent honest conversation. They make the believer incapable of proper inquiry into the world around them. How is one to find out the truth if they have already made their conclusions and are willing to bend or ignore evidence to suit them? They are unwilling to scrutinize their beliefs.</p>

<p>If God is real, then he has hidden himself from the genuine seeker, and revealed himself to the fool, the prude, the virtue signaller, the vainglorious, the gullible. He shows himself with magic tricks, prophetic nonsense, riddles, and conspiracy. Yet he is bothered if you find his existence dubious. I find it more plausible that he doesn’t exist, and that it is the believer and their ilk that require the trickery and the foolish.</p>

<p>Your scripture calls me an arrogant fool, bound for the fires of hell. Do not be offended that I call you a fool in return. Your intellect is not the problem, just the direction in which it is being employed.</p>]]></content><author><name>Jedd Campbell</name></author><summary type="html"><![CDATA[And why I'm becoming less open to it.]]></summary></entry><entry><title type="html">Cosmic Nihilism</title><link href="https://jeddcampbell.com/cosmic-nihilism" rel="alternate" type="text/html" title="Cosmic Nihilism" /><published>2025-03-25T00:00:00+00:00</published><updated>2025-03-25T00:00:00+00:00</updated><id>https://jeddcampbell.com/cosmic-nihilism</id><content type="html" xml:base="https://jeddcampbell.com/cosmic-nihilism"><![CDATA[<p>When we were young the world was so colorful and interesting. Life was so full of possibility - and we hadn’t yet realized our limitations. Then we grow up. We change. The world seems dull and drab as our senses become less receptive. Our minds are burdened with adulthood. Responsibility. Our youthful hallucinations are met with the facts of life.</p>

<p>I once thought that life had meaning. That feeling was strong but ill-defined. I don’t quite know how that idea got into my young skull, but I think that most of the people around me carried it in their heads as well. How it got there doesn’t matter, but it’s effect does. Being told that life has cosmic meaning (or grand purpose, or however you want to phrase it) created a weird expectation in my psyche.</p>

<p>It’s sort of like being told that you’re going to amount to great things, but not what those great things are. At every turn you’re asking, is this it? Is this the great thing I was meant to achieve? But life is made of small moments, and you end up dismissing them because they’re not linked to your “grand purpose”.</p>

<p>It’s also like being told that soul mates exist. Every new person you meet has you asking “Is this The One?” instead of enjoying the moment and making new friends. The weight of your expectation is too much for any normal person to bear. And one day they’ll make a mistake and fall off your pedestal. And you might let go of them through no fault of their own.</p>

<p>Cosmic meaning has fallen off it’s pedestal. It’s definition has snapped sharply into focus - there is none. I realized this a few years ago, but it’s only hitting me now. I need time to grieve. To rebuild my internal world without this concept. I need to learn how to create my own meaning.</p>

<p>Is this what invokes a midlife crisis? You hit a certain age and realize the rest of your life is going to be more of the same unless you do something about it. Motorbikes, affairs, divorce, workaholism, hobbies, anything to cope with the disappointment when you realize your life isn’t going to amount to what you thought it was.</p>

<p>Life is about eating, sleeping, reproducing, avoiding exposure and disease, making your surroundings a little nicer, mastering a skill, spending time with people. Meaning is functional, internal, localized. Perhaps other species also chase a sense of meaning beyond these things, but if humans were to go extinct then so would this human idea of meaning. It doesn’t exist without us or outside of us.</p>

<p>Religion may say otherwise, but it simply defers meaning beyond the veil of death. If anything it seems to me an admission that this current life does not have ultimate meaning and purpose. Our altars and temples, rituals and myths, are all built in service of keeping the cosmic nihilism at bay.</p>]]></content><author><name>Jedd Campbell</name></author><summary type="html"><![CDATA[Finding meaning in a meaningless universe]]></summary></entry><entry><title type="html">Is This It?</title><link href="https://jeddcampbell.com/is-this-it" rel="alternate" type="text/html" title="Is This It?" /><published>2025-03-14T00:00:00+00:00</published><updated>2025-03-14T00:00:00+00:00</updated><id>https://jeddcampbell.com/is-this-it</id><content type="html" xml:base="https://jeddcampbell.com/is-this-it"><![CDATA[<p>Sometimes I stray outside the box and wonder why life is the way it is. Must I keep doing things the way I’ve always done them? I’m not old yet, but I feel the sands of time slipping through my fingers. The streams of sand are trickling slightly faster than yesteryear. The remaining pile is getting smaller.</p>

<p>I wish I could spend more days doing what I want. Reading, writing, creating, exploring, learning, socializing. I wish more of my days could be carefree. I would not want to part with all responsibility, just this chaotic, unending kind. You know…most of adulthood. I long to walk in Calvin’s wood with Hobbes trailing behind.</p>

<p>Is there no respite? Why does sick leave sound exciting? I grit my teeth on Monday morning, and breathe a sigh of relief when Friday rolls around. One down, Fifty to go. And then, come December, I must cram a year’s worth of rest into fourteen festive days.</p>

<p>Ten down, Fifty to go.</p>

<p>I don’t look forward to retirement. It sounds like a weekend you’re too tired to enjoy. It’s the dregs of our time, energy, and wealth. We might not even make it there. You’ve spent your youth tilling another’s fields while strangers raised your children, now enjoy what’s left!</p>

<p>We live in the perpetual now, flipping from one moment to the next. If we don’t enjoy now, we never will. The next moment will be upon us. What about now?</p>

<p>Of all the boundless paths, is this the one on which I must remain?</p>

<p>Is this it?</p>]]></content><author><name>Jedd Campbell</name></author><summary type="html"><![CDATA[Weary of the grind]]></summary></entry><entry><title type="html">Repressed Sexuality</title><link href="https://jeddcampbell.com/repressed-sexuality" rel="alternate" type="text/html" title="Repressed Sexuality" /><published>2025-01-14T00:00:00+00:00</published><updated>2025-01-14T00:00:00+00:00</updated><id>https://jeddcampbell.com/repressed-sexuality</id><content type="html" xml:base="https://jeddcampbell.com/repressed-sexuality"><![CDATA[<p>Content warning: Sex and swearing. If you’re uncomfortable with these then you probably <em>should</em> read this, because that discomfort is a part of the problem. But it’s still your choice.</p>

<p>My parents were open to talking to us kids about sex and sexuality. It’s only in hindsight, now that I’m married, and nearing 30 that I realize how utterly bizarre some of the ideals and values were.</p>

<p>Despite their approachability my parents didn’t teach me many of the things I learned about sexuality. They were, however, indirectly responsible in that they gave us books to read, put us in youth group, and encouraged us to listen to sermons and teachings which occasionally broached the matter. So I absorbed all sorts of ideas from the community that we were immersed in.</p>

<p>I’ll give you an example. I was well into my twenties before I realized that girls actually <em>like</em> sex. My. Fucking. TWENTIES. Until that revelation hit me, I thought that men were insatiable, sex-craved animals, and what good “godly” women wanted was to tame that beast and indulge it now and then for other motivations. In my mind, women didn’t enjoy the physical act per say, but they did want to feel loved and protected and emotionally connected, so they obliged.</p>

<p>I also had this funny idea that women weren’t visually aroused like us guys were. So naturally, they didn’t watch pornography. Nope, it was only us male pigs that did that. Female sexuality was enigmatically confined to the emotional realm, beyond our understanding.</p>

<p>You know how belittling it is, as a 24 year old, having to close your eyes because a pair of big ol’ titties popped up in a PG13 rated movie? Thirteen year olds are “allowed” to see breasts, but I feel morally obligated to cover my eyes, and ashamed that I don’t want to? This moral obligation caused me to heavily self-censor the books I read, the movies I watched, the games I played, the music I listened to, the conversations I had, and the sexes I interacted with.</p>

<p>The first time I ever spoke to a woman about sexuality was to my fiancé, months before getting married. It wasn’t flirtatious, or sensual. It was a reality check for both of us that marriage includes sexuality and neither of us know where the other stands on the matter. It felt illegal talking about sex with her, even though we both realized that we probably shouldn’t wait till after marriage to broach the topic.</p>

<p>Where did I get all these ideas? Who do I blame? Myself? For being such a goodie two-shoes? For taking what all the adults around me were saying seriously? 40 year olds leading churches, allowing 20 year olds to lead youth groups, who then impart their own shame upon 13 year olds who are experiencing hormonal changes for the first time. I was immersed into a culture where sex was paradoxically the most divine union of flesh and soul, and also the most despicable sin. It was placed on a pedestal, on a shrine of sacred disgust.</p>

<p>I’ve had to rethink and re-contextualize all of this. I’ve had to realize that sex is so very normal. That girls like sex. Visually. Physically. They crave it like we do. That craving it isn’t wrong, it’s healthy. It’s actually a problem when that desire goes away. For both sexes. Women watch porn and masturbate just like us guys do. Some even more. Yes, there are differences in our sexuality, but holy shit there are so many similarities. I’ve had to realize that my sexual attraction towards women doesn’t mean that I’m objectifying them (objectification doesn’t require sexuality).</p>

<p>Sex is such a big part of what it means to be human. I used to get frustrated that I couldn’t watch a movie because there was a sex scene in it. Why would the directors adulterate an otherwise great movie like that? Now I realize why. They weren’t prudes like I was. It wasn’t a big deal to them. I was immersed in a sexually repressed culture that made it a big deal and viewed sexuality entirely through a moral lens.</p>

<p>But there is hope and healing. I can now watch an R rated movie with my wife next to me, without covering my eyes, and it’s not a big deal. Sometimes we even rate breasts out of 10. And guess what: I love my wife even more now that I don’t have to keep 90% of my sexuality in the recesses of my mind. I’m so much more comfortable around her knowing that I can say literally anything and she’s not disgusted or put off by it from some pious sense of moral obligation.</p>

<p>I’m not too sure what’s normal anymore, and in some senses I don’t care because it’s shifting all the time. It feels like the responses to reading all this would be on either extreme. Pious disgust, and secular pity. The pious disgust is the sheer inability for people to think outside of the moral cage they’ve locked themselves in. The secular pity is from those who can’t relate to the extreme cultural and religious immersion that some of us grew up in.</p>

<p>Here’s an example: Some couples watch porn together, and openly express and share their kinks and fetishes with one another, or express preferences that go beyond what their partner looks like. To other couples, that’s all completely unthinkable, and invokes shame, disgust and jealousy all mixed in together. For fuck’s sake, who else are you supposed to confide all that in if <em>not</em> your partner? If your partner is blonde but you also find redheads attractive are you just to take that to your goddamn grave? Or if your wife has small areolas but you also like large ones, does she just never ever get to know that side of you?</p>

<p>The following objection could easily be raised. If a husband is short but his wife is intrigued by tallness in men as well, there’s nothing he can do about it so it would be unfair to express that to him (insert any sexual preferences for male or female into the example). Sure, the spouse cannot alter themselves physically, nor should they feel pressured to. But the problem is that now you can’t even talk about it, or share it, because of some potential insecurity. A level of maturity is, of course, required here from both sides. Pointing out features that your spouse doesn’t have and relentlessly wishing that they did is bound to do some damage. But realizing that your spouse is their own person with their own preferences and desires is important, and it can be hella exciting to get to know their secret thoughts. Something that I’ve realized is there is a huge difference between fantasy and reality, and sharing your fantasy doesn’t mean you’re about to go act it out in reality.</p>

<p>Now, I’m not about to prescribe sexual ethics to anyone. I’m still figuring out <em>exactly</em> where I stand on many issues, though suffice it to say I’m significantly more liberal than I used to be on most topics (though I am still rather conservative in general. It takes a long time to unlearn decades of purity culture). To my mind S.T.D’s, babies, and consent are the primary things to be concerned about. Those are things we should be taught to navigate. Instead, we were taught to abstain from everything, and I think that’s to our detriment.</p>

<p>I don’t know what to do with the following, and it should probably be factored in to the conversation: Biologically, we’re ready to have sex from about ~13. Mentally, about ~16. Legally, 18. Financially, 25 or later.</p>

<p>The culture and religion I come from thinks you should only date to marry, and only have sex once you’re married, never watch porn, never masturbate. If they got their way, then in our current society many 25 year olds would still be sexually inept virgins. The sexual tension we’re forced to live with for almost a fucking <em>decade</em> is unbearable. Not only that, but the man or woman that you marry should essentially have zero sexual personality, preference, experience or expectation outside of that particular marriage. And this needs to persist for 60 odd years until one of you kicks the bucket.</p>

<p>I’m by no means against monogamy (nor am I advocating it). I’m not advocating polyamory (nor am I against it). Some people are so well suited to having a single partner for their entire life. Others are really well suited to having multiple partners. I no longer see the latter as inherently immoral. Let me be clear, I do think cheating is immoral. It’s breaking a social contract, and that causes distrust. And that is regardless of whether the couple is married or not. But the immoral part of cheating is the lying part, not the sex part.</p>

<p>I’m very happily married. I love that my wife and I can talk about literally anything without a sense of shame. It hasn’t always been that way. It upsets me that it took so long to get out of our mind cage. So many couples have inner worlds that they keep to themselves for fear of shame.</p>]]></content><author><name>Jedd Campbell</name></author><summary type="html"><![CDATA[Content Warning - Sex and Swearing]]></summary></entry><entry><title type="html">Running a tight ship</title><link href="https://jeddcampbell.com/running-a-tight-ship" rel="alternate" type="text/html" title="Running a tight ship" /><published>2024-05-05T00:00:00+00:00</published><updated>2024-05-05T00:00:00+00:00</updated><id>https://jeddcampbell.com/running-a-tight-ship</id><content type="html" xml:base="https://jeddcampbell.com/running-a-tight-ship"><![CDATA[<p>In the past year our software development team has grown from two developers to six. The system we’re building has increased in scope, scale, and complexity. Our clients are larger and more vocal as they lean more and more weight on our platform. We need to adapt our thoughts and processes to match.</p>

<h2 id="the-problem-space">The problem space</h2>

<p>Things aren’t scaling linearly. Our team, client base, and product are all growing at the same time. A larger team means more hands on deck, but also more communication complexity. A bigger client base means more revenue, but places a higher demand on support. Our product has more features than ever, but it’s surface area is huge and it requires way more maintenance.</p>

<p><strong>Communication and Team Dynamics</strong></p>

<p>It wasn’t that long ago that we had only three people involved with development communication: myself, Chris, and Riaan (two developers and the CEO). With three people in the loop we had only three unique communication channels (Jedd/Riaan, Jedd/Chris, Chris/Riaan). Now, with seven people in the loop we have 21 unique communication channels (not going to list them out). Communication is way more complex now. Chris, Riaan and I know the system quite well, but we now have four additions to the team who are still learning the ropes. We’re spending more time communicating than ever before. The team now has three times the amount of code to review. Chris and I each used to write about 50% of the code, now we each write 16.67% of the code (for now we write proportionally more, but this should trend to 16.67%). That means I have to spend time familiarizing myself with 250% more code than before, or else progressively lose sight of more of the system.</p>

<ul>
  <li>We need to keep more people in the loop, and keep track of more work.</li>
  <li>There are more people to train and get up to speed.</li>
  <li>There’s way more code to review.</li>
</ul>

<p><strong>System Scope and Complexity</strong></p>

<p>Our system has also increased in scope, and work has slowed down significantly. Our features have become interlinked. Every change we make impacts a larger part of the system. For example, when making a single change to our checklists feature we now have to ask how that change affects reports, tasks, notifications, contractors, forms, and the mobile application. If we make a mistake, it has the potential to affect every other feature that it’s linked to. Each time we take a shortcut, name something poorly, rush a function, or fail to properly think through a database design, we make it harder to maintain for the next person who comes along.</p>

<ul>
  <li>Our product’s surface area is increasing rapidly, and with it the maintenance cost.</li>
  <li>Making changes is more complex and impactful.</li>
  <li>Our technical debt is piling up and increasing in cost.</li>
  <li>One unit of work is taking more units of time to complete.</li>
</ul>

<p><strong>Clients and Support</strong></p>

<p>Our client base has also grown, and each client has different needs and priorities. These needs sometimes emerge in a seasonal sort of way. For example, there might be a deadline for safety file submissions, and so for a few weeks companies are focusing on safety files. Naturally, there will be an uptick in urgency and frequency of safety file tickets. So all of a sudden we need to devote more attention and resources to the safety file feature. Some companies do tons of checklists, others safety files, or risk assessments, and so we get more request from them on those specific features. As our clients and their needs grow, we’re forced to adapt and improve our system with them.</p>

<ul>
  <li>We’re spending more time on client requests and support.</li>
  <li>The increased activity is exposing poorly optimized areas of our system.</li>
  <li>Every bit of additional integration significantly increases system complexity.</li>
</ul>

<h2 id="project-management"><strong>Project Management</strong></h2>

<p>Writing technical documentation is a pain. But you know what else is a pain? Not having technical documentation. A few months ago we didn’t really need it, so we didn’t cultivate the habit or allocate any time to writing documentation. Now we need to play catch-up. A year ago two developers could handle the workload. Project management was an after-thought. Now we need a way to prioritize work and allocate resources. We need to formalize how we do things.</p>

<p><strong>Project Manager</strong></p>

<p>We need a project manager. We need someone who can focus on the project as a whole, from code quality to customer satisfaction. Someone who is responsible for planning and monitoring the project, and charting it’s trajectory. This feels like a very corporate thing to implement, but at some point we need to do it. We can’t all keep tabs on the whole project, and it’s only going to get more difficult to manage.</p>

<ul>
  <li>Who is it going to be?</li>
  <li>What are their responsibilities?</li>
</ul>

<p><strong>Architecture and design</strong></p>

<p>Currently, we do most of the design work in our heads. As time goes by, we forget why we made certain decisions, or implemented something a certain way. The original vision for a feature fades, and we’re left with an approximate version of the original plan. How close was it to the original plan? No idea. This also makes knowledge transfer a lot more difficult. Each developer needs to rediscover how a feature works, and why it works that way. We start to lose track of our system as a whole. We need to spend more time on the design process. Without a design process, each person has a different idea of how a feature should work. The developer doing the work might have the wrong idea, and spend a week doing work that needs to be refactored immediately. Spending a day on design might feel like a waste of time, but in the long run it’ll speed us up. It’s way easier to catch issues in the design phase and change a diagram than it is to rework code. It’s about improving the way we communicate ideas so that there is more clarity between everyone involved. It’s not about creating rigid specifications that we stick to no matter what.</p>

<ul>
  <li>We need to formalize the design process.</li>
  <li>We need to map out our current architecture.</li>
  <li>We need to map out each feature of the system.</li>
</ul>

<p><strong>Time management</strong></p>

<p>Software development requires focus. As our team grows, there’s more code to review, more discussions, more rubber ducking, more questions to ask and answer. If we don’t properly manage our time, a day can become too fragmented to get any meaningful work done. We need to structure some of the day so that we can plan better, and have more uninterrupted time to focus. We also need to formalize our development cycle and when we review code, test/demo that code, and deploy to production.</p>

<ul>
  <li>We need to allocate specific time for questions.</li>
  <li>We need to allocate specific days/times for code review.</li>
  <li>Implement code demos after code review.</li>
</ul>

<p><strong>Feature evaluation</strong></p>

<p>We have more than 30 features on our system. Each feature could be it’s own standalone product. Sometimes we ship a feature, and then don’t really follow up on it for months (or years). Are people using it? Does it work well? Does it solve the problem as intended? How much friction does it add? As developers, we aren’t always capable of sliding into the user’s shoes and seeing the system from their perspective. And we also don’t do a good job of seeing the feature from the perspective of our fellow developers, who will have to help maintain the code we just wrote.</p>

<ul>
  <li>We need to evaluate each feature from a user perspective, and a developer perspective.</li>
  <li>We need to review the workflows and iron out kinks.</li>
  <li>We need to standardize features so that they don’t handle like completely different systems.</li>
  <li>Let’s evaluate consistency, complexity, importance, user rating, dev rating.</li>
</ul>

<p><strong>Big picture</strong></p>

<p>Where are we going? How are we doing? We ask those questions infrequently, if at all. We’re bombarded with bugs and requests, so sometimes we get the idea that it’s not going well. We get tunnel vision on the specific part of the system that we’re engrossed in. Then we move on to the next bit. We need to take a step back and ask some of the bigger questions. Are we where we want to be? If not, how do we get there?</p>

<p><strong>Ethos</strong></p>

<p>What are the guiding principles that we can embody in our role as developers on this specific project? We want our software to be safe, secure, performant, and valuable to our users. We want our software to solve real-world problems, not exacerbate them. We want our codebase to be clean, maintainable, and well-written. To borrow from TigerBeetle’s <a href="https://github.com/tigerbeetle/tigerbeetle/blob/main/docs/TIGER_STYLE.md">TIGER_STYLE.md</a>, we want our project to be an intersection of engineering and art.</p>

<ul>
  <li>We need to formalize our developer ethos.</li>
  <li>Our priorities should be: Safety &gt; Performance &gt; User XP &gt; Dev XP.</li>
  <li>We should write code that we’re proud of.</li>
  <li>Ego should not get in the way of code quality.</li>
</ul>

<h2 id="technical-debt"><strong>Technical debt</strong></h2>

<p>In software development, a project can accrue technical debt every time a short term solution is implemented instead of a long term one. Sometimes this choice is deliberate, but at some point that debt needs to be paid off. Our project has a fair amount of technical debt to pay off. The longer we leave it, the more costly it gets (somehow, it comes with interest). This is something we need to be aggressive with, as it’s only going to get worse. Our productivity is already starting to decrease as more time is spent paying off interest, and not servicing the body of our technical debt. To get out of this cycle we need to take an even larger productivity hit so that we can make some bulk payments. We need to slow down so that we can speed up.</p>

<p><img src="/assets/images/20240505/20240505-1.png#screenshot" alt="technical_debt.png" /></p>

<p><strong>Lack of documentation</strong></p>

<p>Writing documentation adds a lot of overhead to software development, at least in the short term. Developers are notorious for not wanting to write documentation, or writing it poorly. It’s a skill that takes time to develop and integrate into your day of coding. It takes time to map out the requirements, draw up the architecture and design, and document the code for your fellow developers. And keeping documentation up to date is tough. It’s way more fun to dive into the code and emerge with a finished feature, no documentation required!</p>

<p>We’ve put thousands of hours into this project, and all the knowledge and effort buried within is wasted if it can’t be transferred to other developers. Imagine if other systems like Stripe, or Laravel, or GitHub had no documentation. They’d be inaccessible to us. We’re clipping our own wings by failing to write good, readable, maintainable documentation.</p>

<ul>
  <li>We need to craft a style guide and template for our documentation.</li>
  <li>We need to pay off the debt and document existing features, starting with the most important parts of our system.</li>
  <li>We need to include documentation in the workflow of new features, fixes, and patches.</li>
  <li>Documentation needs to become part of our developer culture.</li>
</ul>

<p><strong>No automated testing</strong></p>

<p>Like documentation, writing automated tests adds overhead to the development process. It forces us to think more clearly about our code. We’ll need to be succinct and follow good coding practices. Code can be so poorly written and designed that it’s basically untestable. The technical debt we’ve accrued here is two-fold. First, we need to rewire our brains and learn how to write testable code. Second, we need to trudge through existing code, some of which may be nigh untestable. We’ll need to add tests where we can, refactor where we cannot, and write tests for all new code going forward. In the long run, we’ll have cleaner code, and an automated way of testing it.</p>

<ul>
  <li>We need to learn what it means to write useful tests. From this we can create a test guide.</li>
  <li>We should start by writing tests for our most critical code.</li>
  <li>We need to write tests for all new code going forward.</li>
  <li>We need to pay off debt by writing tests for the rest of our code.</li>
</ul>

<p><strong>Refactoring</strong></p>

<p>This is the housekeeping part of software development. It usually involves changing the underlying code in some way without changing the functionality, usually to improve it’s maintainability or flexibility, or to remove code smells. A code smell is not usually a bug, but rather a sign of poor craftsmanship. It’s like a poorly formed sentence: it might be grammatically correct, but it was difficult for the reader to understand. Easy reading is hard writing. This is true for both linguistics and code.</p>

<ul>
  <li>We have a list of refactoring that needs to be done. We need to chip away at it.</li>
  <li>We need to set the standards for code quality, and not be afraid to call each other out when a piece is sub-par.</li>
  <li>Sometimes we need to ship code ASAP. If refactoring debt is deliberately incurred, that needs to be added to the list and dealt with.</li>
</ul>

<p><strong>Further reading</strong></p>

<p>Technical debt is an interesting subject in software development. It’s one of the reasons software projects often miss deadlines and run over the budget. <a href="https://en.wikipedia.org/wiki/Technical_debt">This Wikipedia entry</a> is worth reading for an overview of technical debt, how it’s incurred, the consequences, and how to pay it off.</p>

<h2 id="questions-we-need-to-answer">Questions we need to answer</h2>

<p>We’ve got tunnel vision. The biggest concern in a given day is the code we need to write to meet the next deadline. There’s nothing asking us to step back, look at the bigger picture, and see how it all fits into the plan. When we enter crisis mode, it becomes painfully obvious that we didn’t have the bigger picture in sight. Without our long term goals in mind, we lose sight of what’s important and each problem becomes more urgent than the last. These are just a few questions we should be asking regularly, and we need continuously refine it:</p>

<p><strong>Questions about our system</strong></p>

<ul>
  <li>How much technical debt have we accrued?</li>
  <li>What are our baselines (safety, performance, experience) and how far off are we?</li>
</ul>

<p><strong>Questions about our clients</strong></p>

<ul>
  <li>How do our clients feel about our support?</li>
  <li>How do our clients feel about our system?</li>
  <li>What can we do to improve our reputation and client trust?</li>
  <li>What’s our filter for accepting suggestions and requests from clients, so that we’re not saying yes to absolutely everything?</li>
</ul>

<p><strong>Questions about our team</strong></p>

<ul>
  <li>Is our team working on the highest impact items on the list?</li>
  <li>How can we reduce our team’s stress?</li>
  <li>What’s hindering our team’s performance the most right now, if anything?</li>
  <li>How do our implementors feel? They’re the ones on the ground. We can get feedback from them and see what’s impacting us the most.</li>
</ul>

<h2 id="possible-solutions">Possible Solutions</h2>

<p>It seems we have several mountains of work ahead of us. Where do we even start? We can’t implement this all at once, or fix things overnight. This is a long term problem and it requires a long term solution. Let’s start with the low-hanging fruit, and then move on to things we’ll need to implement over time.</p>

<p><strong>Low-hanging fruit</strong></p>

<table>
  <thead>
    <tr>
      <th>Appoint a project manager</th>
      <th>We need someone to constantly think about these issues and drive these changes. They can get started on the long term planning and help keep the team on track.</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Reduce our error logs to zero</td>
      <td>Our error log contains tons of relevant and irrelevant logs. Browsing through it is overwhelming, so it’s become quite meaningless. We should get our system to a place where it generates no logs, because we’ve fixed everything. Any new log should notify us and we should be aggressive in fixing it. This is a proactive way to improve our system’s quality and health.</td>
    </tr>
    <tr>
      <td>Implement code demos</td>
      <td>One of the problems is that we push a lot of features to production that was only seen by the developer who wrote it, Basic issues slip past us because we only focused on reviewing the code, and not the feature itself.</td>
    </tr>
  </tbody>
</table>]]></content><author><name>Jedd Campbell</name></author><summary type="html"><![CDATA[Growing a development team]]></summary></entry></feed>