12 ms·
Show HN: Live coaching app for remote SWE interviews, uses Whisper and GPT-4
Posting from a throwaway account to maintain privacy.
This project is a salvo against leetcode-style interviews that require candidates to study useless topics and confidently write code in front of a live audience, in order to get a job where none of that stuff matters.
Cheetah is an AI-powered macOS app designed to assist users during remote software engineering interviews by providing real-time, discreet coaching and integration with CoderPad. It uses Whisper for audio transcription and GPT-4 to generate hints/answers. The UI is intentionally minimal to allow for discreet use during a video call.
It was fun dipping into the world of LLMs, prompt chaining, etc. I didn't find a Swift wrapper for whisper.cpp, so in the repo there's also a barebones Swift framework that wraps whisper.cpp and is designed for real-time transcription on M1/M2.
I'll be around if anyone has questions or comments!
- deleted 4y ago[deleted]
- imwillofficial 4y agoThis is badass. Even as a proof of concept it’s hilarious how many HR brains will explode over this
- test6554 4y agoWe have hired back to back people that we had to let go. When you take 4 hours to respond to simple questions you either have two jobs or you are not disciplined enough to be working from home.
- fortissimohn 4y agoAs someone laid off and having trouble finding a single job, that is rather discouraging to hear.
- simse 4y agoWhy?
- fortissimohn 4y agoWhy is it discouraging to hear that people are not taking sw jobs seriously when these jobs are now relatively hard to come by?
- imwillofficial 4y agoBecause it means that there are more open jobs for you! You got this man, being laid off sucks. But whoever you are, I’m cheering you on.
- simse 4y agoOh I see, I wasn't reading it like that
- jedberg 4y agoWhen I saw this, I had a good belly laugh! As someone who does a lot of interviewing who also hates all the leetcode style interviews, I love this. I hope it ushers in a new era of non-leetcode style interviews. But I suspect what it will actually do is usher in an era of in-person only interviews or having to use that same crap spyware that schools use to lock down your computer by essentially rooting it.
- moose_man 4y agoThey need to come up with something better than leetcode. Build a project and explain it is a much better way to get a sense of skill. It's the sort of skill that won't be made extinct by ChatGPT. Your creativity and ability to architect and build a project and then explain it should be the standard. Leetcode also penalizes good engineers who have anxiety during interviews.
- breckenedge 4y agoI’ve been doing interviews like this for a few years now. Leetcode sucks. Bonus points the next time a candidate (correctly) uses ChatGPT or Copilot. Let the machines do what the machines do well (grinding leetcode), good riddance.
- moose_man 4y agoYeah exactly. Since these tools commoditize repetitive skills, the goal should be to see how creative and awesome the project is within the parameters given. Being creative is what you should be testing for since all these other skills are now commodities. It's the one thing we have that AI can't replicate (yet?).
- leetcode-mafia 4y agoOften one of the parameters given is a timeframe that no sane person would request in a real-world setting. The justification I've heard for that is "we don't wan't people spending too long on it."
- ukuina 4y agoI can see a use-case for this that acts as a constant AI companion to pair-program with!
- toomuchtodo 4y agoRubberDuckGPT
- breckenedge 4y agoLOL. I was thinking along the same lines about two months ago, but didn’t have the time to put together an app. Bravo! https://news.ycombinator.com/item?id=34598251 https://news.ycombinator.com/item?id=34598251
- morkalork 4y agoOkay, so now interviewers will have to run their own copy and compare their answers to yours on real-time. Wonderful. Let the adversarial games commence!
- wnolens 4y agoNeed to seed it with a style, "give answers in the style of THESE GitHub repos"
- jedberg 4y agoIf you ask ChatGPT the same question in different context sessions, you get vastly different answers each time. So that would not only give you lots of false negatives, but could also give false positives of people who are legit doing it and happen to come up with the same solution that GPT did.
- leetcode-mafia 4y agoIndeed possible. That's partly why the prompt chain is set up to build a 'cheat sheet' type of answer, instead of a fully-formed answer that can be repeated verbatim.
- test6554 4y agoInterviewer: with your eyes closed, tell me the difference between…
- codethief 4y ago
- cbsks 4y agoWhen I went through a bunch of interviews in 2021 all my interviews were remote. After the first few hour-long interviews it became apparent that there were many repeat questions. I started writing the questions down along with my answers. I ended up with a notepad with ~20 of the most frequent questions and answers that I kept open on my screen next to the video conference. It was super helpful and now I have one of those $300k tech jobs! Edit: these were the questions, the answers are left as an exercise to the reader (or your preferred AI): What are you looking for in a role? How do you deal with a conflict with a coworker? What leadership experience do you have? Do you have experience working with multiple teams? What APIs have you designed? What is priority inversion? What are the differences between a mutex and a semaphore? What is preemption? How do interrupts work? What is interrupt latency? What is the difference between an ISR and a function? What is the difference between an interrupt and an exception? What is hard vs soft real time? What is the boot process of a CPU? What do you do for board bring up? What are different memory sections used for (code, data, bss, etc.)? What is a TLB? What is the difference between big and little endian? What is the difference between 32 and 64 bit processors? What happens if a null pointer is dereferenced?
- wordpad25 4y agocourtesy of GPT4 Priority inversion: A situation where a higher-priority task is indirectly blocked by a lower-priority task holding a shared resource. Mutex vs semaphore: Mutex ensures mutual exclusion for a shared resource, while semaphore controls access to a resource by multiple tasks with a counter. Preemption: The act of interrupting and temporarily suspending a task, allowing another task to execute. Interrupts: Signals to a CPU to temporarily stop its current task to handle an event or perform a specific function. Interrupt latency: The time between the arrival of an interrupt and the start of the interrupt service routine (ISR). ISR vs function: ISR handles an interrupt, cannot be called directly, and must complete quickly; a function is a reusable block of code that can be called as needed. Interrupt vs exception: Interrupts are external events requiring CPU attention, while exceptions are internal events caused by the execution of an instruction. Hard vs soft real time: Hard real-time systems have strict deadlines that must be met, while soft real-time systems have more flexible deadlines. CPU boot process: Initialization sequence a CPU follows upon startup, including loading firmware, running tests, and loading an operating system. Board bring up: Process of validating and configuring new hardware to ensure correct functionality. Memory sections: Code (executable instructions), Data (initialized variables), BSS (uninitialized variables). TLB: Translation Lookaside Buffer, a cache for memory address translations in virtual memory systems. Big vs little endian: Big endian stores the most significant byte first, while little endian stores the least significant byte first. 32 vs 64 bit processors: 32-bit processors have 32-bit wide registers and address spaces, while 64-bit processors have 64-bit wide registers and address spaces, allowing for larger memory and better performance. Null pointer dereference: Undefined behavior occurs, often leading to a crash or unpredictable results.
- Proven 4y ago[dead]
- mkl 4y agoHow good is Whisper for real-time, in terms of latency? I would love to hack together a dictation system at some point.
- mkl 4y agoA partial answer: https://github.com/ggerganov/whisper.cpp/issues/10 https://github.com/ggerganov/whisper.cpp/issues/10
- neilv 4y agoI'm conflicted, in how I feel about this existing and surely being used by some... I hate the Leetcode interview, with the fury of a thousand suns. But I also hate cheating and lying, to a similar degree.
- ActorNightly 4y ago> A recent M1 or M2 Mac is required for optimal performance. Got a chuckle out of this bit.
- davidatbu 4y agoCan I ask: what did you find funny / worth remarking about?
- ActorNightly 4y agoIts like a half meme that inexperienced programmers (which would be the target audience for this app) buy Macs because supposedly they are the "best" for programming.
- stormfather 4y agoI buy macs to program with because I'm so much more productive with their touchpad.
- ActorNightly 4y agoPeople definitely have their preferences, but from an objective standpoint when talking about the control of the computer, nothing really beats mouse+keyboard+big screen, and this is proven by the fact that you don't see trackpad or laptop use in the competitive gaming scene for MoBAs, RTS, FPS games where input speed and accuracy matters.
- google234123 4y agoCan't wait for us to go back to in-person interviews. Since they are more expensive, there won't be a need to take chances on people that don't have the exact expected credentials
- Fiahil 4y agoI had a candidate, last week, that was using ChatGPT during a technical coding interview. So, he managed to find perfect answers to the most difficult parts of the exercise in 30 seconds, and then struggled for 30 minutes, with my help, on getting the print right. Of course, I used a slightly modified version of well known problems like "Fizzbuzz" and other stuff, mostly as a quick start to get into the real engineering challenge. It explains why ChatGPT was absolutely unable to finish the exercise. During the interview, it acts a a good filter. If it last 3 minutes, fine, no signal ; but if someone is struggling on it for half the interview time, it's a clear "No". I haven't check if the candidate was invited to later rounds, but considering my negative review I think he was rejected. I'm afraid these tools are not going to help you when things really matter :)
- ainiriand 4y agoI think there are a few edge cases where this could still be useful. I put myself as an example, I have been working as a backend engineer for more than 12 years and I still get very nervous in any interview. I struggle with a simple fib(n) function because my brain sabotages me. But I could happily talk about system design, microservices, or API resilience without problems.
- robbywashere_ 4y agoThat has to feel so awesome to reject these wannabe posers. Please please please tell us more :)
- chmod775 4y agoI have a collection of one-liners by now which any developer could explain easily, but which ChatGPT-3.5, ChatGPT-4.0 and Bing's AI all get wrong in the same way. I think they all learned from a wrong SO explanation somewhere. I'll part with one: Explain in detail what resolve is in this code: const promise = new Promise((resolve) => resolve(3)); Assume I'm unfamiliar with callbacks or promises. All three AIs will incorrectly state in their very first sentence that resolve is passed to the promise constructor as an argument. There's also some technologies for which they can't write correct code (they'll hallucinate their API), but any software dev could when given their documentation.
- sebzim4500 4y agoI don't think I would hire someone with the leet-code ability of GPT-4, though. It does mean employers have to find questions outside the training set. I asked GPT-4 some of our hiring questions and it made some significant mistakes.
- abecedarius 4y ago~18 months ago I wrote in a comment here that I expected AI within 5 years from then to beat most working programmers at fresh new leetcode-style questions. It's not there yet but I wouldn't bet my career against this, when you compare to then. (Reaction at the time was highly skeptical.)
- sdwr 4y agoWhat do you want, credit for your wisdom? That's not so special, lots of people predict the future. For example, I smelled cinnamon buns in the air last week, then yesterday, bought some cinnamon buns. How'als that for foresight?
- m_a_g 4y agoLooks good, but I'm having trouble installing it as an app and couldn't find relevant steps in the README. Do I need to build it with xcode or something?
- leetcode-mafia 4y agoYou can download the binary here: https://github.com/leetcode-mafia/cheetah/releases/tag/v1.0 https://github.com/leetcode-mafia/cheetah/releases/tag/v1.0
- deleted 4y ago[deleted]
- muzani 4y agoI hope this does to whiteboarding what Firesheep did to unencrypted http. Still, this is impressive tech. It's a little like Iron Man's Jarvis where you can just talk to the computer and have it write code for you.
- cramjabsyn 4y agoI love this for whiteboard interview companies. Ask cs trivia questions, get AI responses and unqualified candidates. Hope it leads to an increase in conversational interviews.
- JoshuaRogers 4y agoWhile this is an interesting idea and somewhat amusing (kudos on the beautiful creativity of it), it’s worth noting that one of the second-order effects of this approach, were it used heavily enough to actually impact interview styles, is that it would further increase incentive to hire “in-network” with people that your team already know, while making completely unknown candidates a higher risk. Effectively, it changes incentives and risk in a way that encourage the creation of echo chambers. That said, once again, as far as a proof of concept this is wonderful. I’d say that it’s more art than product, and it makes a wonderful statement in the process.
- lhnz 4y ago> and remember not to use the loopback device as input for the video chat app. I laughed out loud.
- htag 4y agoThe answer to this is simple. Make the "on-site" interview on-site again. * You can rule out many types of cheating, which is becoming a more expensive problem. * You can get many more details for the 'culture fit' in person. * If you purchase airplane tickets for the candidate then you have built in identity verification via TSA. * It demonstrates a higher degree of buy-in before the final interview from both parties.
- Peroni 4y agoThis is categorically the right solution and the startups I work with that still have some form of office have all shifted to this structure. Take-home technical tests and virtual live tests are dead in the water.
- raymondh 4y agoFrom one point of view, this isn't a problem at all. If a candidate can use tools to generate, understand, demonstrate, and explain a solution in real time, that is likely what you want them to do on the job as well. Also, it is likely that in the near future that most programmers will be "pair programming" with Copilot, ChatGPT, or some other tooling to augment their capabilities.
- wintorez 4y agoLove it!
- armatav 4y agoHahaha brilliant