Abhas Bhattacharya ⤵️

1.7K posts

Abhas Bhattacharya ⤵️ banner
Abhas Bhattacharya ⤵️

Abhas Bhattacharya ⤵️

@abhas_tweeter

thinking about future of AI-led coding interviews, building UnInterview

India Katılım Mayıs 2012
571 Takip Edilen409 Takipçiler
Abhas Bhattacharya ⤵️
Abhas Bhattacharya ⤵️@abhas_tweeter·
Lot of startups are blatantly using Claude name or logo in their ads. Cheap marketing. If the Ant folks act on it, they are going to get sued out of existence.
Abhas Bhattacharya ⤵️ tweet media
English
0
0
0
44
Abhas Bhattacharya ⤵️
Abhas Bhattacharya ⤵️@abhas_tweeter·
@slicknet Don't forget Opencode zen free models - deepseek v4 flash is free there with good tps, but low context window. That's how i survived after trying out Grok 4.5 in go plan and reaching limit in less than 10 messages.
English
0
0
0
49
Nicholas C. Zakas
Nicholas C. Zakas@slicknet·
Last week of the month and my OpenCode budget is blown. Copilot is at 92% of usage. The rest of the week is looking less productive.
English
2
0
0
1.5K
Abhas Bhattacharya ⤵️
Abhas Bhattacharya ⤵️@abhas_tweeter·
Installed Lumen mcp today to help with codebase semantic search. Looks promising with basic testing. I was getting frustrated everyday with the sillyness that comes after context compaction - agent doesn't know where anything is and does random guess searches. Also installed codedb mcp for more deterministic lookup and changes. I thought codedb would do the semantic stuff as well, but it doesn't. Surprisingly, none of the mcps come with mcp prompts. Added small hints in Agents md to prefer this tools.
English
0
0
0
56
Abhishek Vijayvergiya
Abhishek Vijayvergiya@abvijayvergiya·
Introducing Claude for Recruiting Enter your job description and AI agents will find the best candidates and reach out to them with a personalized message. Hiring is now a solved problem! Try below
English
14
10
140
245.9K
Abhas Bhattacharya ⤵️
Abhas Bhattacharya ⤵️@abhas_tweeter·
Kimi K3 isn't that good. Honest take. It can't think of new product directions like OpenAI models. Might be just marginally better at existing coding stuff.
English
0
0
0
52
Abhas Bhattacharya ⤵️
Abhas Bhattacharya ⤵️@abhas_tweeter·
Npm packages also don't have any field to point out the docs for the current version.
English
0
0
0
11
Abhas Bhattacharya ⤵️
Abhas Bhattacharya ⤵️@abhas_tweeter·
Docs (for libraries & products) need to be versioned in the same granularity as the base product. Same for documentation mcps. - Otherwise it's too hard for the LLMs to figure out the documentation and quirks for the current version they're using. - They don't have any reliable way of figuring out the llms.txt or documentation corresponding to an older version of the product. - They are forced to make guesses or internet searches just to figure it out.
English
1
0
0
66
Abhas Bhattacharya ⤵️
Abhas Bhattacharya ⤵️@abhas_tweeter·
Challenges - 1. There is no standard, trusted local way of analysing transcripts. Maybe someone needs to build an open-source verifiable transcript analyzer scaffolding, where actual analyzer scripts from others can hook in without getting a lot of permissions. 2. You can use Docker with no internet but that also stops you from looking up any important information. Maybe the other solution is to only allow some kind of Internet search MCP like pixserp without giving other internet access. 3. Syncing back the analyzed data to the server is another challenge. Maybe all the alerts can be triggered via some service from local.
English
0
0
0
17
Abhas Bhattacharya ⤵️
Abhas Bhattacharya ⤵️@abhas_tweeter·
Somebody build this - Daily learning suggestions from tech used in codebase. - Check transcripts to understand what i already know. - Micro lessons delivered to inbox/AI app regularly for learning on the go. Example - ooh, you used this new library. Do you know the common algorithm behind it? Or how it works. - let's learn how this protocol works - here's some more docker concepts that you might use later - you dismissed this suggestion after asking a little bit about it. . Want to learn more? Get user's attention first - explain why it might be useful to know.
English
1
0
0
52
Abhas Bhattacharya ⤵️
Abhas Bhattacharya ⤵️@abhas_tweeter·
Self-hosted softwares default to using easy, common, safe, file-based options that a reasonable developer will have access to. The same things that any prototype needs.
English
0
0
1
21
Abhas Bhattacharya ⤵️
Abhas Bhattacharya ⤵️@abhas_tweeter·
Self-hosting small software teaches you so many little potentially-useful-in-the-future things. I needed some login gate for a admin route. I remember settling up github oauth for Flipt earlier - it was super easy with a org filter. Used the same approach and boom, quick personal login with 0 cost/infra.
English
1
0
2
117
Abhas Bhattacharya ⤵️
Abhas Bhattacharya ⤵️@abhas_tweeter·
Okay, I was feeling really down the last 2 days because stuff didn't work. - Was working on scenario-based questions like - walk me through what happens if ? - Grilling need to generate follow-ups that feel natural & show progression. - Scenario questions usually check multiple concepts at once. - partial concept - At some point, user's answers might satisfy say only 1 out of 3 linked concepts. The AI follow-up now needs to ask about one/both of the remaining 2 concepts, by drilling down on last question or asking a new question. It should be contextual based on gaps in user's answers. - persistence - the best follow-ups don't end after single turn of "wrong" answer by user. AI can point the gap in user's reasoning and ask the question in a different way. The second time might be a charm. - refusal - back off in one-shot if user refuses to answer or wants to move on. Problem 1 - partial concepts just didn't click the way I wanted it to. My state machine would detect correctly that only some concepts were covered. So, It would ask the response LLM to generate a follow-up question based on some probing strategies. But the response never felt correct, it was essentially asking the same question again and again and seemed to be stuck. I was really bummed by this, even considered moving to a more expensive, smarter model. - The solution was really easy. Turns out, I never told the response LLM essentially - Why are we re-asking the same question? I told it which parameters to target but I never told it which parameters were already covered versus not covered. So, it didn't know what new to focus on now and just tried to revisit the same question again and again. - Not passing on the whole state from one side to another was a conscious early decision, because otherwise the response LLM tried to reason a lot about what it should do next, rather than sticking to its already calculated response direction. Giving it only the necessary state information for that turn really helped nudge it in the right direction. Problem 2 - I was really anxious about adding any kind of number to the follow-up turns. It just didn't feel right that the LLM would stick to some pre-decided mechanical number of turns. No numbers worked well initially, as long as the user is actively asking some follow-up question to the LLM, as that would naturally continue the discussion. However if the user gave a confident wrong answer and didn't try to hedge their answer, then the LLM simply moved on. - So first I just added a minimum number of turns. If the conversation continues longer, let it continue. But this is the minimum amount of persistence that AI should show. If all the linked concepts were covered before the minimum turns, move on. - Then I faced a new problem. Say the minimum no of turns is 2 and there are three linked concepts. Now, the user can end up spending the first two turns on just discussing the first concept. Even if the discussion showed momentum and the user actually came up with the right answer (for 1 concept) after two turns, the LLM had no persistence left. The remaining concepts were dropped. - Then I tried resetting the persistence. If the user correctly answered one of the concepts, then reset the persistence so that we have enough number of turns to discuss the remaining concepts. This seems to be working well. Sticking with this approach. Introspection - The first problem really made me question my direction - Is this product really even worth exploring, if the responses are so dumb? Maybe the model is just not the right one? Somehow, I didn't think there was any fix to this. - Looking at it from a fresh perspective, on a new day, really helped. Checked the context in LLM logs again and then it struck me. - There is a great talk from @Lovable team on YouTube about a "vent" tool. Let the AI complain when it feels conflicted or it's instructions seem to be contradictory. This confusion is often hidden inside the reasoning traces but we, developers often don't really analyze all of them. - I need to connect my langfuse traces back to my agent so that it can analyze the actual reasoning compared to the expected thought process and hopefully discover the context gap independently.
Abhas Bhattacharya ⤵️@abhas_tweeter

building /grill-me mode into UnInterview now Got multiple feedback that the AI should feel more helpful or active, rather than a boring evaluator who doesn't suggest much. Very valid point - the interview should feel more rich with inputs from both sides. Infact, in my first demo, the AI leaked answers and asked directed questions that it shouldn't have - the candidate actually liked the thoughtful cross-questions and engaged more with them. That felt like a real discussion. On the other hand, Interview AI probably shouldn't give away all the directed questions & right answers without the candidate even having a opportunity to mention them. So, here is the flow i am thinking, within a part - 1. Ask normal questions about approach. No grilling here. 2. User asks for implementation 3. Present implementation plan and start /grill-me 4.a. User can ask to skip them and force implementation 4.b. User answers them all 5. Implementation - It makes sense pre-implementation because we have a clear signal that the user explained everything they already had in mind. - I understand this can feel like a blocker right before impl, so they can skip grill mode easily. - grill me should ask socratic questions about the scenarios or edge cases, hopefully leading to the user thinking deeper about them. - striking the balance between helpful & evaluator persona of the AI is very important. There is a natural distrust about any AI that evaluates you. But if they are also genuinely making you think about the right solution, it should feel more trustworthy and claude-like. I am not sure if it'll work as well as i hope it would. But i use the skill personally a lot and always got great insights, so there's no reason it shouldn't?

English
1
0
1
188
Abhas Bhattacharya ⤵️
Abhas Bhattacharya ⤵️@abhas_tweeter·
@steveruizok Fair point. It would be hard to get reliable diy speech input and speaker output going in such a small form factor without this readymade product - I agree. Looks battery powered too. My use cases were more passive low-level, yours are more user-oriented, active.
English
0
0
0
78
Steve Ruiz
Steve Ruiz@steveruizok·
@abhas_tweeter There actually are io pins inside if you're willing to open/ destroy the case! Really though outside of a structured learning environment, I think folks are more likely to engage with material if you get them to the win as fast as possible then backfill knowledge as required
English
1
0
3
133
Steve Ruiz
Steve Ruiz@steveruizok·
testing Steve's Simple Translator
English
18
10
408
112.9K