Decade in Review | 2010-2020
At the time of writing this, I've been on Earth for about ~2.4 decades. That means that ten years ago, I was the very tender age of fourteen. Remember fourteen? Remember all that confusion, boredom, and frustration (and maybe also rebellion)?
At fourteen, everything seems possible. Our dreams of becoming a rockstar, playing sold-out shows, traveling the world, and other big and grandiose things don't seem all that ridiculous. At fourteen, everyone's got their own time blanket to cover their eyes with to stay hidden from the real-world boogeyman: reality. Usually, at fourteen, we don't have to make any of those big decisions just yet.
Flash forward ten years, and I'm twenty-four.
I've made all the most significant decisions of my life so far including what I want to do for a living, who I want to spend my time with, where I want to live, and what I want to achieve in the next decade.
In ten years, I have to say that I'm really proud of how far I've come.
I've gone from high school to working in a factory, to running my own lawn care business, graduating from college and university, learning various instruments, recording 7 full-length albums, playing shows, working tech jobs, building a startup, creating products and blogging, and eventually landing my dream job.
In this post, I'd like to recollect some of the most profound, weird, and memorable moments over the last decade.
Every single day of high school in Brantford, Ontario felt like it was the funniest day on Earth. Surrounded by cartoon characters, I met hilarious people like James, a weed-smoking compulsive that thought he needed to buy the friendship of his peers with chocolate bars stolen from his dad's convenience store. I also met people like Phil, a lanky stoner influenced by Marilyn Manson, who often attended class with a white contact in one eye. Hilarious.
I can barely remember a moment I wasn't laughing (and I probably bought myself several additional years of life with all of that laughter).
- Green Day (I could play all of their songs on drums; my favorite album was Insomniac)
- Blink-182 (what? they were good)
- Weezer (Pinkerton was the emo jam back then)
- AFI (I still bop their first few punk records)
Formerly a math teacher, Mr. Levac was suddenly tasked with teaching high school students the fundamentals of Computer Science.
Having gone to university for programming later, I thought he did a fantastic job. We learned about searching, sorting, arrays, hashtables, and all the basics of programming with Java. By the end of the class, I had programmed a two-player game of chess.
I was very fortunate to have the opportunity to take a programming class in high school.
- This class was the time I ever experienced that empty mind feeling you get when you get into the flow of programming. I always felt the class was short, and that's likely because I was having so much fun with it.
I learned the value of backing up files in multiple places when I lost an album I worked an entire summer on recording
I spent an entire summer in my parents' basement working on a punk album using a crappy little Dell netbook, Audacity, and FL Studio.
After completing the record and rendering it all out to WAV and MP3s, I was devastated when my hard drive with all of the original project files on it- died.
Hard lesson learned that year.
If it doesn't exist in at least two places, it doesn't exist at all.
I still have the final exported audio files, but listening to the way it was mixed back then makes me cringe. If only I could go back in time...
- Nine Inch Nails
- Queens of the Stone Age
In Ontario, we have to take a Careers class and complete a test that tells you what job you'd be well suited for. I seriously think we need to re-evaluate how those tests work because mine spit out that I should become a Bereavement Counselor 🙃. Hmm.
Anyway, even though I liked computers and coding, my parents really wanted me to try to get into law. After all, what parent doesn't want their kid to be a lawyer?
I figured why not, let's treat it as an experience, right? I'm so glad I found a co-op placement at the Brantford Superior Court of Justice through my school. Within two days, I realized how much it wasn't for me.
Periodically in between doing really boring filing work, I got time to sit in on custody battles, people in trouble for shoplifting, vandalism, theft, and all kinds of other creatively heinous crimes, but it totally wasn't the kind of thing I wanted to spend my time thinking about.
Even though it was 4 months of boredom and the thing I enjoyed the most was helping troubleshoot intranet issues, I appreciated the experience because now I know for sure.
- Not going to tell you because it's embarrassing.
I think the Schulich Scholarship is actually Canada's biggest scholarship (today, it's $100k CAD for STEM students). I was nominated for it!
It came down to two other students and me. Unfortunately, I didn't win it. Unfortunately for the person who won it, they ended up dropping out of school and giving back all the money after the first year to go into trades instead. Nonetheless, I figured things out and was able to fund my way into Brock University/Sheridan College's Computing and Internet Telecommunications Program.
Because Brantford's part-time job economy for high school students was pretty poor, the only job I was able to find was working as a temp in a soap factory.
That sucked. It felt like I barely saw daylight for months. Though I did get some pretty hilarious stories from it.
The main difference I've noticed between college and university is that in college, you end up doing a lot of busy work, but in university, the assignments that you get can take anywhere from an hour to 2 weeks to complete.
For example, in Mathematical Reasoning, we'd often get these single page assignments with one or two formulas to solve. I noticed that we ended up spending more time just trying to understand the problem than we did actually solving the problem.
And when I got to college, it was just a lot of work- not as theoretically challenging, but man I always had something keeping me busy.
That first week at Brock, getting my ass kicked in the Mathematical Reasoning class, I went to the math lab, rallied up a group of first years also struggling, and worked through those problems together. Several of those first years have become really good friends to me that I still keep in contact with to this day.
- Before I left for university, me and two buddies recorded The Sandpaper Disco II, an electronic/dance album with a few good songs :p
- In the Winter, I recorded Axion EP in my dorm room, a downtempo trip-hop/electronic record under the pseudonym of Cyanide Canaries.
- Massive Attack
- Dead Kennedys
After taking COSC 1P02 and learning about basic data structures like Queues and Stacks, I was feeling like I learned some really cool stuff but wasn't sure how to apply it in the real world just yet.
I had this idea for a really long time that I wanted to figure out how to build my own glitch art program.
Glitch art is exactly what it sounds like. You take an image, mess it up by changing some of its digital representation, save it back, and then look at it.
It wasn't until second-year' sCOSC 2P03 - Advanced Data Structures that things finally clicked.
I remember staying up all night at my friend Kirk's house, getting the code on Glitchie to work.
You can download the jar and try it out on Github. I haven't tested it on Mac yet.
In the summer, I needed to raise some more money to head back for the second year of school.
I was really fed up with factory work, so I came up with the idea of running my own lawn-care business with my stepdad. We called it "Steps Lawn Care."
Honestly, we made a killing.
Since my stepdad had his own full-time job, he would only help me out in the evenings, so throughout the day, I would drive the truck with the trailer across Brantford, Paris, Hamilton cutting and rolling lawns. I was able to pull in $300-600 a day on average if it wasn't too hot outside.
Tip: You want to get up really early and get the big lawns out of the way when you've still got a little bit of that early morning chill goin' on. Pushing a lawnmower in 25-degree heat is straight-up death 💀.
- Really influenced by the trip-hop genre and artists like Massive Attack, Tricky, and Portishead, I recorded this warm trip-hop + surf-rock album called Separation Stories in between classes. My process was to record an entire surf-rock song, cut the guitar riffs up into little samples, slow 'em down, and then organize them into a downtempo track using a Novation Launchpad. I would record vocals, more guitars, and place other embellishments over the track in FL Studio.
- The Clash
- Beastie Boys
My first co-op job through school was at IBM in Ottawa.
It was one of the longest and coldest Winters I've ever experienced. It felt like I was living in an extended version of The Girl With The Dragon Tattoo (the Daniel Craig one).
I was a Technical Analyst at IBM and accompanied by two of my brock buds, Imran and Sulman. Lots of fun times being thrown into the deep end, resolving customer service requests on technologies that we practically knew nothing about. To this day, I still can't tell you what a star schema is.
Quip of the decade: Once, I forgot to pack a lunch and decided that I would just spend my lunch break reading my copy of Kim Gordon's autobiography that I brought from home. I entered the elevevator with Sulman, Imran, and our team lead, Cam. Cam asked me where my lunch was, and I told him I forgot it. A couple seconds of silence passed. Before the doors to the elevator opened, Sulman murmured the words, "Readers digest". Two more seconds passed. Then, we all bursted out with uncontrollable laughter.
Ottawa and Montreal have thriving art scenes. One particular night after work, I walked across town in the blistering cold looking The Gabba Hey, an underground punk venue located in an industrial district of Ottawa.
Upon walking in, noticing punks decked out in studs, leather, and spandex, I was sure that I was going to be the only one attending this show in a full suit and tie getup. While that was technically correct, it was the virtual presence of Mr. Node and his cut-up nine-to-five suit and tie uniform that also occupied the space.
Pretention aside, before any bands played that night, we were shown a documentary about a Montreal freak punk band called Thee Nodes.
Mr. Node was a mental mummy businessman that performed with toilet paper wrapped around his head and had about as much to say as Jello Biafra, although in a less witty and cutting way.
I don't know. Something happened here witnessing this. I've never seen music performed so passionately. It was probably more performance art than music. Art had been so important to me for such a long time, and on that day, something shifted in my head. I'm not sure how to explain it. Weird that I'd even mention it on a decade retrospective, but it's unexplainably important to me for some reason.
Further reading: I find these guys fascinating. If you're interested, check out this Vice article titled "Thee Nodes Went to the Future and Came Back Insane". If you're still intrigued, I just learned that the original documentary "Who Are You Mr. Node?" is finally on YouTube.
The university program I chose was half computer science and programming, and half computer networking.
These first few weeks were kind of rough because I was joining a second-semester class that had already learned all the basics and were getting ready to apply real-world networking protocols like OSPF, RIP, MLPS, and IS-IS.
I got a couple of books off someone, busted my ass that first month, and somehow caught up. Because I'm more interested in programming and software design, I almost never need to utilize any of the core internet routing and networking knowledge I acquired at school, but I at least have an appreciation for just how complex the internet really is.
Did my first software development co-op and learned the hard way how important it is to test your code
My first actual software development job was as a Java Developer at a company in Cambridge that builds ERP Software.
The codebase was very bad.
My first assignment was to "take some SQL code, put it in this block of Java code, and run it." I was also told that I'd "know if it works if it doesn't return any rows."
The hardest lesson I ever learned was that I should never skip out on running tests and making sure my code works because once, I neglected to spend time doing any testing, and the code went out to the client completely busted. I was called in to speak to the manager that comes up with the requirements and given an incredibly stern and upsetting talking to.
Though there might have been a better way to go about doing that, I saw it from his point of view. Test your code, kids.
- At this time, I was mostly into noise rock and recorded an album called "Death to the Police Force." One of my better-sounding releases.
- Sonic Youth
- Black Flag
Back at Sheridan, I was introduced to a fellow named Charles, who was as interested in programming and entrepreneurship as I was. Charles met with the mayor of Mississauga and asked her what the biggest problems in Mississauga were. She said that the single biggest problem was brain leak, meaning that all of the smart STEM students were leaving Mississauga to find tech jobs in Toronto while there are plenty of opportunities in Mississauga that no one knew about.
Charles asked me to help him with his database schema and later asked me to help him develop the platform. Seeing how passionate he was about solving the problem, I decided to invest my time to work with him on what would become Univjobs.
The application was built using React.js, Redux, Node, and eventually refactored to TypeScript and deployed on AWS.
Bill Farkas is well-known for being one of the hardest professors you'll ever have. He created the Internet Telecommunications program in the 90s, took a bet on TCP/IP, and will most certainly make you learn. You will not graduate if he doesn't feel like you put in the effort.
The way I feel about it now is kind of the way that you feel about parents that were hard on you growing up- you know they were hard on you for your own good, but man, it really sucked.
Bill expected students to put in 60-70 hours per week and come prepared for lectures and seminars. I used to spend 15-20 hour days in the computer networking lab and often slept there in order to attend the class the next day. Unfortunately, that was the norm at the time. Any social life or balance I had before attending Bill's classes were completely killed by the time I started.
For me, the most positive outcome I got from taking Bill's classes was my improved ability to present technical information in a concise and approachable manner.
Bill would often draw out a network topology, cut a few lines, and then ask someone to come up and explain to the class how the network will converge.
The challenge is: if you provide any superfluous information, Bill will roast you in front of the class.
If you don't provide enough information, Bill will roast you in front of the class.
If you provide incorrect information, Bill will roast you in front of the class.
In fact, you have to work really hard to not get roasted in front of the class.
Either that or just accept the fact that you will get roasted in front of the class. Talk about facing your fears of public speaking.
A very valuable experience that did a lot more good than bad, though some couldn't take it, which made the graduating class pretty small.
- My tastes had shifted more towards post-punk and popular music by this time. I recorded "Dig It Up," probably my most accessible music to date.
- The Birthday Party
- Gang of Four
- The Drums
Free from Bill, I felt like I could actually live life again. I started getting back into exercising, meeting new people and just having fun again.
This was the best summer I've ever had. I was able to turn a really sleepy commuter school community into everyday feeling like a party.
Univjobs makes it onto Blog Toronto & Toronto Guardian, and the traffic demolishes our tiny AWS t2.micro
I was sitting in class when all of a sudden, 600 new people signed up for Univjobs within about 3 minutes.
Looking at the traffic, we discovered that Univjobs had made it to the front page of Blog Toronto with an article titled "There's a new way for students to look for jobs in Toronto".
For sure, the tiny little EC2 instance died, and in came hundreds of emails from people not getting their
This was the main event that turned me onto serverless architectures.
- While I was at Brock taking Robotics and Discrete Event Simulation, I wrote and recorded Debutante, a gutteral post-punk album.
- Towards that end of the year, I did Candy Body. This has been the last bit of music I've formally released.
- The Wolfgang Press
- The Fall
After 4 and half years of school, 3 co-op jobs, and 8 different apartments, I had finally finished college and university obtaining both my Bachelor's degree in Computer Science and a Diploma in Internet Communications Technology.
After school, I had to figure out if I wanted to pursue Univjobs or get a real job. For a while, I was able to pay my rent by working as an independent freelancer, but I really hated the aspect of trying to find work and land contracts rather than just focusing on doing good work, so I got a real job.
Dev6 is a small front-end consultancy in Mississauga. I worked here for about 8 months and coded mostly in TypeScript on Angular projects. It was also here that I met Sean Hopen, a senior consultant who would introduce me to Uncle Bob, TDD, DDD, and clean coding.
- Cypress Hill
- Sleaford Mods
- Mac Demarco
- Wu-Tang Clan
2-ish years into working on Univjobs, I realized that we were having a lot of troubles pushing out new features because the codebase had just gotten so massive and disorganized.
I ended up spending over $500 in software design and architecture books, took a couple of months to read 'em, then refactored Univjobs to TypeScript with Domain-Driven Design.
Half in order to solidify my learning, and half to give back and raise awareness to software craftsmanship in the JS community, I started writing about DDD, Enterprise Node.js / TypeScript, and software design at khalilstemmler.com.
Over the course of the year, traffic has grown to approximately 700 visitors per day, which I'm really proud of. I'm planning on keeping that momentum going in 2020 with topics about GraphQL, DDD, TypeScript, and Event Sourcing.
While on paid vacation, my co-founder called me to tell me that Univjobs secured OCE funding from the Government of Canada.
I quit my work at Dev6 and focused on Univjobs full-time.
Unfortunately, it didn't go so well, particularly because we were building a two-sided marketplace. This left us in a chicken-and-egg scenario where we were left to figure out how to get students as well as how to get employers and jobs at the same time.
We came up with a good plan to build a Campus Reps referral program where every referral a campus rep got, they could make $1.
Testing it out with a few reps, we noticed that it was incredibly effective. In about 5 minutes of work, reps were able to get 80-100 signups and make around $60 bucks, easy.
Unfortunately, due to budget cuts, thanks to the Ford government, we never actually saw the OCE money that we were waiting on.
On occasion, I would work out of an entrepreneurship hub in Mississauga. It was there that I met Eric Rafat, founder of FoundersBeta. Eric saw my website traffic and convinced me to take my writing more seriously and even attempt to build a product to sell as well.
That's when I got the idea for solidbook.io - The Software Design and Architecture Handbook. I wanted to consolidate everything that I thought every developer should know about software design and architecture into one resource instead of having it split across the 15 books I had to buy to learn it.
To my surprise, people started pre-ordering the book. Eventually, I started pulling in around $2/3K per month on book sales and was able to pay my rent without Univjobs.
Today, finishing solidbook.io is one of my primary goals of 2020.
We got so close to securing investment for Univjobs. We were able to convince a UK investor to fund our $500K seed round by explaining that we would use the money to grow the heck out of the student side with the Campus Rep software.
Unfortunately for the rest of the team, our CEO ghosted the entire team for weeks and neglected to answer phone calls.
About a week into the ghosting, the site went down entirely because of non-payment. Charles, our CEO, was the only one who had access to pay the AWS bill, but no one could reach him.
A week later, he called a team meeting to make an announcement. The announcement was that he was considering taking a job at Lyft late-2020 and didn't feel like doing Univjobs anymore.
It was quite a shame because we were right at the gates of funding. Although I feel like it was for the best because remote communication was poor, a lot of trust was broken, and morale on the team was very low.
Everyone went their separate ways, and by the end of it, our first startup company Univjobs grew to 5000 students and a couple hundred employers in about 2 and a half years.
Around the same time that I was trying to decide whether to continue working on Univjobs, Peggy Rayzis discovered my blog through Tania Rascia's "Developer Blogs to Follow (2019)" list and pitched the idea of working as a Developer Advocate for Apollo GraphQL.
Dropping Univjobs and choosing Apollo was a no-brainer. In October, I flew to San Francisco on my own for the first to meet the team and attend GraphQL Summit 2019.
Great times, lots of learning, lots of GraphQL, and lots of karaoke.
I'm really excited about 2020 and the opportunity to work with Apollo, work on cool projects, meet developers around the world, learn from others, and help people be successful with Apollo, GraphQL, TypeScript, and DDD.
- Jonathan Fire Eater
- Ghostface Killah
- MF Doom
- John Maus
- Mark E. Smith
- Stewart Lupton
- Rowland S. Howard
- James Gandolfini
- Stan Lee
- Stephen Hillenburg
Liked this? Sing it loud and proud 👨🎤.
Stay in touch!
View more in Thoughts
You may also enjoy...
A few more related articles
Software Design and Architecture is pretty much its own field of study within the realm of computing, like DevOps or UX Design. Here's a map describing the breadth of software design and architecture, from clean code to microkernels.
Learn how to use DDD and object-oriented programming concepts to model complex Node.js backends.
Want to be notified when new content comes out?
Join 8000+ other developers learning about Domain-Driven Design and Enterprise Node.js.
I won't spam ya. 🖖 Unsubscribe anytime.