AI 资讯
The same question, answered by a junior and a senior: eight examples
Seniority in an interview is not measured by how much you say. Every answer below is correct. Only one of each pair gets you the offer, and the difference is smaller and more learnable than most people expect. When engineers ask what a senior answer sounds like, they usually get told to be more confident, or to talk about impact. That advice is not wrong but it is unusably vague. Here is something more concrete. In pair after pair below, the senior answer differs in the same four ways: it names the mechanism underneath, it points at a specific situation rather than the general case, it volunteers the cost, and it says what it would measure. Nothing else. Once you can see it, you can do it. 1. JavaScript closures What is a closure? Junior answer: A closure is a function that remembers the variables from the scope where it was defined, so it can still use them later even after that function has returned. Senior answer: It is a function together with a reference to the scope it was created in, so the variables it captured stay alive on the heap instead of dying with the call. That is what makes module patterns and hooks work, and it is also the classic memory leak: hold a closure over something large in a long-lived handler and it is never collected. It also explains the loop bug people hit with var, since one shared binding gets captured instead of one per iteration. The follow-up here is almost always the loop bug or the leak. If you volunteered both, you have already answered it. for ( var i = 0 ; i < 3 ; i ++ ) { setTimeout (() => console . log ( i ), 0 ); } // 3, 3, 3 -- one binding of i, shared by all three closures for ( let i = 0 ; i < 3 ; i ++ ) { setTimeout (() => console . log ( i ), 0 ); } // 0, 1, 2 -- let creates a fresh binding per iteration The version of this that gets shown in interviews. Knowing that it prints 3, 3, 3 is table stakes; being able to say why in terms of bindings is the answer. 2. React re-renders How would you fix a slow React page? Ju
AI 资讯
IT Support Interviews: Explain Your Next Check
A practical walkthrough for answering a troubleshooting question without guessing, overclaiming, or reaching for an unsafe fix. "An employee cannot access a shared folder. What do you do?" There is a temptation to answer with a tool: check permissions, reset an account, run a command. But the question has not yet told you whether the folder is missing, the connection fails, or the user receives an access error. A command is not a diagnosis. A confident guess is still a guess. For a first IT support interview, practise explaining what you would check next and what its result would mean. That gives your technical knowledge a structure without pretending you already know the environment. Table of contents First, distinguish recall from investigation Start with an observation, not a change Walk through the new evidence Use a compact decision note Handle an unfamiliar tool honestly Keep real experience separate from hypothetical answers Rehearse with a change of direction Final thought Key takeaways First, distinguish recall from investigation If the interviewer asks for a definition, give one. If you do not know it, say so precisely. A long troubleshooting speech is not a substitute for knowing a basic concept. A scenario question is different. It may require you to establish the missing context before a proposed action makes sense. Microsoft explicitly encourages candidates to clarify and explain their thinking in its interview tips . Do not assume every employer uses the same assessment approach. Practise switching between a short factual answer and a reasoned investigation. Both matter. The goal is not to turn every answer into a five-minute lecture; it is to make each sentence useful to the question you were asked. Start with an observation, not a change For the shared-folder scenario, a useful first response is: I would ask for the exact error and affected folder, whether the task worked before, and whether anyone else is affected. I would clarify the business impa
AI 资讯
Has AI Made You A Lazier Developer? Be Honest.
Haven't you ever wondered if this AI vibe coding has made us lazy? Who's been solving problems on LeetCode lately? 😅 I've noticed that accepting is easier than thinking, by a margin so small that no single accept feels like anything, and it adds up anyway. Part of why it's hard to notice is that it feels faster even when it isn't. But I've come to think "lazy" is the right worry aimed at the wrong thing. There are two kinds of lazy and only one of them is a problem. I'm going to go into a little background here, because I didn't come up with this, and I didn't reach this conclusion on my own. Lazy is why we have compilers Larry Wall, who created Perl, put laziness first on his list of the three great virtues of a programmer , and his definition is the whole argument: "the quality that makes you go to great effort to reduce overall energy expenditure." Great effort. Good lazy isn't the absence of work, it's work moved somewhere better, and it's more or less why compilers exist (somebody got tired of writing the same assembly by hand and decided, reasonably, that the machine could do that part) and why every abstraction we lean on all day is really someone's laziness done properly. Handing that kind of toil to a model is nothing new. The config I've written a hundred times and the regex I could write but would rather not and the Dockerfile I could recite and the test scaffolding that comes out identical in every project I've ever started: I understand all of it and I'm simply declining to type it again and I feel no guilt about that whatsoever (honestly I'd be more worried about a developer who insisted on typing all of it out by hand in 2026, on principle, one character at a time, while the rest of the team went home). That's not skipping the thinking. That's skipping the typing after the thinking was already done. The other kind skips the understanding The second kind of lazy offloads the understanding itself. The model writes the thing and it runs and the tests are
开发者
Networking is Hard but easy to think about.
The video cover is what we are all feeling in this Job Market. I don't have a good cover image this...
AI 资讯
Why Compliance Kills Early-Stage Projects and How to Fix It
Compliance itself isn't the villain. The problem is a system designed for large banks being forced onto small teams who measure time in sprints, not fiscal quarters. Innovation was never meant to wait for permission. It's supposed to be fast, chaotic, and full of discovery. But for anyone who has tried to launch a startup especially in Web3, fintech, or any regulated space there is a familiar slowdown that begins the moment compliance enters the conversation. Everything feels alive until the first "verification required" email arrives. That's when the waiting begins. Compliance itself isn't the villain. It protects systems from fraud, builds trust between unknown parties, and ensures accountability. But the way compliance exists today feels like a relic a system designed for large banks, traditional corporations, and legal departments with infinite patience and paperwork. For small teams who measure time in sprints, this system simply doesn't fit. The Repetition Tax Most founders encounter the compliance disconnect the moment they try to grow. After building their MVP and testing their product, they reach the stage where partnerships or investors arrive and suddenly they're asked to complete KYB (Know Your Business) verification again and again. Each time a new partner or service provider comes aboard, the process restarts: upload documents, verify directors, prove legitimacy. It's not that startups resist compliance; they simply don't understand why they must prove the same truth multiple times to different counterparties who have no way to see each other's work. This endless repetition creates what many founders now call the repetition tax. It isn't paid in money but in time and motivation. The same hours that could have gone into improving a product or connecting with users are swallowed by forms, follow-ups, and "under review" messages. And crucially, all this duplicated effort doesn't make the system any safer it just makes it slower. The Security Paradox There
AI 资讯
AI Didn't Kill the Need for System Design. It Just Made Bad System Design Easier to Ship.
Intro AI Didn't Kill the Need for System Design. It Just Made Bad System Design Easier to...
AI 资讯
Stratagems #29: Leo Counted 164 Nodes. The AI's Blossoms Had One Root.
Dress a tree in borrowed blossoms, and it looks alive. The roots still tell the truth. — The 36...
开发者
I Didn’t Have a Developer Website, So I Built One.
For a long time, I published most of my articles on DEV.to. Not because I had some big strategy...
开发者
No Meme Monday
Labor Day in the US ✌️
开发者
My Journey Of Making SnapTrace
Hey, Everyone hope so you all are doing great. So, My Name is Arslan. I am a IT Student and i love to get to develop or find best alternative solutions that can solve problems. So, i have a used pc last year at which i was working on a small college project. so, i was very frustrated with errors so i search for error tracking software and tools but when i search and get to know about these heavy tools and expensive tools i thought let's build my own lightweight fast error tracker tool. So, i collected my money for about 8 months to buy a used laptop because my current pc was a potato old pc causing problems. So, i decided to do something unique. So, i sell my pc and take my collected money to get a used laptop. So, i get my laptop and then started working on this project. So, as a solo developer i worked for months to make this tool and now finally this tool is here but i have kept this tool under beta development and it is still under upgradation. I just want your useful feedback and honest suggestion and support. Join my journey by using this tool and catching your errors in a snap because it is snap trace. bye.
AI 资讯
I tried removing burned-in text from videos with VideoDetext
A friend of mine works in e-commerce and often needs to reuse or edit videos that already have text or subtitles burned into them. That got me looking into ways to remove text from video without having to edit it frame by frame. I tried a few existing tools and APIs, and eventually found Alibaba's VideoDetext. The results were good enough for the kind of videos I was testing, and running the API directly was relatively inexpensive. The underlying API is fairly developer-oriented, though, so I built a simple web interface around it: Video Text Remover . The current workflow is straightforward: upload a video, let the tool detect the text or select the area you want removed, and process the video. It's definitely not perfect. From my testing, it works much better when the text is over a relatively simple background. When the text overlaps moving objects or detailed backgrounds, the reconstructed area can still look unnatural. I'm also still figuring out what the best approach is for more difficult cases. If you've worked with video inpainting or other text-removal models that handle temporal consistency better, I'd be interested to hear what you've tried. Feedback on the workflow and the output quality would be very useful as well.
产品设计
I Built a Payment Reconciliation System That Broke on Leap Year
Payment reconciliation can look completely reliable until a calendar edge case exposes a hidden...
开源项目
Hello
I don't have a technical tutorial, project announcement, or big lesson to share today. I just wanted...
AI 资讯
I'm Not Done Using AI
I haven't written an article in a while. But nothing gives you more inspiration to write than an opinion you really, really disagree with. In my case it was I'm done using AI article by Brett Codes. Over around 2000 words, the author explains his negative views on AI and why he decided to stop using it . I am really no AI evangelist. I am aware of its limits and its problems and the incompetent people causing more harm than good with it. But I also see the goodies, and I am pretty much convinced author's decision was driven less by rationality and more by the false pride. Let's swallow one bitter, but important pill - no one is paying you solely for being a good developer. You are being paid for delivering a value. And yes - being a good developer greatly contributes towards the ability of delivering apps that work and help businesses yielding the values. And by "work" I mean not only they look good at the first glance, but also being not (too much) buggy, secure and maintainable in the foreseeable future. Therefore, purely vibe-coded projects driven solely by non-IT people often (if not always) fail. Because their authors don't know what it takes and so they cannot prompt their agents to reason and care about it. We devs do. Some of us know more, some of us know less (yet). The "AI is going to replace all programmers" is a lunatic nonsense. But so is rejecting AI and sanctifying "good ol' hand work" . Does anyone seriously think we should reject modern programming languages and revert into writing in assembly or even better directly in binary code? Do you develop in plain text editor without syntax highlighting? Why are you using containers and not building new on-premise servers every time? Whaat? You use frameworks and 3rd party libraries? You don't implement everything from scratch in the vanilla language? Seriously? Why all those abstractions and shortcuts? They make you lazy and they obfuscate the true principles, aren't they? You are a worse developer if you
AI 资讯
Career safety in the Age of AI Layoffs
There is a strange contradiction happening in software engineering right now. A lot of developers are worried that AI is going to make them obsolete. At the same time, the people building the most capable AI coding tools are demonstrating something that should probably make us rethink what being a software engineer actually means. I don't think the future is one where nobody understands software anymore. I think it is one where writing the software becomes dramatically cheaper. And if that happens, the thing that makes an engineer valuable has to move. That is what I mean by career safety. Career safety isn't about making yourself impossible to replace. It is about making your value portable. We've always resisted giving up the code Developers have a long history of being suspicious of abstractions that take work away from us. We went from machine code to assembly, from assembly to higher-level languages, from manually managing memory to garbage collection, from building everything ourselves to libraries and frameworks, and from text editors to IDEs. We even had entire categories of tools, such as CASE tools, designed to automate parts of software development. And every time, there was resistance. Because programmers don't just use code. We build our identities around it. John Carmack captured this unusually well when he wrote: “Coding” was never the source of value, and people shouldn’t get overly attached to it. — John Carmack He followed that with the more important point: Problem solving is the core skill. — John Carmack That is a difficult idea for developers to internalize because coding is tangible. You can point at the repository. You can point at the pull request. You can count the commits. You can say, "I wrote this." But the business doesn't ultimately pay you for the number of lines you wrote. It pays you for what those lines accomplish. The business never really bought the code A company doesn't wake up in the morning thinking: "We need 14,000 more line
AI 资讯
The AI reviewer found a real bug. Its suggested fix would have broken my app.
TL;DR — I put an AI code reviewer on a pull request written by an AI coding agent. On the default setting it found nothing. On the strict setting it found a real vulnerability. And the patch it offered would have quietly broken every negative number in the exported file. I ship small browser tools written by Claude Code, and I am not a good enough reviewer to catch a security bug in code I did not write. That is the awkward kind of gap: the code looks fine, the page works, the tests pass. So I installed CodeRabbit on the repository and gave it something real to read: a CSV export for a pricing calculator. One row per material line, then other costs, total cost, selling price, profit, margin. About sixty lines of vanilla JS. My own checks passed first — a static site audit, plus a headless browser run of the tool, 14 of 14. Round 1: silence No actionable comments were generated in the recent review. That is the default. CodeRabbit ships a review profile called CHILL , tuned not to nag. For a team drowning in review comments that is probably right. For someone who cannot fully audit their own code, silence is the least useful answer available. So I committed a config file: # .coderabbit.yaml reviews : profile : assertive Same commit. Same diff. Same reviewer. Only the setting changed. Round 2: a real bug, checked the hard way The strict pass flagged CSV formula injection (CWE-1236) , and it was right. A spreadsheet treats a cell that begins with = , + , - or @ as a formula. Name a product =1+1 , export it, and the number two appears in the file the other person opens. Pick a nastier formula and it stops being a curiosity. My csvCell() escaped quotes and commas correctly and did nothing at all about this. What surprised me was how it checked. Folded into the comment was a shell command it had actually run against the repo — a ripgrep over every place a product name or unit flows into the exporter — to see whether something upstream already sanitised the value. It did n
AI 资讯
Mastering HRV: Building a Stress Predictor with Random Forest, LSTM, and Wearable Data
Are you pushing your body to the limit or just driving it into the ground? In the world of high-performance athletics and biohacking, Heart Rate Variability (HRV) has become the "North Star" for recovery. But raw numbers from your Garmin or Oura Ring only tell half the story. To truly understand the relationship between sleep quality , exercise load , and stress perception , we need more than a dashboard—we need a predictive pipeline. In this tutorial, we will build a multi-dimensional analysis system using Scikit-learn , LSTM (Keras) , and the Terra API to predict overtraining risks. By the end of this guide, you'll know how to turn messy wearable data into actionable health insights. The Architecture: From Bio-Signals to Insights To handle the complexity of time-series data (HRV) and categorical features (activity types), we use a hybrid approach. We use Random Forest to identify which lifestyle factors impact recovery the most and LSTM to predict future HRV trends based on historical sequences. graph TD A[Garmin / Oura Ring / Apple Watch] -->|Webhook| B(Terra API) B --> C{Data Preprocessing} C -->|Feature Engineering| D[Random Forest Classifier] C -->|Sequence Processing| E[LSTM Neural Network] D -->|Feature Importance| F[Stress Analysis Engine] E -->|Trend Prediction| F F --> G[FastAPI Endpoint] G --> H[End User Dashboard] Prerequisites To follow along, you'll need: Terra API Keys : For unified access to wearable data (Garmin, Oura, etc.). Tech Stack : Python 3.9+, Scikit-learn, Keras/TensorFlow, and FastAPI. The Mindset : A passion for Health Tech and Wearable Data Science . Step 1: Ingesting Data with Terra API Standardizing data across different wearables is a nightmare. The Terra API acts as an abstraction layer, giving us a unified JSON structure for heart rate, sleep, and activity. import requests def get_wearable_data ( user_id , start_date ): # Using Terra API to fetch aggregated daily health data url = f " https://api.tryterra.co/v2/daily?user_id= { use
AI 资讯
How to Show Engineering Ownership When the Repositories Are Private
I have spent more than six years shipping production software and I have no public repositories worth showing you. Everything substantial I have written at work lives in private repositories belonging to the companies I wrote it for, and confidentiality obligations do not lapse when a role ends. So I cannot hand you the code, and I am not going to. That is not caution for its own sake. An engineer who sends a prospective employer another company's source code has told you exactly what they will do with yours. The restraint is part of what you are assessing, and I would want the same restraint applied to my work later. Which leaves a real problem. "I was the principal author of the web application" and "I contributed to the web application" are the same sentence to a reader who cannot check either. Most engineering CVs resolve this by getting louder. I think the only honest resolution is to publish the measurement method rather than the artefact, in enough detail that someone familiar with the tools can judge the figure on its own terms without ever seeing the repository. Here is the method I actually used, what it does badly, and the places where applying it forced me to shrink a claim I would have preferred to keep. Three measurements, in increasing order of rigour All-branch commit count. Total authored activity. Do not use this. It counts abandoned branches, spikes and experiments, and it inflates — usually in favour of whoever is most willing to commit. It is the number that makes contribution graphs look impressive and says the least about a codebase. Production-branch commit count, scoped to tenure. What reached customers, while you were there. Better, because it excludes work that never shipped, and because scoping to tenure stops you either taking credit for years of history that predate you or being penalised for them. But it still counts commits, and a commit is a unit of activity, not a unit of code. Commit share rewards granular committers and punishes p
AI 资讯
The Spec Is the Fast Path
The standard objection to writing the design down is that it is what you give up in exchange for speed. Early-stage companies are meant to be the place where you skip it: no specifications, no plans, just build the thing and find out. Documentation is treated as a tax that mature organisations can afford and small ones cannot. I have worked the other way round, and I want to make the argument properly rather than just assert it. At Cendra , across a twelve-month tenure as one of two founding engineers, the work produced 255 design specifications, 207 implementation plans and 17 production runbooks. Over the same period: 377 production releases coordinated across four repositories, and 482 merge commits across those repositories (an all-merges count, broader than the frontend-only first-parent integration figure on the Cendra page), across 239 active development days. That release figure works out at roughly one every twenty-two hours. All of those figures are tenure-scoped, and self-measured against private repositories while I held authorised access to them, which is a caveat I will come back to. But the shape is the point: the documents and the shipping happened together, at the same time, by the same person. What I am not claiming I cannot prove the specifications caused the cadence. There is no control group. It is entirely possible to imagine a version of that year with no documents and more releases, and I have no way to rule it out. What I can do is describe precisely what the artefacts removed from the critical path, and let you judge whether that is worth the hours. The mechanism matters more than the correlation, because the mechanism is the part that transfers to your codebase rather than mine. The specification is a comprehension test I administer to myself The honest reason I write a design down before building it is not communication. It is that writing it is how I find out whether I actually understand the problem. There is a specific and reliable exp
AI 资讯
AI Made Our English Better… But Did It Make Us Sound Less Like Ourselves? 🎤
I've been thinking about something that is becoming pretty common among developers.🤔 A lot of us...