Fixing the Information Architecture of my site

Last month, in What’s wrong with my site, I picked three small improvements and assigned them each to a different “Future Shane”.

fix the Information Architecture (IA) of this site. If someone comes to and reads an interesting article, it’s difficult for them to explore. That’s a problem because there’s over fifty great articles that they might like.

June Shane, June 2019

So I (July Shane) got out the sticky notes and tried to make sense of the content of this site.

Step 1: Write all titles on sticky notes

Room with sticky notes on the wall
One sticky note per post, arranged by date

As I was writing the title of each post onto a sticky note, I put them up on the wall in chronological order. It was very pleasing to see that I have had no months without a post in over 2.5 years.

Room with some sticky notes on the wall and others scattered on the floor
One sticky note per post, arranged by gravity

What wasn’t pleasing was when half my sticky notes fell onto the floor.

I think many years ago they came out with Super Sticky notes which seems like a complete contradiction of the value proposition but I think it’s just an acknowledgement that the original formulation fell off more than we’d like. I don’t think of them as Super Sticky, just the proper amount of sticky for most uses.

Steve Portigal, Dollars to Donuts podcast

Next time, I’ll get the Super Sticky notes.

Step 2: Arrange by topic

I then moved all of my sticky notes to the floor so that gravity could work for me instead of against me. I grouped the blog posts by topic and tried to give meaningful names to each group.

Sticky notes arranged on a hardwood floor
Grouped and labeled sticky notes; this time on the floor

Step 3: Implement

After a couple more iterations, here’s what I came up with.

Screenshot of navigation menu with 6 items: About me, UX strategy, UX tactics, Data visualization, Programming, and Other ramblings
My new menu

For comparison, here’s the old one.

Screenshot of the main navigation of the site. 

    About Me & Contact
        Google Apps Script
        Google Forms
        Google Sheets
    Oddly Specific: Various Notes and Collections of Links
    Getting Started in UX
Search bar
My old menu

I still don’t love it but it way better represents what I write about most. It also is simple enough to fit into a top-level menu instead of a hamburger menu, which I’m sure August Shane will appreciate.


What’s wrong with my site?

In late-2015, my now-wife and I decided to move away from the city we’d lived our whole lives in. I applied for tons of development jobs in London before the move but hardly heard back from any of them. I figured it was because I had nothing to show online and was 7000km away.

The history

So I went to WordPress and grabbed the first decent WordPress theme that I could find. I then published a handful of articles, including Using boost::bind and boost::signals2 to Automatically Propagate Signals. These early posts were a great exhibit of my technical knowledge. They also lulled all readers into a deep, restful slumber.

Not long after those two posts, I found a job. Coincidence? Yes. Because that was also around the time that I actually made the 7000km move to London. But my online presence couldn’t have hurt!

Since then I’ve written fifty more articles. These articles have shifted, along with my career, from engineering to design.

But I haven’t changed the design of this site at all.

A designer’s site should be designed

It’s bugging me more and more lately. C++ experts are almost expected to have hideous, unusable blogs. But a professional user experience designer? No. This will not suffice.

So now I’m going to commit to improving it… Actually “I” am not committing to it. “Future Shanes” are.

July Shane: Information Architecture

July Shane, you’re going to hate me for this, but you’re not here to defend yourself. I’m volunteering you to fix the Information Architecture (IA) of this site. If someone comes to and reads an interesting article, it’s difficult for them to explore. That’s a problem because there’s over fifty great articles that they might like.

Look at this main menu.

Screenshot of the main navigation of the site. 

    About Me & Contact
        Google Apps Script
        Google Forms
        Google Sheets
    Oddly Specific: Various Notes and Collections of Links
    Getting Started in UX
Search bar
The current site menu as of June 2019. There’s a lot more on this blog than the Programming and Consulting that I posted about in 2015.

So get out the post-it notes. Wrap your head around our content. Group it, tag it, categorize it. Then update this menu. By the end of the month, I want a coherent, usable hierarchy of content. It should highlight your recent work as well as the early stuff. And I want you to blog about it.

If anyone is reading this beyond July 2019 and the menu hasn’t changed, please shame July Shane. Use a tweet or get creative.

Update: July Shane did his job, just in time! See Fixing the Information Architecture of my Site

August Shane: Usability

I don’t know about you August Shane, but I don’t hate the hamburger menu. In certain cases, it can fine. This site is not one of those cases. Especially when you’re viewing on a big desktop web browser or even a tablet. Why bury July Shane’s beautiful categories of content under three boring lines?

The current site banner. It’s clean, but not intuitive or usable.

What I DO hate, though, is the align-right symbol floating opposite of the hamburger menu. Can you guess what’s under there? Align all the words on the page to the right for some reason? No. It’s to “follow” this blog.

Anyway, August Shane, all I want you to do is get rid of the hamburger and the right-align buttons. Use words instead. Then blog about it.

If anyone is reading this beyond August 2019 and the banner hasn’t changed, shame August Shane. Here’s a template tweet you can use.

September Shane: Have fun

I’m not always a jerk to my future self. September Shane, your job is to have fun improving this site. Maybe get into the code and make it so is the actual domain of the blog instead of a redirect. Maybe use IFTTT to post all articles to Twitter and LinkedIn automatically. Maybe add alt text to all images to make the content more accessible.

Whatever you choose to do, have fun and don’t forget to blog about it! Oh, and update this article with a nice happy ending for this three-month-mini-makeover.

Hey reader, are you from October 2019 or later? Is there a happy ending to this article? If not, shame that slacker September Shane s’il vous plaît.

The ten graph challenge

If you’re like me, you’re a data nerd. You love digging into stats to try to uncover trends and tell a story.

You might even be pretty good at Excel.

But when you create graphs they look boring yet cluttered, like they’re out of a corporate PowerPoint slide.

Are you like me? Then you should take the #10GraphChallenge.

The rules are simple: Create ten different graphs, focusing on making them simple, easy to understand, and visually appealing. Post them to Twitter for the world to see, and try to tell a story around each of them. Use a variety of datasets and a variety of graph types.

I recently finished the challenge. Here’s what I came up with.

A collage of my ten graphs. Data included weather, taxes, running, finances, crime, hockey, lacrosse, blogging, real estate, and road tripping.
A collage of my ten graphs. Data included weather, taxes, running, finances, crime, hockey, lacrosse, blogging, real estate, and road tripping.

View the thread on Twitter for more context and commentary on each of the ten graphs.

My goal with this blog post is to inspire at least one other person to take the challenge. You can do it any way you want, but here’s how I did it.

1) Find data for graphing

Data is everywhere. If you hear an opinion that you disagree with, see if you can find data to prove that person (or yourself) wrong. If you’re into sports, see if you can dig up something interesting that no one else is talking about.

I used a Trello board to track ideas. It started slow, but I ended up with 22 different graph ideas.

My Trello board. The first four columns are empty because I’m done, but all ideas started in the leftmost column then worked their way to the right as I either completed or rejected them.

Gathering data for me was usually a matter of pasting it into Excel, then cleaning it up and digging in. Try conditional formatting, pivot tables, and a variety of chart types to get a feel for what the data is trying to tell you.

Four sheets from my NHL data analysis, including a zoomed-out table with conditional formatting to help me spot patterns, two pivot tables, and a good old bar chart.

I also experimented with Tableau, but I only ended up using it for one graph out of my ten. It’s an easy to use, powerful tool, but it only replaced Excel for me when I was dealing with geographical data.

2) Make your graph look good

Once I had an Excel graph that worked, I popped it into Sketch. The “Creating Line Charts” section of this article explains how to do that, but ignore the part about the PDF. That’s not necessary. Simply copy it out of Excel and paste it into Sketch.

This is where you can start to simplify and play with the layout. Think WWTD: What Would Tufte Do?

My Sketch file for my NHL graph. I decided to go with horizontal bars instead of columns, then removed unnecessary clutter, split out the two sets of data, squished them together, and fine-tuned it.

3) Share your graph

Yes, this is the scary part. But publishing your graph is worth it! Yes, people might call you out on your bullshit.

Me getting called out for my exaggeration. It’s true: I have no idea if most people actually think that. Oh well. Live and learn!

Yes, it’s scary to put yourself out there, but that’s how you get better!

4) Reflect on your journey

Done ten graphs? Congratulations! Now take a moment to reflect on the process. Here are some of my own reflections.

What an improvement!

I cringe when I look back at some of my previous work, even my language learning resources graphic from less than six months ago. It’s really ugly compared to my #10GraphChallenge.

And hopefully I’ll look back at these graphs six months from now and feel the same way. That’s how you know you’re learning!

Still really slow

When I started my #10GraphChallenge, I was thinking of doing one graph a day for ten days. It ended up taking more like 40 days. I’d estimate that each graph took an average of 3 hours. These things take time. And that’s okay. With more practice, I’ll get quicker.

That was fun!

I’ve always liked numbers and graphs, but I loved this challenge. Thinking of graph ideas then digging into the data and trying to tell a story made me feel like a journalist. Graphs are a great way to tell stories with numbers.

I’m not alone

There’s a whole community of data viz nerds like me out there. I stumbled upon Storytelling With Data during this challenge and found it to be an incredibly open, welcoming, and active community.

Your turn: Take the #10GraphChallenge

You’ve come this far, so why not try it out yourself? Here’s a template tweet to get you started.

Book cover. Switch: How to change things when change is hard, by Chip Heath & Dan Heath

Making the “Switch” to running

I recently read the book “Switch” by Chip and Dan Heath. I was inspired to read it by TS Balaji, who mentioned it in his interview with DesignBetter. I expected it to be all about corporate change management, but was happy to see it cover everything from large-scale cultural change to individual change.

Instead of writing a review or summary, as I’ve done in the past for The Visual Display of Quantitative Information, Interviewing Users, and Elon Musk’s Biography, I’m going to use the concepts from Switch to explain the bizarre human phenomenon of running.

What is this ‘running’ thing?

When you actually stop to think about it, running is a strange, strange behavior. Who in their right mind would buy expensive shoes, spend incredible amounts of time and energy, and risk repetitive strain injury just to end up right back where you started?

Ron Burgundy said it best:

Veronica and I trying this new fad called, uh, jogging. I believe it’s ‘jogging’ or ‘yogging.’ it might be a soft j. I’m not sure but apparently you just run for an extended period of time! It’s supposed to be wild.

Running is weird. Becoming a runner is not a very easy change to make.

My story

I used to be a runner. I have spent hundreds or maybe even thousands of hours of my life putting one leg in front of the other for a while then ending up back where I started. I’ve ran to the point of injury, too many times. Shin splints, Achilles tendonitis, plantar fasciitis, and more.

The author running on a road in a small town

Me running an adventure race in 2014 in Cumberland, British Columbia

About four years ago, I started cycling and stopped running. The injuries stopped too! I could cycle ten hours a week and still not get injured, whereas running half that much would land me at the physiotherapist’s.

The switch

Fast-forward to this past weekend. Shane, the ex-runner, sets his alarm for 7:00 on a Saturday 😱, battles 1000 other maniacs to find a parking spot 😱, and runs five kilometers in the April snow 😱. All after six weeks of training 😱, two physio treatments 😱, and countless hours of stretching and strengthening exercises 😱.

So why did I do it?

Back to the book Switch for a moment. This article does a way better job of explaining it than I do, but the analogy that the book sticks to is simple: a rider, an elephant, and a path. The brain is like a person riding an elephant. The elephant is very irrational and emotional but very strong. The rider, on the other hand, is very smart and rational but weak and sometimes indecisive.

Picture this rider and elephant walking along a path. If the path changes, for example if it’s blocked by a fallen tree, then the rider and elephant will be forced to change direction, even if neither of them actually want to.

In order to change someone’s behavior, you should appeal not only to the analytical rider, but also to the emotional elephant. You should also shape the path to make the change easier.

Brown elephant walking through a plain

The elephant is strong and emotional. Photo by elCarito on Unsplash

I resumed the strange habit of running because my rider, my elephant, and the path were all encouraged to make the switch.

Rally the herd

One way to “shape the path” for change is to show the people that you’re looking to change that “everyone else is doing it”. That’s why tip jars at coffee shops are never empty, even at the start of the day. An empty tip jar sends the message that no one tips and is easy to ignore. A tip jar with a few $5 bills and lots of change is much harder for customers to overlook.

Tip jar on counter with money in it

You don’t want to be the only one not to tip, do you? Photo by Kody Gautier on Unsplash

The main reason that I first signed up for this race was that my coworker suggested that we do it as a team. I definitely would not have done this race on my own.

Shrink the change

Heath and Heath explain that one way to motivate the elephant is to make the “ask” as small as possible. They tear apart the U.S. food pyramid, saying that it is hard to understand and completely overwhelming. They then tell the story of a campaign to convince the public to drink 1% milk instead of whole milk. That caused a significant drop in the intake of saturated fat, because it was a much more manageable change than obeying the food pyramid. 


Who cares about the cookies? If you want to be healthy, make sure the milk is 1%. Photo by Elliot Banks on Unsplash

If my coworker had asked me to sign up for a marathon instead of a 5K, I probably would have told him no, even if the rest of the team was doing it. That’s a huge commitment. This helped my stubborn elephant get moving.

Script the critical moves

Switch touched on the phenomenon of decision paralysis. For example, a gourmet shop offered samples of 6 different jams one day and 24 different jams the next day. Customers who saw only 6 jams were 10 times more likely to make a purchase than those who saw 24. This is because the analytical rider doesn’t have the energy to analyze all 24 jams to make the best choice, and thus decided to make no choice at all.


Try our gourmet jams! Just don’t try too many of them or you won’t buy any. Photo by Bernard Tuck on Unsplash

My coworker helped my rider by suggesting a specific race. He didn’t give a vague suggestion that we should all get into running. He gave a simple option of yes or no. Not much analysis required.

I helped my rider by finding a 5K training plan then adding it into my calendar. There was a bit of up-front planning required but after that, I was just following the script.

Point to the destination

The authors cite ambitious, black-and-white goals as a great way to direct the rider. As an example, BP once publicly announced a goal of “no more dry wells”, which was downright impossible, yet it led to significantly reduced exploration costs.

Oil well at sunset

Instead of “lower exploration costs by 80%”, how about “no dry wells”? Photo by Zbynek Burival on Unsplash

Soon after I signed up for the 5K, my coworker asked me what my goal was, and I blurted out “25 minutes”. It was an arbitrary goal but it was black and white: I would either run a sub-25 5k or I wouldn’t. Late in my training, I analyzed my training data and it looked bleak. My goal was to run five kilometers at about 5 minutes each, but in my 70 km of training that I had done so far, I hadn’t even reached that pace once. (See my original tweet)

But somehow, that black-and-white goal stuck in my mind during my race and I’m pleased to say that against all odds, I finished in 24:54.



In other words, I not only took up running again, but I absolutely embraced it. I did this because my rider was directed, my elephant was motivated, and my path was shaped.

More than just for running

I’ve used my return to running as an illustration, but obviously the techniques in this book can be applied to so much more. Whether you want to make a switch with yourself, your family, your company, or the world, Switch contains practical advice for changing riders, elephants, and paths!

Usability testing is fun

Last week, a colleague and I ran an eight-person usability study with a big customer. We started at 6:30, so it was a super-early, super-long day.

Iterating on the product AND the process

Yes, it was exhausting, but I love this stuff. You take your best guess at a design then you put it in front of a bunch of people. Then they struggle with it and you make it better. That iteration what research is all about.

I also love how we’re iterating on the process itself. November was the first time I’ve traveled for usability testing. Yesterday was the first time I’ve done remote usability testing with clients. It was also the first time we’ve hosted a viewing party where people from all over the company could tune in and see what usability testing all about. Oh, and it was the first time we had a client representative observe all of the tests we ran. So many leaps forward!

What’s next?

When it comes to process, I wonder what is next for us. Maybe a focus on quality? For instance, we could start to critique each other on body language, tone of voice, note taking, and more. Or maybe more logistic stuff, like making scheduling better. Or smoothing out the participant recruitment pipeline.

But for now it’s good to keep enjoying it, keep learning, and keep iterating!

P.S. It was fun last time, too!

I just checked my notes from the November usability testing trip, and I had a similar rush of enthusiasm:

I’m exhausted.

Man is it draining to do this much research. It is not easy to sit in a little meeting room for a full eight hours, actively listening while thinking ahead and trying to be self aware enough not to be biased. Then summarizing findings and prepping for the next day’s tests with customized prototypes and doing it all again. That’s hard too.

But I love it.

-My own notes after a full week of usability testing

Feature photo stolen from @jdorn. Thanks, friend 😈!

Visualizing Fantasy Hockey Schedules

I have a new obsession. Fantasy hockey. The slot-machine-like dopamine hit when you get lucky mixed with the numbers-heavy analysis of trying to squeeze the most out of each week has really got me hooked.

So I thought I’d put all this analysis to use by practicing my visual display of quantitative data.

I’m about to go into fantasy hockey playoffs and I’ve been doing a bunch of number crunching, focusing on the schedules of various NHL teams. The idea is that if I pick up half-decent players who play a lot of games in a given week, they’ll score me more points than great players who have a bad schedule.

Two of my great players, Taylor Hall and Dustin Byfuglien, have been dealing with long-term injuries lately, so my only hope at winning is to maximize my games played.

To do that, I need to pick up players from teams who not only play the most games, but also play on quieter “off nights”. Here’s the logic I used.

  • Any day where 20 or more out of the NHL’s 31 teams play is a busy night.
  • Fewer than 20, I call an off night, because chances are, you won’t have too many benched players on those nights.

My favorite podcast, Fantasy Hockey Podcast, does a great job at highlighting the teams with the best and worst schedules each week, but I wanted to know well in advance and I wanted to see all the teams.

So I made this.

Schedule comparison charts- 2019 fantasy hockey playoffs

Starting with my league’s quarterfinals (March 4-10), I made a chart that breaks down every team’s schedule into off nights and busy nights.


Fantasy hockey schedule analysis- March 4-10. 
ANA has 3 Off nights and 1 busy nights.
CGY has 3 Off nights and 1 busy nights.
FLA has 2 Off nights and 2 busy nights.
BOS has 1 Off nights and 3 busy nights.
DET has 1 Off nights and 3 busy nights.
LAK has 1 Off nights and 3 busy nights.
PIT has 1 Off nights and 3 busy nights.
WSH has 3 Off nights and 0 busy nights.
TOR has 2 Off nights and 1 busy nights.
VGK has 2 Off nights and 1 busy nights.
WPG has 2 Off nights and 1 busy nights.
BUF has 1 Off nights and 2 busy nights.
CAR has 1 Off nights and 2 busy nights.
EDM has 1 Off nights and 2 busy nights.
MIN has 1 Off nights and 2 busy nights.
MTL has 1 Off nights and 2 busy nights.
NJD has 1 Off nights and 2 busy nights.
STL has 1 Off nights and 2 busy nights.
VAN has 1 Off nights and 2 busy nights.
ARZ has 0 Off nights and 3 busy nights.
COL has 0 Off nights and 3 busy nights.
CBJ has 0 Off nights and 3 busy nights.
DAL has 0 Off nights and 3 busy nights.
NYI has 0 Off nights and 3 busy nights.
NYR has 0 Off nights and 3 busy nights.
OTT has 0 Off nights and 3 busy nights.
TBL has 0 Off nights and 3 busy nights.
PHI has 1 Off nights and 1 busy nights.
CHI has 0 Off nights and 2 busy nights.
NSH has 0 Off nights and 2 busy nights.
SJS has 0 Off nights and 2 busy nights.
NHL schedule analysis for March 4 to 10, 2019

As you can see in the chart above, Anaheim (ANA) and Calgary (CGY) have the best schedules, with 3 “off nights” and 1 “busy night” each. I’d better load up on Ducks and Flames!

Actually, sorry Anaheim, but you’re terrible. I’d better load up on Flames.

Teams like Chicago (CHI), Nashville (NAS), and San Jose (SJS) have the worst schedules, with 2 “busy nights” each and no “off nights”. That means that players from Calgary are at least twice as valuable as players from Chicago this week.

One thing that this chart doesn’t take into account is the strength of opponents or back-to-back games. I haven’t checked, but if both of Chicago’s games are against a terrible team like Anaheim who are tired because they’re on the second game in two nights, then maybe I shouldn’t completely write off Chicago players. Or if Calgary is playing only against top-tier teams, then maybe I shouldn’t jump right on them.


I made the same charts for Semifinals as well:

Fantasy hockey schedule analysis- March 11-17. NJD has 4 Off nights and 0 Busy nights.
ANA has 3 Off nights and 1 Busy nights.
CBJ has 3 Off nights and 1 Busy nights.
DAL has 3 Off nights and 1 Busy nights.
EDM has 3 Off nights and 1 Busy nights.
NYR has 3 Off nights and 1 Busy nights.
PHI has 3 Off nights and 1 Busy nights.
TOR has 3 Off nights and 1 Busy nights.
ARZ has 2 Off nights and 2 Busy nights.
BUF has 2 Off nights and 2 Busy nights.
MIN has 2 Off nights and 2 Busy nights.
NYI has 2 Off nights and 2 Busy nights.
PIT has 2 Off nights and 2 Busy nights.
SJS has 2 Off nights and 2 Busy nights.
STL has 2 Off nights and 2 Busy nights.
COL has 3 Off nights and 0 Busy nights.
VAN has 3 Off nights and 0 Busy nights.
CGY has 2 Off nights and 1 Busy nights.
CAR has 2 Off nights and 1 Busy nights.
CHI has 2 Off nights and 1 Busy nights.
BOS has 1 Off nights and 2 Busy nights.
DET has 1 Off nights and 2 Busy nights.
FLA has 1 Off nights and 2 Busy nights.
MTL has 1 Off nights and 2 Busy nights.
NSH has 1 Off nights and 2 Busy nights.
OTT has 1 Off nights and 2 Busy nights.
TBL has 1 Off nights and 2 Busy nights.
WSH has 1 Off nights and 2 Busy nights.
WPG has 1 Off nights and 2 Busy nights.
VGK has 2 Off nights and 0 Busy nights.
LAK has 0 Off nights and 2 Busy nights.
NHL schedule analysis for March 11 to 17, 2019

In the second week of March, my league’s semifinals, the New Jersey Devils (NJD) have the best schedule. Stay away from the LA Kings (LAK)! And the Ducks… even though they have the second-best schedule… because they’re the Ducks.


And here’s the same chart for the finals.

Fantasy hockey schedule analysis- March 18-24. VAN has 3 Off nights and 1 Busy nights.
WSH has 3 Off nights and 1 Busy nights.
ARZ has 2 Off nights and 2 Busy nights.
CHI has 2 Off nights and 2 Busy nights.
TBL has 2 Off nights and 2 Busy nights.
WPG has 2 Off nights and 2 Busy nights.
CAR has 1 Off nights and 3 Busy nights.
COL has 1 Off nights and 3 Busy nights.
MTL has 1 Off nights and 3 Busy nights.
NYI has 1 Off nights and 3 Busy nights.
PHI has 1 Off nights and 3 Busy nights.
ANA has 2 Off nights and 1 Busy nights.
SJS has 2 Off nights and 1 Busy nights.
CBJ has 1 Off nights and 2 Busy nights.
LAK has 1 Off nights and 2 Busy nights.
MIN has 1 Off nights and 2 Busy nights.
OTT has 1 Off nights and 2 Busy nights.
TOR has 1 Off nights and 2 Busy nights.
VGK has 1 Off nights and 2 Busy nights.
BOS has 0 Off nights and 3 Busy nights.
CGY has 0 Off nights and 3 Busy nights.
DAL has 0 Off nights and 3 Busy nights.
DET has 0 Off nights and 3 Busy nights.
EDM has 0 Off nights and 3 Busy nights.
FLA has 0 Off nights and 3 Busy nights.
NSH has 0 Off nights and 3 Busy nights.
NJD has 0 Off nights and 3 Busy nights.
PIT has 0 Off nights and 3 Busy nights.
STL has 0 Off nights and 3 Busy nights.
BUF has 1 Off nights and 1 Busy nights.
NYR has 0 Off nights and 2 Busy nights.
NHL schedule analysis for March 18 to 24, 2019

This week, try to stay away from the New York Rangers. The Vancouver Canucks and the Washington Capitals will treat you well.

Final three weeks combined

This felt less-useful for me because there isn’t as stark of a difference between the best and worst schedules, but I also created a chart for the final three weeks combined.

Fantasy hockey schedule analysis- March 4-24. ANA has 8 Off nights and 3 Busy nights.
ARZ has 4 Off nights and 7 Busy nights.
NYI has 3 Off nights and 8 Busy nights.
PIT has 3 Off nights and 8 Busy nights.
VAN has 7 Off nights and 3 Busy nights.
WSH has 7 Off nights and 3 Busy nights.
TOR has 6 Off nights and 4 Busy nights.
CGY has 5 Off nights and 5 Busy nights.
NJD has 5 Off nights and 5 Busy nights.
PHI has 5 Off nights and 5 Busy nights.
WPG has 5 Off nights and 5 Busy nights.
CAR has 4 Off nights and 6 Busy nights.
CBJ has 4 Off nights and 6 Busy nights.
COL has 4 Off nights and 6 Busy nights.
EDM has 4 Off nights and 6 Busy nights.
MIN has 4 Off nights and 6 Busy nights.
DAL has 3 Off nights and 7 Busy nights.
FLA has 3 Off nights and 7 Busy nights.
MTL has 3 Off nights and 7 Busy nights.
STL has 3 Off nights and 7 Busy nights.
TBL has 3 Off nights and 7 Busy nights.
BOS has 2 Off nights and 8 Busy nights.
DET has 2 Off nights and 8 Busy nights.
BUF has 4 Off nights and 5 Busy nights.
CHI has 4 Off nights and 5 Busy nights.
SJS has 4 Off nights and 5 Busy nights.
NYR has 3 Off nights and 6 Busy nights.
LAK has 2 Off nights and 7 Busy nights.
OTT has 2 Off nights and 7 Busy nights.
VGK has 5 Off nights and 3 Busy nights.
NSH has 1 Off nights and 7 Busy nights.
NHL schedule analysis for March 4 to 24, 2019

Once again, Anaheim comes up on top in terms of schedule. I’d still urge you to stay away from them because they’re Anaheim. Stay away from Nashville as well!

What do you think?

Fantasy hockey enthusiasts: Is this useful for you? What might make it more useful? Let me know in the comments!

Friends and family: You probably already knew I was a nerd, but not THIS big of a nerd. I’m sorry you had to find out this way. If you want to unfriend me, I understand.

Appendix: My process

I started by grabbing the NHL schedule in Google Sheets format then doing a bunch of formulas and conditional formatting.

Screenshot of a cluttered spreadsheet
Initial number crunching in Google sheets

I then got to sketching on paper, which helped me figure out what was important (total games, off nights, and busy nights) vs. what was just noise (the actual days of the week of games).

Photograph of a sketch on paper
My sketch was where I figured out that these charts needed to be sorted and simplified.

Then I messed around more in Google Sheets, calculating, sorting, slicing and dicing.

Google sheets spreadsheet showing color-coded schedules taking shape.
Here is where I debated between correlating the games to the days of the week and just showing the numbers.

After that, it was just a matter of playing with the chart configuration and styling.

Google sheets screenshot showing two versions of the same chart, as well as the background calculations
Here is where I decided that I didn’t need as many details on my “combined” chart.

As you can see in the above screenshot, I also used Sheets to generate alt text for my graphics. This means that even vision-impaired users will be able to read this blog post!

If I had more time, I’d shine up the charts by exporting them into Sketch and removing some of the non-essential visual elements. But I don’t!

Check out my latest posts

Liked what you saw here? I blog once a month on tech, User Experience, biking, and more! See some of my most-recent work below.

Graduating from Duolingo

I recently reached a huge milestone: a 1000-day streak on Duolingo.


Yes, Duolingo has delightful illustrations and animations. It is completely free and doesn’t show TOO many ads. It covers all the bases- Theory, Reading, Writing, Speaking, and Listening. And best of all, it is super motivating.

But for Intermediate language learners, it’s just not worth it.

Duolingo logo

Do you visit Duolingo for a couple minutes a day to mindlessly tap through some exercises with words that you already know? Do you still not have the confidence to strike up a conversation with a French-speaking acquaintance? That was me. But not any more.

I’m now dedicating my daily French practice to these: my favorite resources for intermediate to advanced language learners.

The best free resources for intermediate French learners

Graphic comparing resources:
1) Duolingo. Low difficulty, High convenience. Covers: theory, reading, writing, speaking, listening.
2) Coursera. Medium difficulty, Medium convenience. Covers: theory, reading, writing, speaking, listening.
3) Kwiziq French. All difficulties, Medium convenience. Covers: theory.
4) Meetup. Medium to high difficulty, Low convenience. Covers: speaking, listening.
5) Youtube. All difficulties, High convenience. Covers: theory, speaking, listening.
6) Netflix. All difficulties, High convenience. Covers: reading, listening.
7) Magazines. Medium to high difficulty, High convenience. Covers: reading.
8) Ici Musique Radio. Medium to high difficulty, Medium convenience. Covers: listening.
9) Learn French by Podcast. Medium difficulty, medium convenience. Covers: speaking, listening.
The best free resources for intermediate French learners. Yes, Duolingo is convenient and touches on all skills, but it can be too easy after some time. Here are the icons I’ve stolen:

Brain by Arjun Adamson from the Noun Project; Book by Sergey Demushkin from the Noun Project; Writing by andriwidodo from the Noun Project; speak by Gregor Cresnar from the Noun Project; Listen by Rémy Médard from the Noun Project; magazine by Diego Naive from the Noun Project


I’m currently working through the six-week Coursera course, Étudier en France: French Intermediate course B1-B2. This course terrified me initially. They talk SO fast in the videos and all the other students seem way better than me- but I am working my way through it and I even got 95% on my first assignment!

It’s no Duolingo, meaning you can’t get through this Coursera course solely on 3 distracted minutes a day while waiting in line for a coffee, but the app is decent and the work is quite bite-sized, including short videos, reasonable reading assignments, and 150-word writing assignments.

My only complaint about Coursera is that this is the only French language course on the site, so after these six weeks, I’ll be moving on.

Kwiziq French

Kwiziq French is great. Like Duolingo, it has short, bite-sized online exercises that help you learn little by little. Unlike Duolingo, it requires a bit of reading. Kwiziq gives you ten “topics” at a time to review, then a “Kwiz” to test your understanding of those topics.

It is broken down into the following CEFR levels:

A0: Entry Level, A1: Beginner, A2: Lower Intermediate, B1: Intermediate, B2: Upper Intermediate, and C1: Advanced.

Duolingo is focused on the A level, so Kwiziq can take you a lot further.

So far, Kwiziq’s free plan of 10 kwizzes per month has been more than enough for me, but I’d consider paying for unlimited access because the content is very high quality.


Just search for “French conversation” in your city on Meetup. Chances are, you’ll find a group of friendly, supportive language learners who meet regularly and welcome newcomers. Yes, it’s intimidating and hard, but it’s the quickest way to learn spoken French!


Paul Taylor, Comme une Française , and more. There are a million YouTube channels, ranging from comedy in French to pronunciation for beginners. I won’t say much more than that. Dig around and see what you find!


Yes, Netflix. Most shows and movies on Netflix offer French subtitles, so I am proud to say that my French wouldn’t be where it is today if it weren’t for Black Mirror.

I haven’t watched any French language films or shows on Netflix but those are also great- with or without English subtitles!

I know Netflix isn’t free but if you’re paying for Netflix anyway, then turning on French subtitles IS a convenient and free way to learn.

Bilingual travel magazines

I was lucky enough to take the Eurostar from London to Paris to celebrate my 29th birthday. On the train ride down, I devoted my attention not to the beautiful French countryside, but to the Metropolitan Magazine.

I loved struggling through the French articles with the English right there beside it. I would get the gist of the article in French, then check the English to see if I got it right.

WestJet and Air Canada also have bilingual magazines, so I always look forward to flying within Canada!

Canadian public radio

Speaking of Canada, French learners can benefit from our two-official-languages policy by listening to French-language stations of the CBC, the Canadian Broadcasting Corporation.

Sure, Spotify has lots of good French music, but I find that they have a lot of ads unless you pay for Premium.

CBC’s Ici Musique has the same great French music, but without the ads. And, as an added bonus, they have news updates so you can get used to hearing spoken French.

Learn French by Podcast

Learn French by Podcast is great because there’s LOTS of content. 195 episodes over 12 years. The earlier ones are a bit easier than the later ones, so it’s great to just binge on from the start. What I like about this podcast is that they have a short conversation (which I usually find hard to follow), then break down certain phrases, explaining what was said and why. They also encourage practicing pronunciation with lots of “repeat after me” exercises. Another nice thing about podcasts in general is that if they’re too hard you can slow down playback. Too easy? Speed it up!

Kids’ books

It’s not free, but I’m adding French kids’ books as an honorable mention.

When I was in Thailand a year ago, I stumbled upon a used book store. They had a French section. I looked through some classic novels, longing to be able to read them. Then I found myself being drawn to a brightly colored, pint-sized book entitled Deux filles pour un cheval, or Two girls for one horse.

Book cover for Deux filles pour un cheval
I highly recommend this book, even if you’re not a 10-year old French girl

I loved reading that book. I underlined words that I didn’t know, then looked them up later and wrote the definition in the margins of the pages. It was a great way to learn.


I haven’t tried FluentU yet, but they are one of the seven resources featured in this article: Stuck in the Middle: 7 Resources for Intermediate French Lessons to Get You Unstuck

Any others?

Did I miss any great resources for Intermediate French learners? Leave me a comment!

It takes a village

I was a programmer from 2012 to 2017. I realized during this time that my impact would multiply if I could focus on the design instead of being the one to code it.

Early in 2018, after years of reading, taking courses, and experimenting with UX, my dream came true: I was hired as a UX Designer. I’m almost at the one-year mark of this new career of mine and I’m using this milestone as an excuse for gratitude.

They say it takes a village to raise a child. It also took a village for me to make this career switch. My switch definitely wouldn’t have been possible without these people.

Rob Ursem, manager 2012-2015

Rob was my first manager as a programmer. When I was working for him I’d have endless ideas and suggestions about usability and design. Rob saw this enthusiasm and recommended some books for me to read. Design of Everyday Things. The Inmates are Running the Asylum. Many more. Without him I wouldn’t have even known that User Experience was an actual job. I’m so grateful for Rob for that.

Andrew Wright, meetup coordinator

Soon after I finished reading the book the Inmates are Running the Asylum, the local meetup group Calgary UX featured it in their book club. What an awesome coincidence! So I worked up the courage and went to the meetup.

The whole premise of that book is how programmers have way too much say in how software is designed. I was a programmer when I read the book, so I was one of the inmates who was running the asylum! I was shocked at how welcoming the meetup was, especially the organizer Andrew, even though I felt like such an outsider.

I’ve been in touch with Andrew ever since then and he’s never stopped being that welcoming, knowledgeable, and helpful presence for me.

Meghan Armstrong, unofficial mentor

I also met Meghan through Calgary UX and she has been so kind and helpful through the years. On many occasions, she has taken the time to meet with me, including helping me with my portfolio when I was first thinking of making the move into UX.

She also taught me a great introductory course on UX through Habanero, which gave me a lot of confidence to start trying things out at work.

Jason Grant, UX role model

Jason is a design leader. He works with an impressive list of clients, is active in the London tech community, and even talked shop with me a few times. I interviewed him in 2017 and have been watching his career for years.

He’s now the founder of Integral, striving to “continuously deliver latest Integral and Design Thinking models to 1 billion community worldwide”.

Mark Plant, unofficial mentor

I wrote about Mark in 2017 as we were working through a design side-project together. This project started with me offering to buy a coworker a coffee. It ended with me learning about managing a corporate design system, appreciating marketing and the sales funnel, and gaining confidence in my design skills.

Meaghan Nolan, official mentor

Meaghan was my mentor in the Chic Geek mentorship program in the first half of 2018. She was the perfect guide for me as I researched UX Maturity, having co-authored a book on design maturity. She is currently doing impressive work with her startup Mikata Health.

Stuart Jones, manager 2018 and beyond

While Stuart was thinking of moving from London to Calgary in 2015, I was moving from Calgary to London. We met up a few times in London after I made the move, and he answered all the UK and UX questions I could throw at him.

Fast-forward a couple years to when I returned to Calgary. Stuart and his family had settled in and his employer, Solium, happened to be hiring! A few interviews and a job offer later, and I was finally a UX Designer.

My advice to you

If you are making a career move, go out and meet some people who are already doing your dream job.

If that dream job is User Experience, reach out to me. It’s my turn to return the generosity of these great mentors!

Killing your darlings

Last month I wrote about my process of designing what I called vesting sparklines. I was super excited about them because they packed so much information into a small area and because they made so much sense to me.

There is nothing like the moment when you suddenly come upon the answer to a design problem. Whether it is a particular interaction or the perfect design element, it is a moment of pure elation.

-Joshua Brewer, 52 weeks of UX

Testing my idea

When I showed a couple coworkers an early version, they were extremely confused. They wanted to understand but even with me there explaining it to them, it took a while. Even then, they didn’t seem to love it.

And these are patient, smart people, open to the idea.

Users are typically in a rush, distracted, and resistant to change.

But that’s okay, I thought, it’s just an early version.

Tweaking my idea

So I added a detailed modal to my prototype, so that if you click the sparkline you see a carefully labeled version of it with a table showing all the data below. Hover any piece of the chart and the appropriate table row lights up. Hover any row and the appropriate bar on the chart lights up.

Retesting my idea

Recently, another group of coworkers was discussing showing a timeline of events. I couldn’t contain my excitement so I called them over to my desk and showed them my sketch file with the table and the hover and everything.

It fell flat. Again.

Five brilliant people, all very knowledgeable in the world of equity compensation, didn’t understand it. So I explained. And explained. And it still wasn’t clear.

Example chart of price vs. quantity for upcoming equity vests

Part of my “improved” design: simple, right? Wrong!

Then a coworker asked “What pain point is this solving?”

Oh. Yeah. That.

The problem with my idea

My problem with this idea was that it wasn’t directly addressing a known user need. It was just an exercise I came up with based on the Tufte book I read.

They say when the only tool you know how to use is a hammer, everything looks like a nail. I was wielding my Tufte hammer and swinging it all around, not realizing that there were no nails sticking out.

Another lesson here is that even designers are guilty of self design. I’ve always been an Excel nerd, in love with spreadsheets and data and graphs. Most normal people aren’t. So while the sparklines I designed may have been perfect for me, they were utterly baffling for most other people.

Killing my idea

It’s hard to do, but as a designer, sometimes you need to kill your darlings.

So goodbye vesting sparklines. It was nice knowing you.

On the bright side

While designing this, I taught myself how to get API responses from the Chrome inspector, turn that json into csv, and play with it in Excel. This has already come in handy in a real work situation when we wanted to dig into the responses of the API when testing some recent work.

Also, I enjoyed the process of creating this design. It was truly eye-opening to test the it and see what people thought about it. Those tests didn’t go as planned, but that’s why we test!

Fall out of love with your ideas and fall in love with your process.

Chirryl-Lee Ryan

Visualizing vesting schedules

I recently wrote about the book The Visual Display of Quantitative Information by Edward Tufte.

That book inspired me to explore ways of visualizing the vesting of savings and awards.


Skip this section if you know equity!


Vesting is when stock or cash becomes available. This allows companies to reward their employees for staying with them for a long time. Savings plan matching and stock options are two examples of

Savings plan matching

Savings plan matching encourages employees to save for their future. For every dollar an employee saves, the company will contribute a certain amount. This happens every paycheck. That company contribution is often subject to vesting. In other words:

Dear employee, you saved $1. Good job. You can have this quarter… but only if you are still working here one year from now.

Stock options

Stock options freeze the price of a certain number of shares for employees, who can then buy them a few years later. It’s like:

Dear employee, the stock price today is $30. If you’re still working for us in two years you can buy 200 shares for that price. In three years you can buy 100 more. And in four years 100 more!


This promise of future money is a win-win. It helps the employee because they get rewarded. It benefits the company because employees are owners too and are less likely to leave. Some people call it “the golden handcuffs”; I like to think of it as a carrot on a stick. There’s always some money just out of reach, which encourages employees to stay.

Résultats de recherche d'images pour « bugs bunny carrot on a string »

Kind of like Bugs Bunny motivating himself with a carrot on a stick

My process

Vesting and employee equity can be hard to explain but once you get it, you get it. I’ve spent a lot of time lately exploring ways of representing equity visually.

I have done a ton of sketching. And thinking. And sketching again. It’s funny how ideas in your head can seem perfect but their flaws are revealed when the pen hits paper.

Initially I explored the idea of plotting time vs quantity of upcoming vest events.

That didn’t always work because there are often large gaps between vest events. So I decided to order the vest events by date instead of scaling by date.

Here are some of my sketches.


A collection of sketches. Spot the coffee stain!

I settled on a sparkline showing the quantity of vest, the award price, and the market price. What I like about this is that the area of each shape is proportional to its value. It explains complex concepts like stock options vs. RSUs at a glance.

I’ll illustrate this with an example. For a fictional employee with a few savings plan contributions and a recent stock option grant, the raw data might look something like this:

Type Vest Date Quantity Grant Price Current Market Price Estimated Value
Savings plan 01-Aug-19 10 $0 $103.30 $1,033.00
Savings plan 15-Aug-19 11 $0 $103.30 $1,136.30
Savings plan 01-Sep-19 12 $0 $103.30 $1,239.60
Savings plan 15-Sep-19 11 $0 $103.30 $1,136.30
Savings plan 01-Oct-19 9 $0 $103.30 $929.70
Savings plan 15-Oct-19 8 $0 $103.30 $826.40
Stock option 28-Sep-20 50 $114.23 $103.30 -$546.50
Stock option 28-Sep-21 25 $114.23 $103.30 -$273.25
Stock option 28-Sep-22 25 $114.23 $103.30 -$273.25

There’s a lot to digest here. And this is a simple example. For many employees, we have to limit the number of vests that we show because there are too many. But it becomes much more visual and compact if we represent it using what I like to call a vesting sparkline.

vesting sketch

A vesting sparkline for the data in the above table. Note the savings plan vests on the left and the (underwater) stock option vests on the right.

What I love about this is that it reduces all the complexity with grant prices and vesting timing into simple geometry!

The area of each box is proportional to its value. The savings plan vests are narrower because they’re smaller, but their $0 grant price makes them quite valuable. The option vests are currently underwater, meaning their grant price is higher than the market price. But if the price jumps, they’ll be much more valuable than the savings plan vests.

I think this idea has potential.

Or am I crazy?

I’ve obsessed over these sparklines on and off for a month. I’m way too close to them to be objective. So, readers, please let me know if this idea sucks!

And more importantly, I need to try these charts out with real data. What will it look like for typical Australian employees? What about German executives?

If I’m satisfied that I can cover all cases with the design, I’ll then test prototypes with coworkers and real customers. Do they understand what they’re looking at? How can I tweak the design to help?

I’m hoping that this will make it into production but even if it doesn’t at least I had fun doing it!