Sr. Content Developer at Microsoft, working remotely in PA, TechBash conference organizer, former Microsoft MVP, Husband, Dad and Geek.
153211 stories
·
33 followers

X copies Bluesky with a ‘Starterpacks’ feature that helps you find who to follow

1 Share
X says the new feature, similar to Bluesky's Starter Packs, will arrive in the coming weeks.
Read the whole story
alvinashcraft
20 minutes ago
reply
Pennsylvania, USA
Share this story
Delete

Best Places to Work in Tech 2026: The Companies Employees Trust Most

1 Share

Glassdoor’s 2026 list of best places to work reveals that the winners are employee-centric, and the number of tech companies declined slightly.

The post Best Places to Work in Tech 2026: The Companies Employees Trust Most appeared first on TechRepublic.

Read the whole story
alvinashcraft
21 minutes ago
reply
Pennsylvania, USA
Share this story
Delete

Enabling autonomous agents with environment virtualization

1 Share
"Enabling autonomous agents with environment virtualization" featured image

I have spent the last year watching the AI conversation shift from smart autocomplete to autonomous contribution. When I test tools like Claude Code or GitHub Copilot Workspace, I am no longer just seeing code suggestions. I am watching them solve tickets and refactor entire modules.

The promise is seductive. I imagine assigning a complex task and returning to merged work. But while these agents generate code in seconds, I have discovered that code verification is the new bottleneck.

For agents to be force multipliers, they cannot rely on humans to validate every step. If I have to debug every intermediate state, my productivity gains evaporate. To achieve 10 times the impact, we must transition to an agent-driven loop where humans provide intent while agents handle implementation and integration.

The code generation feedback loop crisis

Consider a scenario where an agent is tasked with updating a deprecated API endpoint in a user service. The agent parses the codebase, identifies the relevant files, and generates syntactically correct code. It may even generate a unit test that passes within the limited context of that specific repository.

However, problems emerge when code interacts with the broader system. A change might break a contract with a downstream payment gateway or an upstream authentication service. If the agent cannot see this failure, it assumes the task is complete and opens a pull request.

The burden then falls on human developers. They have to pull down the agent’s branch, spin up a local environment, or wait for a slow staging build to finish, only to discover the integration error. The developer pastes the error log back into the chat window and asks the agent to try again. This ping-pong effect destroys velocity.

Boris Cherny, creator of Claude Code, has noted the necessity of closed-loop systems for agents to be effective. An agent is only as capable as its ability to observe the consequences of its actions. Without a feedback loop that includes real runtime data, an agent is building in the dark.

In cloud native development, unit tests and mocks are insufficient for this feedback. In a microservices architecture, correctness is a function of the broader ecosystem.

Code that passes a unit test is merely a suggestion that it might work. True verification requires the code to run against real dependencies, real network latency, and real data schemas. For an agent to iterate autonomously, it needs access to runtime reality.

Diagram of a failed code test

Source: Signadot.

The requirement: Realistic runtime environments at scale

In a recent blog post, “Effective harnesses for long-running agents,” Anthropic’s engineering team argued that an agent’s performance is strictly limited by the quality of its harness. If the harness provides slow or inaccurate feedback, the agent cannot learn or correct itself.

This presents a massive infrastructure challenge for engineering leadership. In a large organization, you might deploy 100 autonomous agents to tackle backlog tasks simultaneously. To support this, you effectively need 100 distinct staging environments.

The traditional approach to this problem fails at scale. Spinning up full Kubernetes namespaces or ephemeral clusters for every task is cost-prohibitive and slow. Provisioning a full cluster with 50 or more microservices, databases, and message queues can take 15 minutes or more. This latency is fatal for an AI workflow. Large language models (LLMs) operate on a timescale of seconds.

We are left with a fundamental conflict. We need production-like fidelity to ensure reliability, but we cannot afford the production-level overhead for every agentic task. We need a way to verify code that is fast, cheap, and accurate.

The solution: Environment virtualization

The answer lies in decoupling the environment from the underlying infrastructure. This concept is known as environment virtualization.

Environment virtualization allows the creation of lightweight and ephemeral sandboxes within a shared Kubernetes cluster. In this model, a baseline environment runs the stable versions of all services. When an agent proposes a change to a specific service, such as the user service mentioned earlier, it does not clone the entire cluster. Instead, it spins up only the modified workload containing the agent’s new code as a shadow deployment.

The environment then utilizes dynamic traffic routing to create the illusion of a dedicated environment. It employs context propagation headers to route specific requests to the agent’s sandbox. If a request carries a specific routing key associated with the agent’s task, the service mesh or ingress controller directs that request to the shadow deployment. All other downstream calls fall back to the stable baseline services.

This architecture solves the agent-environment fit in three specific ways:

  1. Speed: Because a single container or pod is launching, rather than a full cluster, sandboxes spin up in seconds.
  2. Cost: The infrastructure footprint is minimal. You are not paying for idle databases or duplicate copies of stable services.
  3. Fidelity: Agents test against real dependencies and valid data rather than stubs. The modified service interacts with the actual payment gateways and databases in the baseline.

The seamless verification workflow for AI agents

The mechanics of this verification loop rely on precise context propagation, typically handled through standard tracing headers like OpenTelemetry baggage.

When an agent works on a task, its environment is virtually mapped to the remote Kubernetes cluster. This setup supports conflict-free parallelism. Multiple agents can simultaneously work on the same microservice in different sandboxes without collision because routing is determined by unique headers attached to test traffic.

Here is the autonomous workflow for an agent refactoring a microservice:

  1. Generation: The agent analyzes a ticket and generates a code fix with local static analysis. At this stage, the code is theoretical.
  2. Instantiation: The agent triggers a sandbox via the Model Context Protocol (MCP) server. This deploys only the modified workload alongside the running baseline in seconds.
  3. Verification: The agent runs integration tests against the cluster using a specific routing header. Requests route to the modified service while dependencies fall back to the baseline.
  4. Feedback: If the change breaks a downstream contract, the baseline service returns a real runtime error (e.g., 400 Bad Request). The agent captures this actual exception rather than relying on a mock.
  5. Iteration: The agent analyzes the error, refines the code to fix the integration failure, and updates the sandbox instantly. It runs the test again to confirm the fix works in the real environment.
  6. Submission: Once tests pass, the agent submits a verified pull request (PR). The human reviewer receives a sandbox link to interact with the running code immediately, bypassing local setup.
Diagram of an autonomous workflow for an agent refactoring a microservice

Source: Signadot.

Why engineering’s future is autonomous

As we scale the use of AI agents, the bottleneck moves from the keyboard to the infrastructure. If we treat agents as faster typists but force them to wait for slow legacy CI/CD pipelines, we gain nothing. We simply build a longer queue of unverified pull requests.

To move toward a truly autonomous engineering workforce, we must give agents the ability to see. They need to see how their code performs in the real world rather than just in a text editor. They need to experience the friction of deployment and the reality of network calls. This is Signadot’s approach.

Environment virtualization is shifting from a tool for developer experience to foundational infrastructure. By closing the loop, agents can do the messy and iterative work of integration. This leaves architects and engineers free to focus on system design, high-level intent, and the creative aspects of building software.

The post Enabling autonomous agents with environment virtualization appeared first on The New Stack.

Read the whole story
alvinashcraft
21 minutes ago
reply
Pennsylvania, USA
Share this story
Delete

Practical Ways AI Can Help You Today with Minimal Setup

1 Share

There is a lot of hype around AI right now, and I was a skeptic for a long time as many close friends know. In the past it required precise prompts that were long-winded, and even then you didn’t always get the result you wanted. During my early attempts I found that I could often just do the task manually faster than I could with AI. But I have been periodically trying new techniques and watching what others do. Recently, I’ve started to see the value in certain tasks.

Read the whole story
alvinashcraft
21 minutes ago
reply
Pennsylvania, USA
Share this story
Delete

🎧 Opus 4.5 Changed How Andrew Wilkinson Works and Lives

1 Share
AI & I
by Rhea Purohit
in AI & I
Andrew Wilkinson. Midjourney/Every illustration.

TL;DR: Today, we’re releasing a new episode of our podcast AI & I, where Dan Shipper sits down with Andrew Wilkinson, the cofounder of Tiny, a holding company that buys profitable businesses and focuses on holding them for the long term. Watch on X or YouTube, or listen on Spotify or Apple Podcasts.

Plus: We’re hosting an all-day livestream tomorrow with the best vibe coders in the world, showcasing what’s now possible that wasn’t two months ago. Join us on X. On Friday, we’re hosting a free camp for paid subscribers about how agent-native architecture works and how to use it effectively.


Entrepreneur Andrew Wilkinson used to sleep nine hours a night. Now he wakes up at 4 a.m. and goes straight to work—because he can’t wait to keep building with Anthropic’s latest model, Opus 4.5


Click here to read the full post

Want the full text of all articles in RSS? Become a subscriber, or learn more.

Read the whole story
alvinashcraft
22 minutes ago
reply
Pennsylvania, USA
Share this story
Delete

The Hidden Cost of Supporting Old OS Versions

1 Share

The Hidden Cost of Supporting Old OS Versions

Supporting older operating system versions is often seen as a safe and user friendly choice. The assumption is simple. The more OS versions you support, the more users you can reach. In practice, the cost of backward compatibility is rarely visible at first, but it accumulates steadily and affects development speed, code quality, testing effort, and even product decisions.

This post looks at the real cost of supporting old OS versions and offers practical guidance on how to choose a realistic minimum OS version for a mobile app.


Slower Feature Development

Every new OS release brings new APIs, better tooling, and improved platform capabilities. When an app supports old OS versions, developers cannot freely use these improvements.

Instead of implementing a feature once, teams often need to:

  • Write conditional code paths for old and new APIs

  • Maintain fallback implementations

  • Avoid newer platform features entirely

Over time, this leads to a lowest common denominator approach. Features are designed not around what the platform can do today, but around what the oldest supported OS allows. This slows development and limits innovation.


Increased Testing Complexity

Supporting a wide OS range multiplies testing effort. Each additional OS version adds more combinations to validate:

  • Different system behaviors

  • API inconsistencies and edge cases

  • Vendor specific issues on older Android devices

Manual testing matrices grow quickly, and automated tests become harder to maintain. Bugs often appear only on specific OS versions that developers no longer use daily, making them harder to reproduce and fix.

The result is more time spent verifying existing behavior instead of building new functionality.


Design and UX Limitations

Older OS versions often lack modern UI components, animation capabilities, or system behaviors users now expect. Designers are forced to compromise to ensure consistency across versions.

This can result in:

  • Simpler interactions than desired

  • Visual inconsistencies between devices

  • Features that feel outdated on modern hardware

In some cases, entire UX improvements are postponed or cancelled because they cannot be implemented cleanly on older systems.


The Business Impact

From a business perspective, supporting old OS versions is not free. It increases development time, QA costs, and release risk. These costs are often hidden because they appear as slower velocity rather than explicit line items.

At the same time, users on very old OS versions tend to:

  • Upgrade less frequently

  • Engage less with new features

  • Be overrepresented in crash and support reports

This creates a mismatch between effort invested and value returned.


How to Choose a Realistic Minimum OS Version

Here are some important factors to consider when deciding on your minimum supported version:

User Distribution

Look at real usage data. If a small percentage of users are on very old OS versions, supporting them may not justify the cost.

Platform Support and Tooling

Align your minimum OS with what the platform vendor actively supports. Tooling, libraries, and documentation are optimized for recent versions.

App Category and Audience

Enterprise apps, internal tools, and professional products can usually move faster than consumer apps with broad audiences.

Feature Roadmap

If upcoming features rely on newer platform capabilities, raising the minimum OS early can simplify delivery and reduce technical debt.

Maintenance Budget

If the team is small, reducing compatibility overhead can significantly improve focus and release quality.

Read the whole story
alvinashcraft
22 minutes ago
reply
Pennsylvania, USA
Share this story
Delete
Next Page of Stories