I found a bug in my own logger that had been there since day one. A single typo — `fileProecssing` instead of `fileProcessing` — meant the queue processor was never properly re-armed after completing a batch. The fix was one word. The impact was that every benchmark I had ever run was measured against a crippled version of my own software. After fixing it (1.0.2), I kept going. Switched the serializer from string concatenation to an array join pattern (1.0.3). The result: ✅ Up to 62% less memory at 1M logs ✅ Up to 23% less CPU across the board ✅ Throughput maintained or improved Sometimes the best performance optimization is just fixing what was broken. Silo v1.0.3 is live now on npm — a zero-dependency, self-hosted, privacy-first Node.js logging library. npm install @flowrdesk/silo #nodejs #javascript #opensource #logging #flowrdesk
Fixing a bug in Silo logging library boosts performance
More Relevant Posts
-
For developers who use Codex or Claude Code: you can make a Cursor-inspired debug mode skill for frontend development so whenever you have a bug, you ask it to use that skill, which will automatically boot up a temporary dev server and add http requests to send console logs to the dev server while you manually reproduce the issue, and try and fix it in a loop Human in the Loop. https://lnkd.in/e4ksejfz
To view or add a comment, sign in
-
Big move for the future of Node.js 👇🏼 Michaël Zasso landed the V8 14.6 upgrade in upstream Node — coming in Node v26. And with it: → Temporal (Stage 4), now available unflagged This is bigger than it looks. Time handling has historically been one of the most error-prone areas in JavaScript — time zones, parsing inconsistencies, edge cases in production… Temporal is a fundamental step toward fixing that at the language level. And now it’s becoming part of the default Node.js runtime experience. These are the kinds of changes that quietly reshape production systems. 👏🏼 Credit to Michaël Zasso for the work 📣 Shared via Rob Palmer Source: https://lnkd.in/gbsdpiCq https://lnkd.in/gF84q7PH
To view or add a comment, sign in
-
Claude Code was reading 27,000 files to review a Next.js PR. A knowledge graph cut that to 15 files. 49x fewer tokens. Better review quality. How? Tree-sitter parses your codebase into an AST — extracting every function, class, and their relationships (CALLS, IMPORTS_FROM, INHERITS, TESTED_BY). When you change login() in auth.py, a BFS blast-radius trace answers: → What does it call? (forward) → What calls it? (backward) → Which tests cover it? Claude reads those 5 files. The other 27,000? Skipped. SQLite stores the graph locally. Incremental updates via git hooks keep it live in <2 seconds. Less noise → Claude focuses → better reviews. Open source: pip install code-review-graph (Credit: Tirth Kanani — full writeup in comments) #LLM #AIEngineering #ClaudeCode #DevTools
To view or add a comment, sign in
-
Authentication: Backend - one method 😁, Frontend - [at least] two files with code and logic (.tsx and xxxSlice.ts) but Backend is more valuable 😁
To view or add a comment, sign in
-
I just shipped my first npm package. 🚀 glowlog — a zero-dependency logger that replaces 6 packages with 1. The problem: Every Node.js project I built needed Winston + pino-pretty + morgan + daily-rotate-file + redaction + correlation IDs. That's 6 installs for one feature. So I fixed it. glowlog gives you: ✅ Beautiful box-style colored terminal logs ✅ Auto file:line detection on every log ✅ Auto-redaction (passwords, tokens, API keys) ✅ Request ID threading — no setup needed ✅ File rotation built-in ✅ HTTP middleware for Express / NestJS ✅ Browser support — same import, CSS-styled console ✅ Zero dependencies One install: npm install glowlog This is v1 — it works, but it can be better. Bugs, issues, ideas, PRs — all welcome. That's the whole point of open source. Link in comments 👇 #nodejs #npm #opensource #javascript #developer #nestjs
To view or add a comment, sign in
-
🌐 HTTP Status Codes Every Developer Should Know We use APIs every day. But understanding what the server is actually telling you makes debugging 10x easier. ✅ Success (2xx) 200 → Everything worked 201 → Resource created 202 → Accepted (processing later) 🔁 Redirection (3xx) 301 → Moved permanently 302 → Temporary redirect 304 → Not modified (cache hit) ⚠️ Client Errors (4xx) 400 → Bad request 401 → Unauthorized 403 → Forbidden 404 → Not found 405 → Method not allowed 408 → Request timeout 👉 Usually means something is wrong from the client side 💥 Server Errors (5xx) 500 → Internal server error 501 → Not implemented 502 → Bad gateway 503 → Service unavailable 504 → Gateway timeout 👉 Usually means something broke on the server 🧠 Real takeaway Good developers don’t just write code. They understand responses, failures, and behavior. Because most bugs are not in your UI… they’re in how systems communicate. #WebDevelopment #FrontendDeveloper #BackendDevelopment #SoftwareEngineering #APIs #JavaScript #CodingTips #DeveloperLife #TechLearning #LearningInPublic
To view or add a comment, sign in
-
-
Are you using Angular's bypassSecurityTrust* methods? If untrusted user input flows into bypassSecurityTrustHtml(), bypassSecurityTrustUrl(), or similar functions, you've got a critical XSS vulnerability waiting to happen. Scan your codebase for this pattern using semgrep rules `semgrep scan --config angular-domsanitizer.yaml src/` 👉https://lnkd.in/gCjrBTjj
To view or add a comment, sign in
-
-
𝗡𝗼𝗱𝗲.𝗷𝘀 𝐓𝐨𝐩𝐢𝐜 𝟐: 𝐓𝐡𝐞 𝐓𝐡𝐫𝐞𝐚𝐝 𝐏𝐨𝐨𝐥 Under the hood, libuv maintains a pool of 4 threads (by default) that runs in parallel with your JavaScript. Every time you call certain Node.js APIs, the work is offloaded to this pool - silently, invisibly. 📂 What goes to the thread pool: ➡️ fs.readFile / fs.writeFile — all file system operations ➡️ crypto.pbkdf2, crypto.randomBytes, crypto.scrypt ➡️ dns.lookup (not dns.resolve — that uses the network directly) ➡️ zlib compression and decompression What goes directly to the OS kernel, bypassing the pool entirely: ➡️ TCP / UDP sockets ➡️ HTTP / HTTPS requests ➡️ Unix pipes ❗𝘛𝘩𝘦 𝘱𝘳𝘰𝘥𝘶𝘤𝘵𝘪𝘰𝘯 𝘣𝘶𝘨 Default pool size: 4 threads. If your server receives 8 simultaneous requests that each call crypto.pbkdf2 (common in authentication flows), 4 of them will wait - blocked - until a thread is free. Your Event Loop stays responsive. But your response times double. This is invisible in development. It surfaces under load in production. 💡𝐓𝐡𝐞 𝐅𝐢𝐱: Set this before your process starts: UV_THREADPOOL_SIZE=8 The maximum is 1024. The right value depends on your workload - profile before guessing. Node.js is single-threaded where it matters - your JavaScript. But the infrastructure running beneath it is not. Knowing the boundary between the two is what separates application developers from systems developers. #nodejs #javascript #backend #performance #softwaredevelopment #systemdesign
To view or add a comment, sign in
-
-
Anthropic had a mistake. They leaked 512,000 lines of their code. It was not a hacker or a cyberattack. One line missing in a config file caused the problem. Their Claude Code is built using Bun. Bun creates .map files, by default. Someone forgot to add *.map to. npmignore before publishing to npm. That was the reason. A 59.8 MB source map file became public. It had 1,900 files and 512k lines of TypeScript. Anyone could download it and thousands did. One wrong config line caused a security incident. If you publish npm packages do this now. Add these to your.npmignore. *.Map .env /src /test *.log Use "files" in package. json to choose what you want to share. #Java #JavaScript #NPM #SoftwareEngineering #BackendDevelopment #CleanCode #DevSecOps #TechAlert #DeveloperLife #LearnFromMistakes #FullStackDeveloper #JavaDeveloper
To view or add a comment, sign in
-
-
Ever forget to close database connections or release file handles? 🤔 TypeScript 5.2's `using` declarations solve this with automatic resource cleanup at scope exit. The problem: Manual cleanup with try/finally blocks is error-prone and verbose. The solution: `using` declarations automatically call `Symbol.dispose()` when variables go out of scope. Key benefits: → Eliminates try/finally boilerplate → Guaranteed cleanup even with exceptions → Works with both sync and async resources → Type-safe with `Disposable` interface Perfect for database connections, file handles, network sockets, or any resource needing cleanup. What's the most resource-intensive operation in your codebase that could benefit from automatic cleanup? #TypeScript #JavaScript #CleanCode #ResourceManagement #WebDevelopment
To view or add a comment, sign in
-
Explore content categories
- Career
- Productivity
- Finance
- Soft Skills & Emotional Intelligence
- Project Management
- Education
- Technology
- Leadership
- Ecommerce
- User Experience
- Recruitment & HR
- Customer Experience
- Real Estate
- Marketing
- Sales
- Retail & Merchandising
- Science
- Supply Chain Management
- Future Of Work
- Consulting
- Writing
- Economics
- Artificial Intelligence
- Employee Experience
- Workplace Trends
- Fundraising
- Networking
- Corporate Social Responsibility
- Negotiation
- Communication
- Engineering
- Hospitality & Tourism
- Business Strategy
- Change Management
- Organizational Culture
- Design
- Innovation
- Event Planning
- Training & Development