Forget about unit tests.
Here's the best type of test to write.
I used to believe this for many years:
- Unit testing for the domain entities and services
- Integration testing for the application use cases
After writing thousands of tests, I no longer believe this to be the best way.
The highest ROI approach is integration testing with real services.
If you can run external services in Docker, use Testcontainers.
If not, create separate service instances you can use for testing.
This will also work in CI pipelines, so even faster feedback loop.
If you can write end-to-end tests, even better.
I'm not saying unit tests are bad.
But you get better ROI with integration testing.
What do you think about this idea?
Someone built a free collection of production-grade engineering skills that teaches your AI coding agent to work exactly like a senior engineer.
It's called agent-skills. 60,800+ stars on GitHub.
You drop it into Claude Code, Codex, Cursor, or Gemini CLI.
Here's what it does:
→ `/spec` forces the agent to define what to build before touching code. Spec before code. Every time.
→ `/plan` breaks the spec into small, atomic tasks. No giant PRs. No mystery diffs.
→ `/build` implements one slice at a time. Each task is test-driven and committed individually.
→ `/build auto` generates the plan and runs every task in a single approved pass. You approve once. It executes autonomously. Pauses on failures or risky steps.
→ `/test` proves the code works. Tests are treated as proof, not afterthought.
→ `/review` enforces code health before merge. A real quality gate, not a vibe check.
→ `/code-simplify` rewrites for clarity over cleverness. Kills the clever nonsense your agent wrote at 2am.
→ `/ship` runs the full production checklist. Faster is safer only when nothing is skipped.
→ Skills activate automatically based on context. Building an API triggers `api-and-interface-design`. Building UI triggers `frontend-ui-engineering`. No manual configuration.
100% Open Source.
Github repo link: https://t.co/DUlNIoUr7u
This repo contains 20+ tools that auto-generate Kubernetes architecture diagrams from manifests, Helm charts, or cluster state
➜ https://t.co/FOlCrjSm5C
Is the Specification Pattern overkill?
Built it from scratch in C#. The surprise: it makes your EF Core SQL parameterized for free.
For fixed rules? A lot of classes for little payoff.
When it's worth it + a simpler alternative: https://t.co/kDMm21aZ7s
Retool's new AI app builder impressed me, so here's what it actually does.
I gave it one prompt and pointed it at my production Postgres database. It built a working React CMS for my coding puzzles: searchable table, filters, stats cards, and a slide-out editor.
Claude Code creator:
"100% of our pull requests at Anrtopic are run by Claude Code. 80–90% of code review too.
The feature I’m using the most today is /loops. I’m not prompting Claude anymore - I’m building loops"
in 1-hour interview, Boris reveals his setup, which helps him build the #1 coding tool of this year.
Worth more than a $500 vibe-coding course.
I burned 7,000 GitHub Copilot credits in one afternoon. Same prompt, same model in Claude Code: faster, and way more usage per dollar.
Full breakdown: https://t.co/f0OwG3v5HA
Anthropic engineer:
"You're not supposed to prompt Claude. You're supposed to build a system that prompts itself."
this is one of the best workflows I've seen in a long time
in this video she breaks down exactly how most people are using Claude:
- the 24% you lose to CLAUDE.md before typing a word
- the plugins that 95% of users have never installed
- the workflows that run without you typing a single prompt
- why typing one prompt and closing the tab is leaving 90% on the table
if you've been using Claude for months and still start every session from scratch, you have at least 28 untouched features. probably 30
instead of another show tonight, watch this
make sure to bookmark it before it gets lost in your feed
full guide in the article below
One feature should not make you open six folders.
Imagine adding an "export user data" feature.
You need an endpoint.
A request model.
Validation.
Business logic.
Database access.
Email and file storage calls.
In a layered project, that work is often spread across the whole solution.
The code may be clean.
But the feature is hard to follow.
Vertical Slice Architecture takes a simpler path:
Keep the code for a feature together.
Instead of looking through controllers, services, models, and validators, you open one feature folder and see the whole flow.
That does not mean everything belongs in one file.
And it does not mean shared services disappear.
Email sending, cloud storage, and other shared parts can still be reused.
The key idea is this:
Code that changes together should be easy to find together.
You also do not need to rebuild your whole app to try this.
Start with the next feature you add.
Then see how much easier it is to understand and change later.
Maybe the problem is not that your codebase is too large.
Maybe one change is spread across too many places.
Here’s a simple .NET example of how to fix that:
https://t.co/blTRmbKFsU
Most developers misunderstand DRY
They think it's about removing duplicate code.
It's not.
DRY is about duplicated knowledge, not the code.
Duplicate code is only a symptom.
The real problem is duplicated business rules hiding across the system.
When the same rule lives in five places, change becomes dangerous.
You fix one place and forget the other four.
Here is where most teams get it wrong:
❌ They extract shared helpers too early.
❌ They create generic utilities that are hard to maintain
❌ They couple unrelated features just to reduce duplication.
This actually makes the code worse.
Sometimes duplication is fine.
If two pieces of code change for different reasons, keep them separate.
This follows Single Responsibility better than forced reuse.
DRY is violated only when the same reason to change exists in multiple places.
Examples of real DRY violations:
→ Validation rules copied across controllers
→ Pricing logic repeated in services and background jobs
→ Authorization checks duplicated across different layers
Examples that are usually fine:
→ Similar loops doing different jobs
→ Repeated mappings near their usage
→ Small duplicated database query logic
Treating DRY in the wrong way leads to "enteprisy" code:
- Too complex code to understand, too many abstractions
If you have the same EF Core query (in 2 lines of code) present in 2 different classes, it's fine; you don't need a repository for this.
Here is how I apply DRY:
If I need to duplicate some logic in a third place, it's a sign that I should extract it elsewhere. Before that - no premature refactorings.
Next time you see duplication, ask one question first:
"Is this the same knowledge, or just similar code?"
That question changes how you design software.
What is one place where DRY caused more harm than good in your project?
——
♻️ Repost to help others understand DRY Principle
➕ Follow me ( @AntonMartyniuk ) to improve your .NET and Architecture Skills
xpdig is a terminal UI for exploring Crossplane traces like k9s, so you can inspect object trees, watch changes, and run kubectl actions while debugging composed resources
➤ https://t.co/kqbirnhsQz
Crossview is a React-based dashboard for managing and monitoring Crossplane resources in Kubernetes with features like:
- resource visualization,
- search capabilities,
- SSO support,
- and deployment via Helm or Kubernetes manifests
➤ https://t.co/qq9DQMi3Fq
the engineer who built Claude Code just dropped a 28-minute video on how to write prompts that actually work
I've seen $300 courses that don't cover what he shows in the first 10 minutes
CLAUDE.md files, memory shortcuts, parallel sessions, prompting patterns
all in one video and completely free
works whether you're a developer, a beginner, or someone who's been using Claude for months
based on this, I put together below guide you can read and implement in Claude today
Here's how I implement CQRS in my applications.
The CQRS pattern is actually simple.
I organize my application around use cases.
Use cases represent a feature (functionality) in your application:
- Get the current user's details
- Add an item to the shopping cart
- Refund the payment for an order
So you can think of a use case as a business capability.
I structure my code around a single use case (feature).
There are two types of use cases:
- Commands → business logic, database write, trigger side effects
- Queries → return the required data representation for the UI
If you think it should be more complex than this, you're overengineering it.
What do you think about applying CQRS?
P.S. No - you don't need event sourcing or a separate database.
Anthropic engineer:
"You're not supposed to prompt Claude. You're supposed to build a system that prompts itself."
this is one of the best workflows I've seen in a long time
in this video she breaks down exactly how most people are using Claude:
- the 14% you lose to CLAUDE.md before typing a word
- the architecture that spawns 300 agents from a single prompt
- the server-side loop that stops agents from dying on refresh
- the daily workflows Anthropic's own engineers automated first
if you've been using Claude for months and still start every session from scratch, you have at least 28 untouched features. probably 30
instead of another show tonight, watch this
make sure to bookmark it before it gets lost in your feed
full guide in the article below