8/15/2020, 5:39:00 PM
This blog post was originally posted 15 August 2020, on the NodeBB Development Blog
Recently, a milestone had passed me by without my knowing – the original start date for my very first programming job was May 3rd, 2010. Ten years have flown by (or in some cases, have dragged by), and much has changed both in my personal and professional life, and much has stayed the same. I thought it would be a nice exercise to look back and see where I came from.
That first job was for a PHP Intern position at a now defunct company called Social Game Universe. By day, this company made Facebook games, and did consulting for clients looking to get their games made, but SGU (as we called it then) also developed a platform for games to hook into, allowing for actions and interactions between apps/games, which was a novel idea at the time.
At the time, I believed that we were first-to-market, but we ended up getting beat out by Parse, which completely upended the industry and once Facebook bought out parse, it spelled the end of that particular project's potential.
However, more importantly, SGU was where I first met Andrew and Baris. Andrew had joined the team around the same time, and Baris, then new to Canada, had actually joined Bitcasters, another company working in the same office, before it was later folded into Social Game Universe.
Some notable trends – YUI and Dojo were going strong, but faltering to newer entrants like Mootools and jQuery (spoiler alert, only one of those names is recognized now...).
Mootools ended up losing to jQuery, but will always be remembered as the reason why we don't have
Array.contains(), but instead use
Array.includes(). Mootools had no qualms about extending the prototype, and was popular enough at the time that its
Array.contains() method would conflict badly, if one were provided by the browser, and so
Array.includes() it was... after all, one doesn't simply break the web!
I remember betting on Mootools, but just like HD-DVD and Blu-ray, eventually the other side won out 😃
While I was at that first job, I also had the bright idea to load page html via AJAX, isntead of doing a whole page load, thereby saving on loading all of the page boilerplate. Little did I know, I re-invented the concept of the single-page application. Talk about convergent evolution!
At the time, the gaming industry was exploding. Games like Farmville and Words with Friends were capturing huge audiences, and many like myself looked at these smaller gaming studios as a way into the industry, hopefully landing at one of the triple A game studios later on.
Everybody wanted in, and so conditions were ripe for exploiting programmers for low or no pay!
Back then, we were naive, with ambitious ideas that we wanted to execute ASAP. Looking back, stifling this behaviour would have been the worst thing to do. Nurturing and exploring this aspect of our youth would be the best gift you could give to someone learning. We often poke fun at this internally, with the phrase "angry young men", functioning to remind us of how we were often quick to anger and always thought we knew what the best practice ought to be.
Over the years, I personally have learned a lot, including (but of course, not limited to):
There is much more for me to learn, and I can't wait to see how I will continue to grow as a developer in the next 10 years.
Mark Zuckerberg once opined that "young people are just smarter". While in many ways that can be true, I can say without hesitation that I am a better programmer than I was 10 years ago.
My one takeaway would be:
If you look back at your old code and are proud of it, then that means you have not grown as a developer.
There is merit in youthful talent, and nobody works harder than someone with something to prove, but age and experience teaches you to work smarter, not harder.
Nothing put this into sharp relief quite like having a baby, combined with the coronavirus pandemic. My son, Zachary, was born September 2019, and with it disappeared much of my free time that I had taken for granted. I finally understood what it meant to "make time" for something, because there was literally no more time in the day that wasn't better spent doing something else. "Down time" no longer existed. The coronavirus pandemic later threw the world for a loop in terms of working from home/adjusted work hours, which led to another revelation: while I was getting fewer hours in at my desk, I was working much more efficiently during those hours, and I would spend less time banging my head against non-working code, simply because I couldn't afford to do so (if I have no childcare, my day is essentially broken up into chunks that correspond with his naps.)
10 years ago, if you had asked me where I would see myself today, I probably would have answered with a variation of the following:
I would never have imagined that I would've made the jump to entrepreneurship, the antithesis of a steady paycheque! I'll always be grateful to Andrew and Baris for pushing me towards starting up our own company (Design Create Play in 2013, and NodeBB in 2014). The rest, as they say, is history.
Slow and steady wins the race. We didn't want to be a flash in the pan, in those early days, profitability was our main goal.
Chasing the hockey stick is sexy, but is by no means a guarantee.
Take time often to stop, re-evaluate, reposition, and continue upwards.
Here's to a decade in the industry, and here's to 10 more.