"Best practices" kill thinking faster than bad code. Bad code is visible. You see it, you fix it. "Best practices" are invisible. They replace thinking with compliance - and nobody questions compliance. I've seen engineers spend 3 days setting up the "correct" micro-frontend architecture for a feature that needed 4 hours and a single component. Because the team had a standard. Because the docs said so. Because that's how it's done here. The feature shipped late. The architecture was pristine. Here's what nobody tells you: Best practices are answers to questions you haven't asked yet. They were born in a specific context, at a specific scale, solving a specific problem. When you apply them without understanding that context - you're not engineering. You're cargo-culting. The patterns that became dogma in my career: → "Always lift state up" - until you have 47 props drilling through 8 components → "Never mutate state directly" - except in the performance-critical loop where you absolutely should → "Separate concerns" - until your "clean" abstraction makes a 2-line bug take 2 hours to trace Every one of these is true. In context. Applied blindly, they become the reason the codebase is elegant and the product is slow. The engineers I respect most don't follow best practices. They understand the tradeoffs behind them - and make a deliberate choice every time. That's the difference between a craftsman and a rule-follower. Bad code can be refactored. Thinking that outsourced itself to a style guide is much harder to recover. What "best practice" have you broken - and it turned out to be the right call? #Frontend #SoftwareEngineering #WebDevelopment #TechLeadership #Programming
Breaking Best Practices in Software Engineering
More Relevant Posts
-
Nobody is saying this; but copying and pasting over time can make a good engineer rusty. Every line of code typed, every syntax; makes you think and control AI better. Type a little code today, just for your brain. #AI #SoftwareEngineering #FutureOfWork #TheModelAndTheMaster #TechLeadership
Write more code that you'll throw away. Most engineers are afraid of writing "wasted" code. They plan for hours. They design for days. They want every line to be permanent. But some of the best code I've ever written was code I deleted the next morning. A quick prototype that proved an idea was wrong? That saved my team 3 months. A rough script that showed a design flaw early? That saved a whole project. Throwaway code is not wasted code. It's cheap learning. The engineers who are afraid to write code they'll delete are the same ones who spend 6 months building the wrong thing. Write fast. Learn fast. Delete fast. Repeat.
To view or add a comment, sign in
-
-
The most expensive line of code is the one you wrote to solve a problem you didn't actually have. It happens constantly. A feature gets scoped, someone on the team starts thinking about edge cases that haven't materialized yet, and suddenly the implementation is three times more complex than the problem requires. It feels responsible. It's usually not. Over-engineering slows you down in ways that are hard to measure. It adds surface area for bugs. It makes the codebase harder for the next person to understand. And more often than not, the future scenario you were designing for never arrives or arrives in a completely different shape than you expected. Solve the problem in front of you. Leave the code clean enough to extend later. Refactor when the new requirements actually show up, because by then you'll know what they actually are. #SoftwareEngineering #Engineering #Backend
To view or add a comment, sign in
-
-
Our repo used to follow an atomic structure, organizing components into atoms, molecules, organisms, templates, and pages. It sounded great in theory. But in practice, we were always asking: Should this component go in atoms or molecules? Where exactly does this belong? It quickly became overhead—and didn’t make working on a specific tool or page any easier. Finding components was still a hassle. Then we realized we needed a simpler, documented folder structure: Tool └── Pages └── Components After standardizing: * Components are easy to locate * Each tool’s code is organized and separated * Modifications are targeted, avoiding overlap with other components, pages, or tools * Pull request reviews are clearer, showing exactly which files changed * Refactoring is controlled and confident A small change, with a big impact. But we doesn't stop restructuring the folder we also document it for future developers who will maintain it https://lnkd.in/gxrMemcT
To view or add a comment, sign in
-
🚨 Controversial opinion: Clean code is overrated. Before you attack me in the comments, hear me out 👇 A lot of developers spend hours making code look “perfect”: • fancy folder structures • over-abstracted components • design patterns everywhere • code that looks great in reviews But sometimes… it slows down delivery. I’ve seen simple, readable, working code create more business impact than “architecturally beautiful” code. Don’t get me wrong — code quality matters. But the goal is not to impress developers. The goal is to solve problems. 💡 Great engineering is about balance: ⚡ readability ⚡ scalability ⚡ speed to ship ⚡ maintainability Sometimes the best solution is not the prettiest one. It’s the one that gets the product moving. What’s your take? Would you choose perfect code or faster delivery? #SoftwareEngineering #CleanCode #Programming #Developers #Tech #SystemDesign #BuildInPublic
To view or add a comment, sign in
-
Most developers don’t fail because of bad code. They fail because of bad decisions. Not everything needs: microservices 10 design patterns perfect architecture Sometimes you just need: simple code clear logic something that works I’ve seen this many times: A small project gets overengineered from day one. Layers on layers. Abstractions everywhere. Nothing ships. And the irony? The project dies before scaling even becomes a problem. Good developers don’t chase “best practices”. They understand when to use them. Best practices are tools. Not rules. Use them when: the problem actually requires it the team can maintain it the complexity is justified Otherwise? Keep it simple. Ship it. You can always improve later. You can’t fix something that was never built. Have you ever overengineered something? #Laravel #Programming #WebDevelopment #Backend #SoftwareEngineering
To view or add a comment, sign in
-
-
🧼 Clean Code Best Practices Every Developer Should Follow Writing clean code is not just about making things work—it’s about making them readable, maintainable, and scalable. Clean code helps teams collaborate better and reduces long-term technical debt. 🚀 What is Clean Code? Clean Code refers to code that is easy to understand, simple to modify, and follows consistent standards. It focuses on clarity, structure, and efficiency rather than complexity. 💡 Why it matters • Improves readability for you and your team • Reduces bugs and unexpected behavior • Makes maintenance faster and easier • Enhances scalability of applications 🧠 Core Principles of Clean Code • Simplicity (KISS) – Keep logic straightforward and avoid over-engineering • Single Responsibility – Each function/class should do one thing well • DRY (Don’t Repeat Yourself) – Avoid code duplication • Meaningful Naming – Use clear and descriptive variable/function names 🛠️ Best Practices to Follow • Use Clear Naming – Bad: x, data1 Good: userEmail, totalPrice • Write Small Functions – Keep functions focused and under control Each function should solve a single problem • Consistent Formatting – Follow proper indentation and spacing Use linters and formatters • Avoid Deep Nesting – Use early returns to simplify logic Reduce complexity in conditions • Comment Smartly – Explain why, not what Avoid unnecessary comments ⚙️ Code Structure Tips • Organize files using a logical folder structure • Separate business logic from UI • Use modular architecture • Maintain consistent coding standards across the project 🔍 Common Mistakes to Avoid • Overcomplicating simple logic • Using vague variable names • Writing long, unreadable functions • Ignoring code reviews • Skipping proper error handling 🌐 Final Thoughts Clean code is a long-term investment. Developers who focus on clarity and structure create systems that are easier to scale and maintain. Prioritize readability over cleverness to write truly professional code. — Muhammad Shahid Latif #CleanCode #WebDevelopment #Programming #SoftwareEngineering #BestPractices
To view or add a comment, sign in
-
-
Most engineers are using Claude Code at about 10% of its actual capability. Not because they're lazy. Because they fundamentally misunderstand what it is. Claude Code is not "Claude in your terminal." It's a full agent runtime — built with Bun, TypeScript, and React — with a tool system, a permission engine, a multi-agent coordinator, a memory system, and an MCP client/server layer, all wired into a single execution pipeline. When you understand that, everything changes about how you architect workflows around it. Here's what shifted my thinking: The memory system isn't a convenience feature. It's an operating context layer. The CLAUDE.md file gets injected at the start of every single session. That means it's not documentation — it's the agent's standing instructions. I treat mine like an SLA with the system: 1. Stack conventions and hard constraints 2. What never gets touched without explicit approval 3. How the project is structured and why Short. Opinionated. Surgical. The other thing most people miss: the permission system is why Claude Code feels slow, not the model. You can set wildcard rules — Bash(git *), FileEdit(/src/*) — so it stops asking for approval on things you do a hundred times a day. That's what unlocks actual autonomous execution. And the architecture is clearly built for decomposition, not monolithic prompts. One agent exploring the codebase. One implementing. One validating. That's not a future roadmap item — the coordinator subsystem is already in the source. The shift in mindset I'd push on: Stop thinking about Claude Code as a tool you prompt. Start thinking about it as infrastructure you configure. The engineers getting the most leverage aren't writing better prompts. They're designing a better operating environment — permissions, memory, MCP integrations, task decomposition, context hygiene. That's the architectural layer most people never touch. What's the first thing you'd configure if you were setting this up for a production engineering team? #Claude #Code #Anthropic #Agentic #AIEngineering #EngineeringWorkflows
To view or add a comment, sign in
-
-
Clean code isn’t just about how it looks today — it’s about how it behaves tomorrow. I once heard someone say: “Don’t write code in one line just because it looks clever.” That stuck with me. Readable, scalable, and maintainable code will always outlive “smart” shortcuts. What feels elegant in the moment can quickly become a bottleneck when the system grows or when another developer (or even your future self) has to work on it. Good engineering is less about impressing and more about sustaining: Write for clarity, not cleverness Design for change, not just completion Optimize for teams, not individuals Because in the long run, code isn’t judged by how concise it is — but by how well it adapts. #SoftwareEngineering #CleanCode #Scalability #Maintainability
To view or add a comment, sign in
-
Described a product idea out loud. Got back a scoped Linear ticket that already knew the codebase. I wired GitHub, Linear and Claude Cowork together last week as I wanted to see how the three of them would work together. So I described a feature I'd been mulling over. No PRD or extensive planning, just thinking out loud into a chat window. Cowork read the repo, worked out where the new thing would slot in architecturally, then searched Linear and surfaced two tickets that touched the same area. Neither was what I wanted so it drafted a new one and attached it to the existing two noting dependencies. Scoped, with architectural context baked in and acceptance criteria an engineer could execute without a single follow-up question. The bit doing most of the work is a linear-rules-of-engagement .md file sitting in the project folder. It sets the bar for what a ticket has to contain before it's allowed to open: the shape of the change, where it touches the stack, scope boundaries, and what "done" looks like. Before that file the output was very incredibly inconsistent. With it, I get tickets that look like someone senior wrote them after a long think. The file's also self-improving. One of the rules tells Cowork to watch for process failures or small improvements and ask whether the fix should become a new rule. Every session it catches something. The file grows, and the output quality with it. I used to spend an evening turning a half-formed idea into something that could actually be executed. Now the half-formed idea is the input. I'm still reviewing everything before it reaches execution, but the starting point doesn't feel like a blank page anymore.
To view or add a comment, sign in
-
-
Stop settling for code that "just works." 🛑 In junior-level engineering, "it works" is the finish line. In senior-level engineering, "it works" is just the entry fee. The most expensive code isn't the code that fails. It’s the code that works today but breaks silently tomorrow. When I’m reviewing a PR, I’m looking for the "Four Pillars of Craftsmanship": ✅ Correctness > Convenience If your logic handles the "happy path" but swallows exceptions or ignores race conditions, it’s not done. If "Future Me" can break your code in five minutes, we shouldn't merge it. ✅ Readability is a Feature Code should explain the Why, not just the What. I'm looking for single-responsibility methods and naming that doesn't require a secret decoder ring. Technical debt starts with "magic numbers" and tribal knowledge. ✅ The Hidden Cost of Performance Small choices compound. ► Are we using @Transactional where it’s not needed? ► Is an N+1 query lurking behind that ORM lazy load? ► Are we over-allocating memory for a simple list? ✅ Test Rigor If your test passes but doesn't actually verify behavior, it's just decorative. I’m looking for edge cases and real-world regressions, not just green checkmarks and high coverage percentages. Code review isn't bureaucracy—it’s engineering craft. 🛠️ When we treat reviews as a mentorship opportunity rather than a chore, we don't just ship better systems; we build better engineers. How does your team handle CRs? Is "it works" still the gold standard, or are you pushing for more? Let’s talk in the comments. 👇 #SoftwareEngineering #CodeReview #CleanCode #Programming #TechLeadership
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