2019: Year in Review

2019: Year in Review Featured Image

As The Renegade Coder heads into its 3rd birthday, I figured I’d wrap up 2019 with a little review. In it, you’ll find everything from my favorite articles to my traffic metrics. Come along!

Table of Contents

Accomplishments in 2019

Unlike last year, nothing major happened for me this year. Sure, I complained a lot, but I didn’t have any major developments. That said, I’m happy to share a few major things that happened to me:

Beyond all that, I was just living life. If you’re interested in learning more about my year, check out my blog. I ranted quite a bit!

Favorite Creations of 2019

In 2019, I started niching down to focus on my most popular content, Python articles. At the same time however, I also broadened to scope of the website to include teaching content. In addition, I started a YouTube channel. As a result, I figured this year I’d share my favorite creations—one for each month:

Also, I’d be happy to share my favorite YouTube videos, but I only made eight! If you’d like to see that collection grow, subscribe to my channelOpens in a new tab.. Otherwise, feel free to share some of your favorites of the past year with me in the comments.

Projects in 2019

This year, I worked on a lot of fun projects. Since I have plenty to write about, I’ll share all my updates in the subsections below.

Sample Programs in Every Language

Unlike in previous years, the bulk of my contribution to this project came during Hacktoberfest. During that time, I merged A LOT of pull requests for code snippets, articles, and even some slick feature updates.

One of my favorite features that came out of this year is the addition of Glotter, a Docker-based blackbox testing library. Essentially, it allows us to pull up Docker images for each language and test all our code using a standard set of Python tests. Now, several of our languages and projects are fully tested. Read more about that here.

In addition, we hit several milestones with this project this year. For example, 100 of the code snippets/languages are now documented. In addition, we hit 25 projects. This ain’t no Hello World in Every Language anymore.

Overall, I’m excited to see this project grow, but I don’t plan to focus on it too much. As always, I’m sure Hacktoberfest will resurrect it again this year.

CSE 5521: Artificial Intelligence I

Last semester, I took a course on artificial intelligence which had a handful of projects in JavaScript. For instance, one project asked us to right a handful of search algorithms for the 8 puzzle. By the end of that project, I had implemented depth first search, breadth first search, iterative deepening, and A*.

Later in the semester, we had to write the minimax and alpha-beta pruning algorithms for tic-tac-toe. If done correctly, it’s impossible to beat the computer!

Finally, we had to write a few linear and nonlinear regression algorithms. For example, we had to implement linear least squares and gradient descent.

Overall, I actually enjoyed the course. For once, I understood some AI. Unfortunately, my education classes were a lot more fun, so I had a hard time focusing on as the semester went on. Hopefully, I can carry this knowledge over into AI II.


Recently, I published an article all about a tool I put together with a partner for a data visualization class. The goal of the tool was to generate a visualization of MIDI files, a type of music file.

While the tool is fairly nice looking, it doesn’t do a whole lot. Basically, it just plots the raw data from the MIDI files, so you can compare multiple files simultaneously. That said, I had a lot of fun making it, and I think it’s a fun tool for any tech folks also interested in music and data visualization.

If you’d like to learn more about the tool, I wrote a pretty lengthy article about it late last year.

Side Projects

Outside of code, I also worked on a few side projects this year. For instance, I started a YouTube channel which now features 8 videos. In addition, I created a portfolio site. Not sure how it’ll help me going forward, but it at least makes me look more legitimate. Finally, I started a niche site called Trill Trombone which features 18 articles.

At the moment, I don’t have much to report from these projects, but I am excited to see them grow in 2020. Hopefully, I’ll have something exciting to share by this time next year.

Metrics: 2017 – 2019

Now that I’m nearly three years into The Renegade Coder, I figured I’d start sharing some metrics in aggregate. In the following subsections, we’ll take a look at various statistics including page views, top posts, top traffic sources, and revenue. Without further ado, let’s dive in!

Months and Years

Below is a table that shows my page views for each month since I started The Renegade Coder:

2017 379 317 337 253 714 505 5162* 904 202 8773
2018 427 397 1141 1310 1364 780 1718 1921 5747 10,939 9936 13,871 49,551
2019 19,08116,26230,99545,35452,68326,66419,81619,93022,48717,77514,96011,834297,841

When I set out to create this website, I anticipated neverending growth. After all, even in the worst case, every post should get at least one view a year. In other words, more content means more viewership.

Unfortunately, that’s not really the case. As you can see, I had a very, very good year in terms of growth. In fact, my page views grew six-fold. However, that viewership peaked in May and has been on a major decline since then. As of December, I had less views than I did the previous December.

All-in-all, I’m not really concerned about this dip in views. As we’ll see later, I basically had a one-hit-wonder which finally stopped bringing in organic traffic. Meanwhile, several other posts were growing, so I feel like my views will be more diverse in the coming year. That said, it’s going to be tough to hit 300,000 with my current rate. We’ll see what we can do!

Also, it’s worth noting that I’ve been doing a bit of syndication. For instance, I often repost my coding related articles to dev.to with the canonical URL, so views there aren’t counted here. In addition, I’ve worked out a deal with Java Code Geeks where my reposted their regularly. Perhaps that’s hurting my view counts. Who knows!

Averages Per Day

If you’re not a fan of raw data, here’s the same chart but with daily averages:


As you can see, we’re on a downward trend at the moment. My current plan for growth over the next few months is to get back to what got me views in the first place: Python content. Right now, I have four Python articles planned for January. Chances are I’ll have seven by the end of this month.

Then, I plan to start cranking out YouTube videos for all the Python content. If that becomes my brand, so be it! I really enjoy writing and speaking about the language.

Top Posts and Pages

In 2019, one of my articles climbed to the top of Google where it saw outrageous success. In the span of a year, How to Check if a File Exists in Python amassed nearly 150,000 views. That said, it was nice to have a few other articles pulling their weight as well.

#1Home (2,908 views)How to Check if a File Exists in Python (27,245 views)How to Check if a File Exists in Python (148,399 views)
#2Archives (2,093 views)How to Sum Elements of Two Lists in Python (5,402 views)How to Check if a List is Empty in Python (65,644 views)
#3About (430 views)How to Convert Two Lists into a Dictionary in Python (2,697 views)How to Sum Elements of Two Lists in Python (14,047 views)
#4World Domination Checklist (282 views)How to Invert a Dictionary in Python (1,944 views)How to Invert a Dictionary in Python (13,326 views)
#5Computer Science Email Tutoring Now Offered (197 views)Archives (1,525 views)How to Convert Two Lists Into a Dictionary in Python (10,069 views)

As mentioned already, Python seems to be working out for me. As a result, I’m going to become a fire hose for Python content over the next few months. If I see any sort of success like this, I’ll be content!

Top Sources of Traffic

In 2019, I was driven almost entirely by traffic from Google. If anyone has any tips for me to diversify my traffic, let me know!

#1GoogleOpens in a new tab. (2,271 views)
GoogleOpens in a new tab. (38,925 views)
Google (259K views)
#2Facebook (418 views)GitHub (809 views)DuckDuckGo (4,809 views)
#3Twitter (64 views)
BingOpens in a new tab. (451 views)Bing (4,775 views)
#4LinkedIn (30 views)Google+ (266 views)WordPress Android App (1,289 views)
#5StumbleUpon (20 views)WordPress Reader (247 views)
GitHub (967 views)
#6Yahoo (14 views)Twitter (246 views)Yahoo Search (777 views)
#7BingOpens in a new tab. (12 views)DuckDuckGoOpens in a new tab. (215 views)Ecosia (522 views)
#8GitHub (9 views)
Facebook (193 views)Twitter (289 views)
#9WordPress Reader (8 views)Instagram (86 views)Quant (160 views)
#10DuckDuckGoOpens in a new tab. (3 views)YahooOpens in a new tab. (85 views)Yandex (144 views)

One thing I found interesting is how many developers use DuckDuckGo. Somehow, it managed to come in at second in terms of traffic sources with nearly 5,000 page views. That beats nearly everything but Google from the previous year. Also, I’m glad so many people want to save the planet with Ecosia.

Top Countries

Once again, I took a look at where my traffic was coming from in terms of geography. According to the report, I get an overwhelming amount of traffic from my home country. That said, it’s only about a third of the total traffic for the year. In other words, two thirds of my traffic comes from other places! How cool is that?

United States of America (4,037 views)United States of America (20,949 views)United States of America (115,649 views)
#2South Korea (578 views)India (6,230 views)India (33,496 views)
#3France (542 views)United Kingdom (2,581 views)United Kingdom (14,206 views)
#4Russia (221 views)Canada (1,716 views)Germany (13,664 views)
Germany (220 views)Germany (1,517 views)Canada (11,003 views)
Philippines (189 views)France (1,066 views)France (8,636 views)
#7Canada (183 views)Australia (807 views)Brazil (6,097 views)
#8India (173 views)Israel (718 views)Australia (5,445 views)
#9Japan (150 views)Brazil (685 views)Netherlands (4,847 views)
#10Cambodia (145 views)Netherlands (611 views)Spain (4,237 views)

Since 2018, it looks like I’ve lost my Israeli viewership but picked up some Spanish. That’s cool! I’ll be curious to see how this shakes out next year.

Content Length

One metric that I thought would be fun to share is how long my content is on average.

YearTotal PostsTotal WordsAverage Words Per post

As you can see, 2019 was the year for long form content. In other words, I was trying to shoot for 1000+ word articles, and I overshot that goal by 60% on average. Although, I’m not really surprise; this review alone is enormous.

Also, notice how this chart contains 2016. While The Renegade Coder didn’t exist until 2017, I actually transferred some content from a previous WordPress blog. You can find out the details in my first post.

Total Revenue

As you may recall, last year my ad revenue was growing rapidly. However, in the summer, my page views started to drop. Without page views, you can’t really generate ad revenue, so I decided to investigate.

Obviously, I couldn’t be sure why I was losing Google ranking, so I decided to take an educated guess: perhaps my site was just too slow. As a result, I decided to perform an overhaul which resulted in a trashing of the ads. In other words, I no longer generate ad revenue. That’s why you’ll see a dip in revenue below:

2018$0.00$0.34$1.68$1.68 $1.49$1.05$1.94 $0.56 $5.87 $9.28 $12.19 $15.56$49.96

Unfortunately, WordAds doesn’t pay out until you’ve made $100, and have $72 holding on. Perhaps if I get enough page views again, I’ll turn these on briefly to collect my check.

At any rate, I’ve found other ways to make an income. For instance, I started a Patreon again. In addition, I created yet another shop. Unfortunately, one has been quite a bit more successful than the other. Here are my earnings from Patreon since July:


If you recall, I also had a membership site which I converted to Patreon. Here’s the income from that:

2019$4.55$4.55 $9.10$9.10$9.10$9.10$4.55$50.05

Finally, I made another $4.55 from my store.

If you add all this up, you’ll find that I made about $297.26 in 2019—at least according to QuickBooks. For someone operating a blog as a hobby, that’s not bad. For someone who puts as much time into this as I do, that’s terrible. After all, we’re just looking at revenue. I spent about $545 in 2019 on website related costs like hosting and plugins, so I ended up a net negative.

You can learn more about my money making journey in my articles titled “Is the Work Finally Paying Off?” and “My First Ad Revenue Paycheck“. Here’s to better earnings in 2020!

A Look Into 2020

At this point, I haven’t really made any plans for 2020. Right now, grad school is kicking my ass, and I’ve been on the verge of complete burnout for months now. As a result, I’m tempted to take a little break. That said, I’m afraid that a break could mean stalling out the growth of my project. Then, I’ll never be free!

As far as I know, I’m planning to focus on writing Python articles for the next few months. In addition, I thought it would be fun to start writing Git related content. After all, I think version control is extremely important, and I forget that people don’t know about it.

Finally, I want to hit 25 YouTube videos by the end of the year. Right now, I have 8, so that means I’ll need to make 17 more to hit my target. That’s a pace of just over 1 a month which I think is attainable. However, I have to remember that I publish two articles a week, so it might still be a lofty goal. It all depends on what my summer looks like.

At any rate, that’s all I’ve got! If you liked this review, check out last year’s review. It basically covers all the same information here, but it’s interesting to see where my head was at this time last year. Otherwise, thanks for stopping by! Here’s to another year of grinding.

Year in Review (6 Articles)—Series Navigation

Every year, I like to summarize what happened in the previous year. Usually, these articles focus on my efforts with The Renegade Coder, but there’s no way to get away from the fact that we’re all whole people: our lives are more than our work.

Jeremy Grifski

Jeremy grew up in a small town where he enjoyed playing soccer and video games, practicing taekwondo, and trading Pokémon cards. Once out of the nest, he pursued a Bachelors in Computer Engineering with a minor in Game Design. After college, he spent about two years writing software for a major engineering company. Then, he earned a master's in Computer Science and Engineering. Today, he pursues a PhD in Engineering Education in order to ultimately land a teaching gig. In his spare time, Jeremy enjoys spending time with his wife, playing Overwatch and Phantasy Star Online 2, practicing trombone, watching Penguins hockey, and traveling the world.

Recent Posts