If There Is a God, He Loves the Los Angeles Dodgers

Mon, 03 Nov 2025

Alright fellas, keep it light.

I’m a Blue Jays fan. In my defense, it’s been hard not to be; the doomed Cinderella run we just witnessed had much of the baseball-loving world in their corner, and a lot of the rest of it, too. But while I’m relatively new to the sport, you’d struggle to call me a bandwagoner. The first game I attended live was their brutal 2022 ALWC elimination game with the Seattle Mariners in which they secured an 8–1 lead and, due in part to a drastically mistimed pitching decision by John Schneider, proceeded to erode it over the course of the game while the energy in the stadium dissipated. If you’re not in the know, you might assume my reaction to that would be to say “well, that sucked” and go on with my life. But baseball is a sport for perverts, and, lacking anything in my life that served only to make me feel bad, I was in.

Others have spoken far better than I could about why baseball is particularly grueling to watch, so I won’t belabour it, but nothing is a given in this sport. No lead is insurmountable by any stretch and it’s impossible not to be acutely aware of this fact while watching a game. If you’re losing, each of your team’s at-bats becomes a tense moment in which they need to either show up or die trying. If you’re winning, you’re holding your breath as your reliever takes the mound, hoping they don’t blow it. It isn’t just standard sports fan pessimism that makes baseball so painful—it’s in the game’s DNA.

And so it would follow, then, that watching your favourite team make a completely unexpected postseason run would be approached with the same mindset. To start, the baseball season is like a frog being boiled. 162 games is far too many for any individual one to indicate a pattern, so you take it as it comes, week to week, month to month, until you finally poke your head out of the water and realize what’s been going on. The same team that sucked shit in April and May was suddenly winning the division and you’re not really sure how. You can’t remember a moment when it flipped, so in a way it feels like it never flipped at all. The Blue Jays were underdogs going into this season and they were underdogs coming out: even though they eked out a division win over the Yankees in Game 162, one of their best players was on the IL and their roster was not exactly stacked with power to begin with. One of their starting pitchers, Trey Yesavage, started this season in High-A and made his eighth overall MLB start in the World Series. Storybook season was an understatement.


If you’re like me—and if you’re reading this, you probably are, at least in this way—your brain has, somewhere, a constant low hum that tells you how fucked up the world is. Not depression or anxiety, not anything like that, just tacit awareness of the fact that the power structures in our society are unjust, climate crisis is inevitable, and both of those problems are growing worse by the hour. You live your life just fine; baseball, in fact, is one of many ways to enjoy yourself despite it, but you still know these things. It is the lens by which you necessarily view everything else, and when a team like the Dodgers comes along, you notice. You notice that their payroll is the largest in the sport. You notice that they were able to pay* $700 million** for the best player on Earth and he got them to win the World Series twice. You notice that their parking lot is the size of 11 stadiums and you notice that each one of their games is attended by a slew of disgustingly rich celebrities who happen to live nearby.

Look, the Dodgers themselves are basically fine. Shohei Ohtani, in spite of everything, is one of the most likable people to ever play the game, God damn him. And I don’t have anything against the rest of them either, except Kershaw or any of the others who may have loud, horrible opinions I don’t currently know about. The problem with the Dodgers—beating the Jays notwithstanding—is solely what they represent. And above all, when they’re playing the only Canadian team in America’s Pastime, they represent the United States. I’m not too proud to admit that I felt like Canada’s team winning the Fall Classic at a time when America is accelerating toward fascism more than ever before would have meant something. Sure, there are many ways in which Canada isn’t much better, but that’s getting harder to argue by the day. It would have at least been symbolic.


The unknowable future is hard to fathom in times like these. I’m lucky that war and wildfire are things I only have to hear about rather than experience in my home, but patterns show that that’s utterly unsustainable. It is, in my experience, impossible to truly feel deep down that nothing governs it all. I’m not a religious person, but you don’t have to have an answer to the question “Why is this happening?” to feel that an answer must exist. That we were all born into this world that allows so much suffering, and that we’re hurtling towards levels of it that most of us can’t even imagine—we’re just supposed to accept that we lucked into this? We got the short end of the existential stick and it’s all for nothing? I don’t think I can.

So with that bleak mindset undergirding your every thought, and nothing but time to agonize over the fact that, in the best case scenario, you’re about to watch the most stressful baseball of your life for a month, you start to make connections. Jays media is replete with mottos like “Canada’s team”, “one country, one team” and even “bring it home”—which I have to admit makes a lot more sense for the Stanley Cup finals. Regardless, flipping between that and my Bluesky feed where I see another ICE squad kidnapping parents to leave their children in the street crying, you can’t help but start to see this World Series as a microcosm of what’s happening on this continent.

I realize this is all a little much. I really do, and not just in hindsight. But it all works out a little too well, doesn’t it?


I think about jinxes. It’s funny how much I believe in them. I would have told you it’s silly, but nevertheless felt a pang of guilt speaking about the possibility that the Jays could have won it all. Silly, sure, but more than that, isn’t that selfish? Even if there’s some grand force in the universe that enforces Jinx Rules, how could I alone possibly affect it? Surely there are millions of other people talking about this each day, and just as many doing the exact same thing on the other side. Jinxes can’t exist unless you invoke some sort of jinx solipsism, some reason that you and you alone are the person who can affect the outcome simply by speaking it aloud. Or else it’s a spirit bomb situation, I guess, where your jinx decreases the chance of it happening by some miniscule amount, and everyone’s jinxes are all added together. Either way it’s plainly asinine, but a lot of people still feel it deep down.

The simplest explanation—that things are just happening and there’s nothing more to it—doesn’t track for me, either. I don’t want to sound bitter (although, could you blame me?), but there are a million ways the Blue Jays “should” have won that World Series, showcasing a preternatural consistency in just barely coming up with a win; that is, until the moment when it mattered most. They took the ALCS and World Series to Game 7 and neither were blowouts. It was a postseason run decided almost entirely by close calls, and the odds of that happening in the way that it did seem so low that it’s truly hard to believe, even having seen it play out.


It’s hard to describe the way I felt after Game 7. I think “grief” is truly the best word. I barely slept that night and it was well into the next day before the pit in my stomach went away. It’s still coming back in waves. I shouldn’t care about sports this much. I’ve never cared about sports much at all, really. But this was different. I had attached so much extrinsic meaning to the result of this baseball season and I had deluded myself into believing that there was no other way things could possibly be. Of course the Blue Jays had to win, because that would be a sign, an undeniable sign from God or the universe or whatever else, that what was happening was wrong. That good triumphs over evil, that no matter how bad things look now that there is always a light and here is that light because America has lost at its own game despite throwing all the money in the world at it. The timing would not have been a coincidence.

So what, then, if that doesn’t happen? That, grandiose and ill-fitting as it may seem, was what I was contending with, all at once with anger at Isiah Kiner-Falefa for not taking more of a lead off of third. We must either live in a random, uncaring world in which nothing could ever matter, or we live in a world that wants to laugh in our face about how bad it is. And with the way that series went, it was laughing hard.

But, it’s just baseball, right? Maybe God isn’t about all that symbolism stuff, maybe he’s just a fan. If that’s the case, his allegiance is clear. And I want to get on his good side, so let me Pascal’s Wager my way in there now: Blue Jays fan coming in peace. That was a hell of a series, could have gone either way. Heartbreaker but it was some damn good baseball. See you next season and congrats to the boys in blue. Amen.

  • Personal
  • Essay
  • Baseball
Read more

On People-Watching

Wed, 30 Apr 2025

I live in a high-rise across the street from a strip mall. The cornerstone of the mall is a large grocery store, so the parking lot is busy all hours of the day. A strange thing happens with sound high above ground level; it echoes or resonates somehow, and even while indoors I can often hear conversations from below as if I were standing right next to its unknowing participants. I assume most people haven’t lived in a high-rise across the street from a busy lot, and like my past self, have no idea that their words are being projected for an array of tenants to hear.

I live in a high-rise across the street from a strip mall. Often I find myself watching the cars weaving through the parking lot, and the pedestrians maneuvering around them. The cars and the people driving them form a collective organism, whose behavior arises not from synaptic impulses but from traffic laws and the layout of parking spots. If you’ve never sat and watched something like this, you might at first be nervous that someone is going to get hit. From this vantage point it’s easy to see that a car coming around the corner cannot see a pedestrian coming around the other side. It doesn’t seem to matter; the car is always going slow enough, the driver and pedestrian aware enough, that one of them is able to move out of the way. But to be certain, accidents like these do happen, an aneurysm in the hivemind; sometimes I feel like shouting a warning, as if my bird’s-eye-view bestows a responsibility to the safety of the population below. I never do.

I live in a high-rise across the street from a strip mall. During the day, if I’m watching from indoors, it is practically impossible for any of them to know I’m there, as the glare from the sun off of my windows would obscure me from view, even on the unlikely chance anyone would look up to see if anyone is watching them. In that moment, I am a pure observer—as unwilling to affect the subject as I am incapable. That’s an unusually rare position, to observe something so real. We spend the bulk of our days observing our family, our friends, our screens, always an active participant. Everything else was formed by you and curated for your taste. Not this—these are people in their default state, running errands, certainly aware that they are being watched by someone somewhere, but numb enough that it could not possibly affect their behavior. Yet in a way, it feels like this parking lot is curated for me, too.

I live in a high-rise across the street from a strip mall. The balcony is ten stories up, and the risk of falling off of it is impossible to ignore. The ground below is concrete and asphalt; a fall would be certain death. I have no reason to believe this will happen, accidentally or otherwise; there is a sturdy rail that I don’t make a habit of leaning over. Its threat is benign and ever-present. When I focus on a group of people having a conversation below, I feel compelled to jump down, magnetically drawn to be part of it, as if I belong down there and not up here. I think about how nice it would be to freefall for those precious few seconds before the ground catches up with me.

I live in a high-rise across the street from a strip mall. In the far corner sits a seedy bar whose patrons, as best I can gather, are there because they don’t have anything better to do. At night when the rest of the mall is empty and there is little traffic on the road, it’s easy to be distracted by their conversations, often enhanced in volume by their drunkenness. Sometimes I wonder if the yelling I’m hearing is motivated by anger, passion or both. Sometimes it’s easy to tell. I wonder if the woman yelling at a man as she walks away from him is annoyed with her husband or regretful of a first date. I wonder what the man being beaten on the ground by a group of five others did to deserve it. I wonder what the woman sitting with him waiting for the ambulance thinks. I wonder if it would have happened if they knew someone was watching.

I live in a high-rise across the street from a strip mall. Behind it is another apartment complex, larger than my own and with more windows. But I have something they don’t—a clear, unobstructed view of the mall’s parking lot. Behind it is the parking lot for the apartment building, which appears a lot calmer. I wonder if they can hear the calamity and wish they could see what I’m seeing. I feel grateful. I can see into their windows, too, of course, if the lights are on and it’s dark enough. I make out shadows pacing around, nondescript figures standing in doorways, faceless construction workers on the roof. I wonder if they think about the reverse panopticon sitting alongside them and how any one of a hundred different people could be observing them at any moment. I wonder if they wonder the same about us.

I live in a high-rise across the street from a strip mall. In a month, I will not. I watch the parking lot differently now. If it’s an organism then its cells replace themselves several hundred times a day, a steady stream of vehicles arriving and departing for hours on end. I may not have ever seen the same person twice, and it’s certain that many of the people I’ve seen there are now dead. But every day, it feels like the same thing I’ve looked at every day for five years. It looks the same, it sounds the same, it behaves the same. In five years again, this strip mall will stand here, each day bearing witness to hundreds of unique individuals but always the same collectiv. I wish I could take it with me, not the mall or the parking lot or the cars or people in it, but the spectacle. This pastime, to just sit and watch something so natural and predictable, and this position to observe so neutrally. Of course I cannot. But I will certainly miss the feeling of standing here, getting a glimpse into so many lives, watching such raw, natural existence. The parking lot will go on the same without me, but I, in some way, will not go on the same without it.

  • Personal
  • Essay
Read more

So, I'm a web developer... now what?

Sat, 21 Oct 2023

It’s been over a year now since I lost my big tech job and began my transition into web development. The majority of my then-7-year career was spent working in low-level languages like C++ and worrying about problems like memory leaks and cycle-level performance. I still couldn’t tell you how I ended up with those kinds of jobs, but once I did, it was a struggle to get out; that’s what I had experience in and so that’s what I could get hired to do. Granted, I never really tried, but I never truly loved working in that environment the way I loved making projects for the web (which I spent a lot of my free time doing).

Well, I’m happy to say that, after almost a year of professional development and job searching, I’ve now settled into a job in which I’m nominally a web developer, but I spend a lot of my time doing app development and setting up web infra too—I’m fine with this since web infra tooling is great nowadays (I’m not actually writing the infra, after all) and with frameworks like Cordova and React Native, apps are basically just websites anyway. But the main point: I achieved what I set out to do over a year ago. I proved myself enough to convince someone to hire me to make websites and now I’m doing it! So what’s the verdict? Was it worth it? Did I actually enjoy building websites or was I just excited and fulfilled by greenfield personal projects? Does the day-to-day tedium of professional coding crush my soul just the same, or was it really the type of work that got to me? Am I really having a better time than I was at previous jobs?

…Yes, oh my god yes. I don’t know the last time I thought about memory allocation or the rule of five and I am significantly happier for it. More power to you if you’re a low-level engineer—there are certainly aspects of it that I liked and I’m sure I haven’t written my last line of C++ yet—but, by and large, that type of coding is not for me. The web space is exciting, constantly changing, constantly improving. It breeds creativity in a way that low-level coding just doesn’t. Even if all I’m doing is executing someone else’s design, finding all the best ways to make things look right is like a puzzle that is, to me, very satisfying to solve.

Sure, the honeymoon phase is over, but that just makes me more confident in saying this was the right choice. I spent the first weekend after I started thinking about how I was going to restructure the code on the first project I worked on. I firmly believe in work/life separation, but I literally couldn’t help it. I was just too excited about my work. I’m even still finding time to work on projects in my free time, which is more than I can say about working anywhere else. I recently ported someone else’s web project to Vue, and it took me about a week. I basically spent all of my off hours working on this until I finished it, and I have no idea where that motivation came from, but I can tell you I definitely would not have had it if I spent my work days hating the code I was writing.

So will it last? You can never really know, but I think so, yeah. One of the biggest benefits of my current job is that we take on a lot of projects, which means I have a pretty low chance of getting burnt out from working on the same thing for years at a time. In the 6 months I’ve been there, I’ve worked on 3 or 4 main projects on a consistent rotation, and more odd jobs in the interim. Lots of people would hate that style and I totally get why, but I love the variety. But even if it wasn’t for that, the actual work I do on a given day is so much more enjoyable for me that I think I’d have a harder time burning out anyway.

I was very lucky—extremely, cosmically lucky—to be afforded the chance to take so much time off of work to put in the hours I needed to pivot career paths, and I’m grateful for it every day. There were certainly times I thought about how easily I could have gotten a similar job and stopped worrying about it earlier. But now that I’ve come out on the other end, I can say that despite everything, it was 100% worth it. If you find yourself wishing you were doing something else, and there’s any way at all you can give it a shot comfortably, do yourself a favor and go for it.

  • Professional
  • Career
Read more

The Unbearable Lightness of Job Searching

Sat, 25 Feb 2023

Most of us are familiar with job searching to some extent. If you haven’t, you’re either supremely lucky or you’re too young to worry about it yet, in which case you should click off this post right now because I don’t want to give you a needlessly pessimistic view of the world. I’ve been in the mire of job searching for a while now, and while I totally recognize that my feelings are tainted by my current situation, it doesn’t change how I’m feeling now.

I play a game called RuneScape from time to time. One of the things to do in that game is to fight a boss for a 1/x chance of getting a specific item from it, usually a pretty low chance like 1/128 or 1/300. It’s purely random—nothing you do can affect your chances each kill. (It’s kind of like gambling, but without the really big downside.) I bring this up because it’s common for players to invoke the gambler’s fallacy when grinding for a specific drop. “I’ve killed the boss 500 times already, I must be getting close!” Mathematically savvy players point out that you are of course no closer to getting the item after killing the boss 500 times than you were at the beginning of the journey. It’s just a dice roll, and the dice have no memory.

But in my experience, it’s really, really, really hard not to feel like they do. Of course I’m closer, look at all this progress I’ve made! 500 attempts at a 1/300 event means I’m due almost twice over—it must be coming soon! I know in my head that it’s wrong, but I can’t stop myself from feeling that it’s right.


I bring it up because job searching is much the same. Applying for a job is a roll of the dice. There are things you can do to affect your chances of succeeding at a job application, of course, but if it’s a public posting, there are a lot of other applicants; you (statistically speaking) probably don’t stand out from the pack too much. And even if there were a way to seriously affect your chances with any given job listing—maybe your cover letter skills are out of this world—you still don’t know whether the company is a good fit for you or vice versa. If you keep applying, you will eventually get something. But those failed applications are, broadly, not helping you succeed at future ones. If you feel that all the jobs you applied for and didn’t get constitute progress towards getting hired, you are a victim of the gambler’s fallacy.

That’s a tough place to be in a position where we’re told merits matter. If you’re hard-working, if you’re good at your job, if you have the experience and the skills, you’ll get hired. But when there are orders of magnitude more applicants than available positions, probability takes over. Suddenly there are a whole lot of people who deserve a job, for whatever that means, and are having a hell of a time finding one. It’s easy to start feeling like you’re doing something wrong, or that you aren’t good enough.


The Unbearable Lightness of Being is a Czech novel from 1984 by Milan Kundera. He draws on Nietzsche’s teachings about the “heaviness” of eternal life—the burden of the eternal consequences of your actions—and rebuts that because we in fact live only one life, there is a cosmic absence of burden on mankind. We become lighter than air, our movements as free as they are insignificant. If we only have one life to live, might we as well not have lived at all?

A complete lack of burden can have the same effect as a massive one. Can I truly go to sleep happy after a long day of applying for jobs, knowing that unless one of them pans out (and the low chance of that happening), I might as well not have done anything at all? It is not a burden, but a lightness. If I were burdened I would know how to lift it, and I could work to achieve that. As it stands, I can’t. I can do things that feel like I’m working towards something. But what I’m really doing is pulling the handle of a slot machine and hoping something comes out. I’m rubbing my hands and blowing on the dice as much as I can, just like all the best gamblers, but just like all the best gamblers my odds of success are about the same as everyone else’s.


What I don’t have in common with most gamblers is the ability to stop. When a gambler resigns themselves to the statistics and quits, they get to go home. I don’t get to do that, because I have a ticking time bomb above my head at all times equal to the amount of money in my bank account, and when it hits zero my entire life detonates. I have no logical choice but to keep gambling, each failed attempt leaving me wondering what I’m doing wrong or why I’m not good enough. The truth is, of course, that most job applications don’t work out. They can’t. I can tell you with certainty I’ve never bombed a job interview hard enough to make my potential employer say “please stay far far away from our company”—when it doesn’t work out, it just means it wasn’t a good fit, or they chose someone else, and I don’t think that means anyone has done anything wrong. But the human brain likes patterns, and it likes cause and effect. It’s borderline impossible not to feel responsible for things that aren’t your fault.

And that leaves me—us, all of us—here, where the best course of action is to fail, fail, and fail again, each one a gut punch that steels you a little more in your belief that maybe you don’t deserve to succeed. The only way out is to get lucky, and not everyone can. We can look in all directions for something, anything, we can do to lift the burden, but in truth we can’t, because the burden isn’t really there. It isn’t a burden, but a lightness. A lightness that comes when your movements are as free as they are insignificant. The feeling of needing to do something, but being unable to do anything—the unbearable lightness of job searching.

  • Personal
  • Opinion
  • Professional
  • Career
Read more

Light-speed frontend prototyping with create-vite-tailwind

Sun, 11 Sep 2022

(tl;dr: create-vite-tailwind on npm)

As someone trying to get into pivot into full stack web development following a recent job loss, I knew I would have to spend time building some frontend to prove myself to prospective employers. Frontend Mentor seemed like a great addition to the portfolio - professional grade designs that look great and offer a wide range of opportunities to learn various frontend techniques, on top of getting a little practice in a designer-developer workflow, albeit a very one-sided one. So I set out to build some of these projects.

I’ve spent a lot of time building web apps using the old “save a change, restart the server, refresh the browser” loop. And if you have too, I don’t have to tell you how hard it is to go back to that once you’ve seen the light of browser sync/hot reload/etc. One of the fastest build tools out right now is Vite, which is an absolute treat to use and I recommend you try it out if you haven’t.

But something else I (and a lot of other people) have been really excited about is TailwindCSS, which (among other things) offers fantastic developer experience. You rarely, if ever, have to write bespoke CSS, instead using Tailwind’s plethora of utility classes to style your elements however you want. Writing frontend with Tailwind really feels like hitting the ground running - there’s a lot of friction in writing CSS classes that for the most part is completely taken care of by Tailwind.

The problem, though, is getting them to work together. While it’s true that Tailwind really shines with a component-based framework like React or Vue, sometimes that isn’t what you want, and I found that they were unnecessary for the Frontend Mentor flow, where you really focus on design and less on functionality. I don’t know if I’m the only person who thought this was a missing piece, but even the official Tailwind docs only offer guides on installing with Vite when using React or Vue.

As an aside, Tailwind does have a play CDN that you can link in your HTML and use most of Tailwind, but it’s still missing some important details like modifier classes (hover:, active:, responsive widths, etc.) so it really didn’t solve my problem.

Since this was something I could see a lot of use for, I created an npm initializer package to suit the use case. On top of automatically installing and configuring Tailwind, it’s extremely minimal, containing only those files necessary for a quick prototype. This package is very much aimed at prototypes and other simple use cases.


To jumpstart a project using this package, just run:

$ yarn create vite-tailwind <name>
$ cd <name>
$ yarn dev

And you’re up and running in less than 30 seconds, with all the fast refresh and Tailwind magic you could want. (You can also use the corresponding npm commands, but I recommend yarn, again for its speed.)

It’s a pretty simple package that I haven’t noticed any issues with yet, but it’s major version 0 for now. If you do notice an issue, or have a suggestion, I welcome all sorts of issues on GitHub (I did get a comment about optionally including UI frameworks like Daisy, which I’m super open to if people would use it) - or PRs!


Bonus: while writing this post, caniuse-lite made a breaking change that completely broke this package, among many others. Thanks to Andrey of PostCSS and autoprefixer for fixing so quickly!

Note: This post was originally published on dev.to.

  • npm
  • webdev
  • vite
  • tailwindcss
Read more