Resources for PMs

I’ve had quite a few folks reach out for guidance on navigating their journey as a PM. Since it’s a newer field and a lot of it has to do with softer skills it can be a bit hard to know where to start to build on your skills and become a more effective PM. Here are some resources I’ve found to be helpful in developing my own skills. If you’ve got any you’ve found useful or would like to share please leave a comment, :).


The best resource I’ve found on Books for PMs is from Ken Norton. You can view it directly here:

These were the ones I found to be most useful:

  • Nudge
  • How to Lie with Statistics
  • Interview Math (Lewis C Lin, helpful for quant interview prep)
  • Cracking the PM Interview
  • Decode & Conquer
  • On Writing
  • In the Plex (if interviewing with Google)
  • Don’t Make Me Think


There are a few different options for PM-related courses out there but I think the runaway favourite in terms of value and actual practical application is Reforge. Their courses are built around key concepts like Retention and Engagement, Advanced Growth Strategy, and Product Strategy. I highly recommend taking one of these courses if you have the time & resources to do so. It’s generally a 6-8 week commitment at 6-10 hours per week of time.


Newsletters can be a low friction way for you to continuously get helpful content for you to consume on a periodic basis. Open to more suggestions if folks have them.

WoW Dungeon Reset to send you back to the start of the instance | Classic WoW

Sometimes you’re running a dungeon on repeat (say Blackrock Depths Emperor runs or a Maraudon Princess run) and don’t want to have to port back to a major city (or hearth away) and then run back to the dungeon again. There’s actually a way to reset the dungeon while keeping you in the instance and sending you back to the start of the instance.

Here’s how to do it:

  • Once you want to reset the dungeon and send yourself back to the start of the instance.
  • Invite an alt character that is not inside the dungeon
  • Promote that alt character to be party leader
  • Have everyone log out of the game (you need to log out & wait the 20 seconds you can’t just expedite by exiting)
  • Reset the dungeon from that alt character (right click on your character frame and click on “Reset all instances”). If you’ve done it correctly you’ll get a message like “Maraudon has been reset”.
  • Log back into the instance on your other characters and you should now be back where you zoned in with a fresh dungeon to run!


Things to Do in Vancouver + Metro Vancouver

This is a list I’ve been working on for friends visiting Vancouver. If you have any suggestions or feedback please feel free to leave a comment, :).

To do

North Shore

  • Where I grew up!
  • Things to do
    • Lonsdale Quay
    • Ambleside Park
    • Take the Seabus to and from Vancouver
      • Nice ride with great views!
  • Nature
  • Grouse Mountain
    • Grouse Grind, intense hike up to the top of the mountain. You can also take the gondola if you’d rather not hike your way up.
    • Lumberjack show at the top
    • See wolves and bears
  • Capilano Suspension Bridge
    • Nice suspension Bridge
    • Walk amongst the trees
  • Lynn Valley Suspension Bridge
    • Nice hike in the woods
    • Free Suspension Bridge
    • Waterfalls
  • Deep Cove
    • Baden Powell Trail, Quarry Rock is a short hike with a great view
    • Kayaking
    • Cute little town
  • Lighthouse Park
    • Really nice hike and lighthouse by the water

UBC/Point Grey

  • Things to do
  • Nature
    • Pacific Spirit Regional Park
      • Huge forest on University Endowment lands that you can hike in
    • Wreck Beach is nice to visit and has quite a nice view at sunset
      • Note that this is a nudist beach
    • Nitobe Memorial Garden – UBC Botanical Garden
      • Beautiful little garden on campus. So peaceful and quiet here, :).
    • Botanical Gardens at UBC are nice as well

Downtown Vancouver

  • Things to do
    • Visit
      • Gastown
        • Hipster part of Vancouver
        • Cobblestone streets
        • Steam clock
        • Fancy coffee bars and silly fashion stores
      • Coal Harbour
        • Beautiful neighbourhood by the water
        • Pathway along the water that leads to Stanley park
      • Canada Place
        • Convention Centre by the water
        • Pathway by the water
        • Olympic Flame
      • Granville Island
        • Cool little island made from a sandbar
        • Used to be industrial now full of small artisan workplaces and cool shops
        • Visit the Granville Island Market
        • Improv at the Theatre on the Island is also very good.
      • Kitsilano/West 4th
        • Nice part of the city with restaurants and good shopping
        • Lots of streets named after trees
      • Granville Street
        • Street where pretty much all the clubs are located in Downtown Vancouver
      • Robson Street
        • Best known for shopping and food
        • Good ramen here
      • English Bay
        • Nice beach by Stanley Park with beautiful views
      • Commercial Drive
        • Quirky part of the city with a lot of small businesses
        • Similar to the Mission in SF
    • Activities
  • Nature
    • Stanley Park
      • Amazing park that represents a big chunk of the city
      • You should bike around the Seawall!
      • Visit the Vancouver Aquarium if you like aquariums
    • English Bay


Overall Recommendations

  • Ask for Luigi
    • AMAZING Italian food
  • Bon’s off Broadway
    • Crazy cheap breakfast diner, very colourful
  • Heritage Asian Eatery
    • Delicious Asian food. Get the Dandan Noodles, duck wings and crispy dumplings
  • Jade Garden
    • Love this Chinese food place on the North Shore. My favourites are the Hot & Sour Soup, Crispy Ginger Fried Beef and Pad Thai Fried Flat Noodle
  • Nam Nam Noodle | Home | Nam Nam Noodle (
    • Extraordinary hand pulled noodles at great prices.
  • Indian Village Eatery
    • The best Indian food I’ve had in Vancouver. Affordable, delicious and you can see them make your food. The most friendly and warm legit Indian ladies making your fantastic food.
  • Go Fish
    • Amazing fish & chips by Granville island. Beautiful views and you can get many different varieties of fish. I always go for the salmon, :D. Their coleslaw is great too!
  • Bao Bei
    • Taiwanese food in Chinatown
  • Meat and Bread
    • Simple and delicious sandwiches. Lunch rush is a bit crazy during weekdays but if you work around that you should be good!
  • Phnom Penh Restaurant
    • Great Vietnamese food. Make sure to get their chicken wings!
  • Richmond Night Market
    • If this is running, this is a fun spot to visit for a couple hours. Try out some of the night market foods, :D!
  • Savio Volpe | Home – Savio Volpe
    • Astonishingly good place to eat. Their food is expensive but delicious. But everything I ate there was fantastic.
  • HK BBQ Master | HK B.B.Q. MASTER
    • Fantastic BBQ pork for a great price. Highly recommend eating here.
    • Cash only (although there is an ATM in the Superstore above)
  • Kim’s Market | KIM’S MART 
    • Legit Korean grocery off Broadway. If you need to shop for groceries you can get some well priced stuff here and explore some Korean snacks!
  • purebread |
    • This is my favourite bakery in Vancouver by far. Their stuff is SO good and SO beautiful. Definitely on the pricey side but if you can afford it it is worth it. I recommend visiting their Mount Pleasant location
    • 5 E 5th Avenue, Vancouver


  • Go here for Indian food


  • Go here for Chinese food


  • Go here for Vietnamese food


  • Go here for Iranian food

Other Locations to Visit (Further Treks)


  • Excellent skiing and snowboarding in the winter
  • Great hikes and mountain biking in the summer
  • Beautiful mountain resort town

The Chief

  • Awesome hike up to the top of a massive granite face. Cool views.
  • Will take 2-3 hours depending on fitness



  • Capital city of British Columbia
  • Really nice place to visit for a day or two
  • Beautiful heritage buildings
  • Better weather than Vancouver
  • Lots of museums and such

Various Islands near Vancouver

  • Take the ferries to access these
  • Mix of beautiful nature, cute little towns
  • Totally different lifestyle from the mainland. Much slower and more down to earth.
  • Some islands to consider
    • Bowen Island
    • Galiano Island
    • Saltspring Island

Solving “Importerror no module named”

So you’re trying to get something done and you’ve found an awesome tool to install via pip. You pop open Terminal, run your pip install command (in my case, pip install google_images_download), install the module successfully, and are ready to get to work. You start working on your Python script and get an error:

ImportError: No module named google_images_download

Well, that doesn’t make sense, you just installed it.
Turns out, it may not have been installed in the right place.


I found my solution here:

Basically, put python -m before your pip install command.

I also had to set up pip directly in my python environment using this command python -m ensurepip --upgrade --user

Final Set of Commands

python -m ensurepip –upgrade –user

python -m pip install google_images_download –user

No more errors. Nice!

Running AutoHotKey as Administrator

I was having challenges where a script that used to work for sending keystrokes directly to a window based on its window title wasn’t working. I tried troubleshooting a bunch of stuff (so weird since it was working before) but nothing was sticking.

I stumbled across a comment mentioning that programs being run as Adminstrator couldn’t be interacted with by programs that were not being run as Administrator (in this case, AHK for me).

By changing the AutoHotKey executable to always run as administrator I was able to send commands again without any issues.

Fix for BLZBNTAGT00000960 (CoD Warzone crashes on start, update, install) – December 2021

Recently had an annoying error come up where I couldn’t start Call of Duty: Warzone. I tried:

  • Scan and repair which took forever and didn’t work
  • Restarting my computer
  • Un-installing and re-installing (this didn’t work and now I couldn’t even install the game)
  • Deleting my folder in AppData
  • Running as Administrator

Ultimately, what did work was going into Properties –> Compatibility for and Launcher.exe and checking the box for “Run this program as administrator”.

Credit to this Reddit thread for helping me finally find the solution:

Fix for Xbox Game Pass Install Error (0x00000001)

If you’re like me and you wanted to download Age of Empires 4 to play with your friends on Game Pass you might have run into this error. You start the install and for some reason its not progressing. You go to check on your progress and see there’s an error.

Maybe you restart the app, your computer or choose a different install location (I did all those things). Still no luck.

UIltimately this is the fix that worked for me. Credit to these Reddit and Microsoft Community posts:

1.Run Windows Powershell in admin mode (I did this by starting it up, and then right clicking on the icon in my task bar to create a new instance in administrator mode).

2. Close the Xbox app.

3. Enter this command: Get-AppxPackage -AllUsers | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register “$($_.InstallLocation)\AppXManifest.xml”}

4. Wait for it to complete and try the install again.

Problem Solved!

Fix broken pipenv in a virtual environment (could not find a version that matches X)

I’d messed up my pipenv previously by trying to get it to install a module that just wasn’t working out for me. In using pipenv install -skip-lock I’d inadvertently put my pipenv in a state where it was constantly stuck in a loop where it was trying to install “blocks” through pipenv which just wasn’t possible.

This is what my error log looked like in terminal:

[pipenv.exceptions.ResolutionFailure]: No versions found
[pipenv.exceptions.ResolutionFailure]: Warning: Your dependencies could not be resolved. You likely have a mismatch in your sub-dependencies.
First try clearing your dependency cache with $ pipenv lock –clear, then try the original command again.
Alternatively, you can use $ pipenv install –skip-lock to bypass this mechanism, then run $ pipenv graph to inspect the situation.
Hint: try $ pipenv lock –pre if it is a pre-release dependency.
ERROR: ERROR: Could not find a version that matches blocks
No versions found
Was reachable?

To fix the problem, I ended up deleting my pipfile and running the same install command again. It installed the package I was trying to get (elasticsearch) and updated Pipfile.lock with the new project requirements.

Note: Your pipfile will look something like this in your project folder.

My terminal output after deleting the pipfile in my virtual environment:

(venv) Nicholass-MacBook-Pro:microblog nicholaspezarro$ pipenv install elasticsearch
Creating a Pipfile for this project…
Installing elasticsearch…
Adding elasticsearch to Pipfile’s [packages]…
✔ Installation Succeeded
Pipfile.lock (0b8641) out of date, updating to (9d3b63)…
Locking [dev-packages] dependencies…
Locking [packages] dependencies…
✔ Success!
Updated Pipfile.lock (0b8641)!
Installing dependencies from Pipfile.lock (0b8641)…
🐍 ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 2/2 — 00:00:00

Reverting a bad commit and removing it completely from Github

Let’s say you accidentally commit and push a file full of passwords (like a .env file) that you don’t want other people to want and now it is part of your public project on Github? How do you get rid of that? Fear not, follow these two commands and you’ll be back to before you took that ill-fated action.

Before beginning, make sure that you backup any files and changes you’d like to preserve elsewhere as your work in the repository will be wiped back to where you were at your previous commit.

git reset –hard HEAD^
git push origin +master –force

(Note that here I used “master” as that was the branch I was working on, you’ll want to change “master” to whatever your branch name is and use that in the command)

Useful links:

readlink: command not found

I’ve been working on a bunch of projects that involve Python and a decent amount of commands written and issued in terminal. At one point, I was trying to boot up a local server for a web app I was running and kept running into the error “readlink: command not found”. After a ton of searching and attempting to understand what was going on, I was able to find a solution that solved my problem and allowed me to get back on track.

The core of this issue is changes made to your .bash_profile that renders it unreadable or unparseable so you need to jolt it out of that state to allow it to function normally again.

The answer here on Stackoverflow ultimately led to me solving my problem.

It is happens when you just copy the line (below) into the .bash_profile without removing the quotes (‘xxxx’)
export PATH=’/usr/local/bin:$PATH’

To resolve, just run in console:
export PATH=/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin

Then, edit again the file removing the quotes:
vim ~/.bash_profile

The terminal commands that I ran locally ended up looking like this

Nicholass-MacBook-Pro:post-covid-19 nicholaspezarro$ export PATH=/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin
Nicholass-MacBook-Pro:post-covid-19 nicholaspezarro$ source ~/.bash_profile

Hopefully this helps you out if you’re having this issue!

Creating a .slate file for Slate (Mac Window Management): Resolve “Could not load ~/.slate or ~/.slate.js”

A while back I was looking for a solution to restore my window setup when I went between being at my desk and bringing my laptop to meetings. I settled on Slate which is a great, lightweight solution to save your window positions and quickly restore them exactly as they were. Unfortunately, it can be a bit tricky at times to setup as you need to create a .slate file in your Home directory which is not something you can easily in Finder or even with a text editor like Sublime.

If you don’t have your file set up you’ll keep getting this error:

The dreaded “Could not load ~/.slate or ~/.slate.js”

Thankfully, it is very simple to resolve using Terminal. Just follow these steps.

Open Terminal and type (or paste in) the following commands:
cd $HOME
touch .slate
open -a textedit .slate

At this point, you’ll see a textEdit window pop up with .slate as the title. Save that file and you’re set!

Now, when you save your window positions in Slate (Take Snapshot) they’ll be stored for your next session and you can easily restore them (Activate Snapshot)

Big thank you to harzivi for their helpful suggestion on Github!

The Basics of the Path to Financial Independence

The Basics of the Path to Financial Independence

In these posts I’ll attempt to lay out the core of whatI believe are the basics of the path to Financial Independence. Please share your feedback and suggestions if you have any, :)!

  • Saving for the future
  • Where to put the money you have leftover after expenses
  • How to make your investment decisions

Saving for the Future

Where to put money after expenses

How to make investment decisions