The Perpetually Prepared Programmer

8 Days

·

Cohort-based Course

Get the research-backed framework to permanently master programming interviews with 95% less effort.

Course overview

Overwhelmed by Software Engineering Interviews?

Most engineers wait until they are unhappy at their current job before preparing for interviews. But if you use the 80/20 rule and spaced repetition you will spend less time practicing and be ready for any opportunity, giving you leverage to negotiate (even at your current job).

This course is for you if...

01

You want to quit your job, but months-long interview preparation burns you out, so you end up losing steam and staying where you are.

02

You dream of retiring early, but quietly settle for 5% raises when you could be getting 30% or more somewhere else.

03

It's hard to feel secure due to recent unprecedented lay-offs, so you want to hedge your bets and prepare for any scenario.

04

You're a skilled engineer, but feel trapped doing busywork at a job where you aren't learning, and keep getting passed over for promotion.

Key outcomes

Use the 80/20 rule to identify a core set of Algorithm and System Design problems, reducing the time you need to spend preparing and improving your ROI.

Build a spaced repetition flash-card deck that feeds you questions in the optimal order so that you permanently internalize them with 95% less time, staying interview-ready for all future job searches.

Attract more offers, increasing your leverage during negotiation (even during review cycles at your current job - get that raise or promotion).

Develop a habit to overcome procrastination and burnout by using a system to always know what to do next (without having to think).

Grow with a community of like-minded career optimizers who share ideas and hold each other accountable.

Get 1:1 help and shape the course to cover what you need most.

See what people are saying

        I teach information retrieval, and every semester I point my students to Alex’s blog and code to learn about succinct data structures. He is remarkably gifted in explaining things in a fun and accessible way, inspiring my students to love the subject!
Edgar Chávez

Edgar Chávez

Senior Researcher at CICESE, Mexico
        I stumbled across Alex's blog a few years back and became super interested in wavelet trees and succinct data structures in general. He writes thoughtfully and with great reverence for his craft. I find myself rereading his posts periodically and have recommended them to other engineers to help them grow.
Nick Scheiblauer

Nick Scheiblauer

Director of Engineering at Flickr
        Alex has many years of experience creating content around problem-solving, data structures, and algorithms. I'm a fan of his technical writing and his expertise is undeniable. If I start job-searching again this would be the first class I would take.
Hide Shidara

Hide Shidara

Software Engineer at Collective Health | Researcher | Ex Instacart | Ex Indeed
        Alex helped me with Computing Theory while I was at university, and is an amazing tutor. He is very patient and his knowledge is sound, and he makes complex topics easier to digest. He has a way of understanding where your knowledge gap is, and helps you to bridge that gap.
Charles Atton

Charles Atton

Tech Lead at Next Technik
        Alex has a natural ability to distill complex topics and make them fun, which made it a pleasure learning from him while we worked together.
Nitin Passa

Nitin Passa

Senior Software Engineer at Two Sigma | Ex Senior Software Engineer at Cruise
        Alex has turned a normally daunting task like technical interview prep into a systematic game and habit I can stick with!
Haejin Jo

Haejin Jo

Software Engineer at HackerOne
A pattern of wavy dots

Be the first to know about upcoming cohorts

The Perpetually Prepared Programmer

Stay in the loop

Not ready to enroll just yet? Sign up to get the LeetCode Anki deck used in this course, and be invited to free workshops:

Meet your instructor

Alex Bowe

Alex Bowe

Senior Software Engineer at Cruise | Advanced Algorithms PhD | Algorithms Teacher at RMIT and Hyper Island | Lifelong Learner

Over my past 5 years as a senior software engineer I have interviewed hundreds of engineers. The difference between a prepared candidate and an unprepared candidate is night and day, (and the best candidates get the most offers, allowing them to effectively negotiate).


When I finished my PhD in advanced algorithms in Tokyo, I knew that I didn't want to work just anywhere. I also wanted to catch up financially as quickly as possible.


I spent 6 months grinding LeetCode and doing hundreds of mock and real interviews. I got an amazing job, but I was left feeling burnt out.


Then I realized that if I use spaced repetition (a technique I learned from studying Japanese) I could get better results with less hassle. And better yet, it was fun.


I've taught algorithms at RMIT university in Melbourne, Hyper Island in Stockholm, and on my website (alexbowe.com). Now I'm building this course to teach you how to build this habit too.


If you're a software engineer who wants to find a new job or optimize your pay while reducing the amount of preparation you have to do, this course is for you.

A pattern of wavy dots

Be the first to know about upcoming cohorts

The Perpetually Prepared Programmer

Stay in the loop

Not ready to enroll just yet? Sign up to get the LeetCode Anki deck used in this course, and be invited to free workshops:

Course syllabus

01

Reduce LeetCode to the 20% of problems asked 80% of the time, then internalize their patterns in 90% less time using Spaced Repetition

  • Use real-world data to identify a core set of LeetCode problems and their optimal order.
  • Further shrink this set using Anki, practicing less and less until you never have to practice them again.

02

Explain System Design fundamentals in a document that automatically feeds back into your Spaced Repetition deck

  • Design a system to systematize System Design practice by writing notes in Obsidian, automatically generating flash cards in your Anki deck.
  • Review those concepts at the same time as you practice LeetCode, reducing context switch overhead and allowing you to pick-up and put-down your practice at a moment's notice.

03

Bonus Curated Material for Behavioral Interviews and Negotiation

  • Behavioral interviews are important too! Let's get on top of the most common behavioral questions so you're never lost for words.
  • When you're always interview-ready you'll naturally have more offers. When you have more offers you'll have leverage to negotiate - even at your current job. Become an expert negotiator with these resources.

Course schedule

2 - 4 hours of contact time + projects

  • Wednesday, January 18th

    5:00 PM - 6:00 PM PST

    Workshop 1:  Intro, 80/20 rule for LeetCode, Anki & Add-ons

    • Introduction to the course: The Perpetually Prepared Mindset.
    • Analyze LeetCode to identify the build a data-driven spaced repetition deck to rapidly internalize interview problem patterns.
  • Monday, January 23rd

    5:00 PM - 6:00 PM PST

    • Create a smart document that automatically sync notes to your spaced repetition deck.
    • Systematize your System Design preparation.
  • Co-working and Q&A sessions

    2x 45 mins (more as needed)

    • Stay focused and accountable by working with your classmates.
    • Bring any questions for me to go over.
  • Projects, Readings, Videos

    1 - 4 hours

    • Projects that help you interact with each other and share ideas, as well as make your setup your own.
  • 1:1 Consultations

    30 mins as needed

    • Schedule 1:1 time with me to go over anything that you need (even if it isn't in the syllabus).

Put interview preparation on auto-pilot

Track your progress, project your finish date, and always know what to study next.

Track your progress, project your finish date, and always know what to study next.

A pattern of wavy dots

Be the first to know about upcoming cohorts

The Perpetually Prepared Programmer

Stay in the loop

Not ready to enroll just yet? Sign up to get the LeetCode Anki deck used in this course, and be invited to free workshops:

Learning is better in groups!

Learning is better in groups!

Accountability

This course builds on live workshops and hands-on projects. This active style of learning will keep you accountable, unlike passive courses.

Network Effects

Surround yourself with like-minded people who want to grow alongside you. Bounce ideas, share leads, and learn from each other.

Feedback Loops

Since this is instructor-driven, you are able to shape the course! For example, this course won't cover algorithm basics, but if the need arises I will happily go over them.

Frequently Asked Questions

A pattern of wavy dots

Be the first to know about upcoming cohorts

The Perpetually Prepared Programmer

Stay in the loop

Not ready to enroll just yet? Sign up to get the LeetCode Anki deck used in this course, and be invited to free workshops: