Live coding interviews have always made me anxious. Really anxious.
For a long time, I assumed that was the main reason I struggled with them.
But recently, I’ve come to the realisation that anxiety is an excuse. I am an anxious person. I always have been, for as long as I can remember. But I was using that as an excuse to hide something I was perhaps less willing to accept: I can be very lazy.
If I’m honest, it was an excuse to avoid learning things I simply didn’t want to learn because they’re hard, and I don’t like feeling stupid. I’d tell myself these questions weren’t representative of the work I actually do, that memorising low-level implementations wouldn’t make me a better engineer, and that I already knew I was good at my job.
So, finally, I decided to actually learn the things I'd avoided learning. I'm starting with some JavaScript fundamentals and then will move on to DSA and System Designs.
Naturally being a software engineer (plus having an unhealthy need to track everything I do and build things that work exactly how I want them to work for me) I decided to build a Mac App to help me master the JavaScript part of what I need to do.
The problem I had:
I was constantly jumping between lists of interview questions, GreatFrontend, browser tabs, a Claude terminal that I would paste my solution into and ask what I got wrong and VS code with copy and paste console.logs from Claude to validate my answers. After a few days of doing this I was a bit lost as to how much I had learnt, what I was weak on, what I had already covered.
I wanted this all in one place, so that's what I built. I call it Practice Pad.
What is Practice Pad?
Practice Pad is a free macOS app for practising 24 of the most commonly asked JavaScript interview questions.
Each question opens in a live Monaco editor, because I want a real code editor not a web browser with no syntax highlighting etc.
You can write your solution in JavaScript or TypeScript, run it against the included tests and see exactly what passed or failed. There are progressively harder options for each question with more edge cases.
When I'm stuck I use the integrated AI panel that uses claude to give me feedback (normally I ask it for some pseudocode first)
The app also tracks your progress. It has three progress steps. Tried, Implemented with help (aka Claude) and Completed. Seeing those little green ticks for completed is genuinely what keeps me motivated to come back to it day after day.
It's also got a little Pomodoro timer because that's how I like to structure learning. 25 minutes of learning then a 5 minute break then rinse and repeat.
Why Monaco?
It provides syntax highlighting, useful editor behaviour and strong JavaScript and TypeScript support. I wanted Practice Pad to feel like somewhere you could genuinely write and work through code, rather than a quiz with a small input field.
Why build a desktop app?
Practice Pad is built with Electron, React and TypeScript.
Electron allowed me to use the tools I already knew while creating a focused macOS app that can sit alongside the rest of my development environment. I've worked with Typescript and React for 7 years now and have built some Electron apps before. So it seemed like an easy choice.
I could go into the technical reasons why a desktop app is better suited to this kind of app than a website but the main reason is I just feel like I'm more able to concentrate when I have an app fully open rather than a tab in my browser.
Has it helped?
I’m not pretending that practising 24 questions will make anxiety disappear. But preparation is one part of the experience I can control.
My hope is that mastering these concepts through repetition will make me feel better prepared and, in turn, reduce some of the anxiety I experience during live coding interviews.
Practice Pad is completely free and currently available for Apple Silicon Macs if you'd like to give it a try.
You can download practice pad from my website here.
I’d especially love to hear whether there are any obvious questions I've missed.

Top comments (0)