Eventually, I realized I wanted to get some tech credentials, so I attended the Information Technology program at Nova Scotia Community College. It was a great experience, and I was happy to be named Valedictorian of my graduating class.
When I'm not in front of a computer, I like to cook (food science is fascinating to me) and watch sports (Let's go... favourite team of person reading this!)
Below, I've laid out some of my proudest accomplishments. I hope you enjoy them.
In this role, I helped over a thousand developers in countries all over the world comply with corporate security policies, under the slogan "Compliance is mandatory, difficulty is not." I made sure that the secure thing to do was also the easy thing to do. Because why fight human nature, right?
While still on probation, I was tested rather severely by the Log4Shell vulnerability, which required me to create a PoC in a couple of hours, then spend the rest of my time having meetings with whoever would listen, trying to persuade them to include just one more patch in their upcoming release.
This was complicated by the aforementioned thousand-plus developers in multiple timezones, but I got it done, and everyone (including my director) was happy.
Our main software stack is provided by a company called Amtelco, and I've learned how to faithfully translate client setup documents prepared for me by our client services team into actual working computer code. The largest script I ever built took 70 hours start to finish (not all in one go, thankfully) and came from a document that stretched to 54 pages long.
When I'm not building or maintaining Amtelco scripts, I do things like improving the security of the call statistics reporting system, and automating the process of transferring and uploading client call recordings every day.
This means security is paramount, because not only am I responsible for hundreds of thousands of PII records about lottery entrants, but I also have to process millions of dollars in credit card payments without letting anything slip. It's a challenge I relish with each new cycle.
In fact, it's been going so well that we've expanded it! Most recently, I was tasked with building a replacement for our legacy Amtelco inbound/outbound contact centre system, which worked fine for our continuous lines of business but was very expensive to flex up and down when we needed extra capacity during peak lottery order times.
So I built a custom system that embedded AWS Connect's softphone technology in a user interface I built from scratch. Operators would either make or receive calls, and if they needed to place an order, they could link directly into the existing order platform I'd previously built.
The system is running as we speak, processing thousands of contacts and hundreds of thousands of dollars an hour for hospital foundations across the country. It's truly one of the best things I've ever done.
I acceded to this for a couple months, but eventually I gave in and wrote a script that accesses the Trello API, iterates through all the cards in our account, checks the value of each one's custom field against my search term, and returns the ones that match. By now, it's saved me probably twenty times the time it took to write it.
So what I did was build a script that performs my search, iterates through the first few hundred results, and excludes everything from a channel ID I provide. Which is how I found this amazing 2010 video of pre-YouTube Tom Scott. Worth every second I spent coding.
As it turns out, I could. The Nova Scotia immunization portal returns all of its data as a JSON file, and if you look through it you'll notice that one of the properties on each vaccination location is minAge.
Knowing this, I programmed a script to check every once in a while what that value was set to, and to send me an SMS via AWS SNS if it was less than my age. A couple days after I built it, I got my first ping, and was able to get a 30 minute jump before it was public knowledge.
If you look at the JSON data again, you'll notice that every location has a boolean determining whether it's fully booked up or not, and some GIS coordinates denoting where it is. So I modified my existing code to filter out all unavailable spots, calculate the distance to each one, and rank them. It came in just as handy when the time came for shot #2.
So that meant 16 blogs, 115k posts, and 2.2m pieces of metadata, all dispersed across multiple years, editorial patterns, and people. In the end, I created a custom ETL tool from scratch that extracted data from wherever it may have been, scrubbed it of any anachronisms preventing its smooth transition to the new system, and inserted it into a live site environment.
During the middle of the project we had some time to spare, and I implemented some code optimizations related to image transcoding that made the code run 18 times faster during the second half of migrations. The bottleneck became that their server simply couldn't write the new files fast enough.
In the end, they were so happy, our main Viacom contact in New York called a local vendor in Bedford, and had an enormous lunch for our entire team delivered to the office. That was a good day.
I also helped the QA team get off the ground with process automation, and wrote several glue scripts to do things like synchronize different internal HR systems that had no common interface.
My final bit of client work for them was creating an entire REST API from scratch, for a client who needed an inventory management system. This was a real learning experience for me, as it was the first time I'd really been embedded with front-end developers, learning about modern JavaScript and CSS. And they certainly appreciated the versatile, well-documented, secure API I created for their use.
Privacy Isn't Dead
An explanation of personal privacy tech for the layperson.
Potential Speaking Topics
I'm available to speak to your audience on a wide variety of technical topics. Please feel free to pick something from this PDF and email me about it.
Professional Writers Association of Canada
I am proud to be a Professional Member of the Professional Writers Association of Canada, the country's largest association for professional non-fiction freelance writers.
Razorwire Consulting
I've worked with some really, really interesting clients during my time as a freelancer, and created a lot of content I'm really proud of.
Ingest SDK
My largest contribution to open-source to date, a full PHP SDK for the Ingest video platform. I also wrote the full documentation.
How To Speed Up Testing With Localized Servers
Nobody likes waiting for their tests to finish. I wrote this article to show people an easy way of speeding things up.
3 Great Patios on Canada's East Coast
Some of my fondest memories involve sun, friends, and a massive platter of nachos, so I wrote about a couple great local places.
The Secrets To University
My first published book, ISBN 9780981160641. I had a rough first year in university, and I wrote about it so hopefully others don't repeat my mistakes.
Approaching Web Security
While at REDspace, I wrote a blog post for the corporate blog about the basics of web security - SQL Injection, XSS, CSRF, and the like.
The Adventures of Santamarian Steve
While in university, I was asked to write a blog about what it was like to attend Saint Mary's University from the student perspective. I think it turned out pretty well.
Recipe Database
Runs on Django 2.1 and Python 3.6, with a bit of Bootstrap for looks.
The data-driven scheduling overhaul I spearheaded for Podcamp Halifax
Don't you hate it when two talks you really want to see are at the same time? Or when a room is clearly too big or too small for the crowd the speaker draws? I did my best to solve that.
Have a great day!