The Blog

Finance, tech, and whatever else I feel like writing about.

All Posts
Building TTC LiveTech · Feb 2026
On Being Pool In-ChargeOpinion · Jan 2026
Snow Day MinecraftLife · Dec 2025
Finance

What I've Learned Investing at 18

I started investing at 18 with money I made lifeguarding and it did not go well at first. The first thing I did was go straight to YouTube finance influencers and honestly that was a mistake. Not because every single one of them is wrong but because I had zero framework to judge anything. I just watched whoever was confident and had a lot of subscribers and figured they probably knew what they were talking about.

So I bought stuff. Individual stocks I didn't really understand. Some crypto at probably the worst possible time. A couple of things because someone used the word "undervalued" in a thumbnail and I didn't know enough to question it. Some of it pumped a bit and I felt like I was good at this. Most of it didn't. Net result over that whole phase was a loss. Not catastrophic but enough to hurt, especially when you're working pool shifts to earn that money in the first place.

The thing that bothered me most wasn't even the money. It was that I had basically outsourced all my thinking to people who had nothing to lose on my behalf. They made the video, I made the trade. If it works, great for me. If it doesn't, that's also just me. They've already been paid by the ad revenue either way.

Deciding to figure it out myself

After losing enough to feel it I basically stopped listening to everyone and decided to actually read and figure things out on my own. I wanted to understand what I was doing instead of just copying someone else's trade and hoping for the best.

The more I read the more everything pointed in one direction. Most people who try to actively pick stocks, including professional fund managers with whole teams of analysts, don't beat a simple index fund over a long enough time period. The evidence on this is pretty overwhelming. So if the professionals mostly can't do it, I definitely can't do it.

That's what got me into index investing. I bought XEQT. It's a single ETF that holds basically the entire world: US markets, Canadian markets, international developed markets, and emerging markets all in one fund. The management fee is 0.20% annually which is almost nothing. You buy it, you keep adding to it, you don't do anything clever with it.

It sounds boring. It completely is boring. That's actually the point. I was a student with a part-time job and a TFSA. The boring strategy was the right one for my situation, not the one that makes for an exciting YouTube video.

The XQQ mistake I didn't know I was making

After a while I wanted more tech exposure specifically so I added XQQ, which tracks the NASDAQ-100. Heavily weighted toward US tech companies. Apple, Microsoft, Nvidia, Meta, Amazon, that group. I thought I was diversifying because now I had two ETFs instead of one.

That's not how it works. XEQT already holds a large chunk of US equities which already includes a ton of tech. Buying XQQ on top of that means I'm just stacking more of the same stuff. That's concentration risk. When tech runs well I benefit extra. When tech pulls back I take it harder. I held both for a while before I actually understood that two funds doesn't equal two different bets if the underlying holdings overlap.

I still hold XQQ because I'm young, I have decades before I need this money, and I'm genuinely okay with more volatility in exchange for more upside. But the key difference now is that I actually made that decision consciously instead of just assuming two ETFs is automatically better than one.

What I actually look at now

For a while I was checking my account every single day. Multiple times a day on bad market weeks. That accomplishes nothing. The only thing it does is make you anxious and more likely to do something impulsive.

Now I check on a few things that actually matter: am I contributing on a consistent schedule, am I staying under my TFSA contribution room, are my distributions set to reinvest automatically, and am I about to do something reactive because I saw something on social media. If the answer to that last one is yes, I wait a week before touching anything.

The biggest thing I took from the influencer phase is that doing nothing is almost always the right call when your instinct is to sell. Markets drop. Every time they drop it feels different and permanent. It almost never is. The people who panicked and sold during every dip in the last twenty years all have stories about why their situation was different. Most of them were wrong.

None of this is financial advice. I'm 19, I've lost real money on bad calls, and I'm still figuring this out.

Tech

Building TTC Live

I'm going to be honest upfront: I used Claude to help me build this. Not to write the whole thing for me, but as a guide when I got stuck, which was constantly. I found a TikTok of someone building a real-time transit tracker and thought it looked cool and wanted to see if I could do it. The video made it look pretty easy. It was not easy.

I had done some basic Python scripting before. I had never built a web app, never worked with an external API, never deployed anything to the internet. So basically I was starting from nothing.

What TTC Live actually is

TTC Live shows real-time subway and bus arrival times for Toronto. You pick a stop, it tells you when the next vehicle is coming based on live data from the TTC's public feed. It's live at ttc-live.abedin.ca. People actually use it which is still a bit surreal.

The part I did not expect

The first wall I hit was CORS. I didn't know what CORS was. I just knew my app wasn't working and the browser console had an angry red error. I asked Claude what it meant and eventually understood that the TTC API wasn't going to let me make requests directly from a browser. I had to write a serverless function on Vercel that acts as a middleman, making the request from the server side and sending the data back to the frontend.

The second wall was the data format. I assumed the API would return JSON because that's what everything uses. The TTC uses GTFS-Realtime, which is protobuf-encoded binary. Completely different thing. I had to find a library to decode it before I could even read what the API was sending back.

At some point I got the data working but the arrival times were showing as five or six minutes old. I wasn't polling often enough. So I started polling more often and hit rate limits. Finding the right interval took a bunch of trial and error.

Then I built the whole UI on my desktop and opened it on my phone and it looked like garbage. Had to redo the layout from scratch for mobile. Turns out most people checking when their bus is coming are on their phone. Should have started there.

What using Claude to build it actually felt like

I want to be clear that using Claude to guide the build didn't make it easy. It meant I could get unstuck when I hit a wall instead of just giving up, but I still had to understand the explanation, apply it to my specific situation, and debug whatever broke next. I probably read more documentation during this project than in any class I've taken.

The TikTok that inspired this made it look like you just describe what you want and an app pops out. That's not how it works. You describe what you want, you get a starting point, and then you spend the next week figuring out why nothing works the way it's supposed to. But eventually it does work, and that part feels genuinely good.

Would I do it the same way again? Probably. I learned more doing this than I would have from any tutorial because every problem was my specific problem, not a pre-packaged example designed to work cleanly.

Opinion

On Being Pool In-Charge

I want to be upfront about something: I don't really like the word "manager." It doesn't fit how I think about the role and it doesn't fit how I act in it. I'm just a regular staff member who has a few more responsibilities during the shift. That's it. The title is Pool In-Charge, not Pool Boss, and I think that phrasing actually matters.

I've been working at City of Toronto pools since 2022. Rink attendant, then lifeguard, then swim instructor, and now I run the deck during my shifts. The way I got there was just by showing up, doing the work, and not being difficult. That's kind of the whole thing.

The people who let it go to their head

I've seen it happen. Someone gets a slight promotion or a bit more responsibility and suddenly their whole personality changes. They start talking down to people. They get strict about stuff that doesn't matter. They remind you of their position when no one asked.

And what happens is nobody wants to work with them. Nobody cuts them any slack. Nobody goes out of their way to help them when things get chaotic. Because they made their position about power instead of just doing the job. And the job is not that serious. We're running a pool, not a hospital. Nobody needs to be making enemies over shift assignments.

How I actually try to operate

I just try to be the same person I was before the extra responsibilities. I'm not stricter with people because I have the title. I don't pull rank in situations where I don't need to. I try to make sure everyone's having a decent shift and if something goes sideways I deal with it calmly and move on.

What I've found is that when you treat people like regular people, they cooperate. When things get stressful, they help you out. When you need someone to cover something without being asked, they do it. Not because they're afraid of you, but because there's actual goodwill there.

I think if you need authority to get people to listen to you, that's a problem with how you're carrying yourself, not a problem that more authority is going to fix. The people I've respected most in work situations were the ones who made me want to do a good job, not the ones who could make my shift difficult if I didn't.

Anyway. That's my take on it. Be a decent person, do your job, go home. Doesn't need to be more complicated than that.

Life

Snow Day Minecraft

It started with a snow day. School got cancelled, a few of us were bored, someone had a server already set up, and we decided to hop on. That was a few months ago and we've been playing a little bit every week since then.

I hadn't really played seriously in a while. It came back fast.

Communication you don't notice until it breaks

We figured out pretty quickly that if we didn't talk to each other, we'd end up doing redundant stuff or none of us would do the thing that actually needed doing. Like everyone assumes someone else is handling food, then nobody handles food, then everyone's starving and making bad decisions at night.

So you end up building this informal split of responsibilities without anyone really deciding to. Some people are better at building, some are better at caving, some people just want to farm. You figure out who's good at what and you work around it. It's basically the same thing that happens in any group setting, you just notice it more in Minecraft because the consequences are immediate.

The keep inventory situation

My friend who hosts the server has one rule he will not budge on: keep inventory stays off. If you die, you lose everything you had on you. It's brutal. I have lost entire inventories of good gear to a creeper I didn't hear, or to falling into lava while distracted, or just to dying in a dark cave with no torch left.

Every time I bring up turning it on, he says it "ruins the integrity" of the game. And I disagree because I just lost a diamond pickaxe to a skeleton at two in the morning. But I also kind of understand where he's coming from. The fact that dying actually costs you something is what makes you careful. It's what makes you actually think before doing something risky instead of just yoloing into every situation because you have nothing to lose.

Respecting that rule, even when it's painful, is also just part of playing on someone else's server. He set it up, he maintains it, he gets to make the call. So you play by his rules or you don't play. That's pretty reasonable honestly.

What's actually fun about it

I think what I like most is that it's completely low stakes in a good way. Nobody is grading you. Nobody cares if your house looks bad. If we play for an hour and accomplish nothing except dying repeatedly and laughing about it, that's still a good session. There's not a lot of things you can say that about.

It's also genuinely nice to just be playing something with your friends regularly. We're all busy with school and work and whatever else. Minecraft is a reason to actually talk to each other that doesn't require anyone to commute anywhere.