<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: TotyLabs</title>
    <description>The latest articles on DEV Community by TotyLabs (@totylabs).</description>
    <link>https://dev.to/totylabs</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3757595%2F7b63a4d7-b032-4dc1-a9f6-9cfdc8d8cb02.jpg</url>
      <title>DEV Community: TotyLabs</title>
      <link>https://dev.to/totylabs</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/totylabs"/>
    <language>en</language>
    <item>
      <title>I built a self-hosted code execution runtime (because I needed one)</title>
      <dc:creator>TotyLabs</dc:creator>
      <pubDate>Wed, 25 Feb 2026 17:09:13 +0000</pubDate>
      <link>https://dev.to/totylabs/i-built-a-self-hosted-code-execution-runtime-because-i-needed-one-511</link>
      <guid>https://dev.to/totylabs/i-built-a-self-hosted-code-execution-runtime-because-i-needed-one-511</guid>
      <description>&lt;p&gt;At some point, if you’re building dev tools, automation platforms, or anything with plugins or AI-generated logic, you hit the same wall:&lt;/p&gt;

&lt;p&gt;«You need to run user-provided code.»&lt;/p&gt;

&lt;p&gt;Not just your code — their code.&lt;/p&gt;

&lt;p&gt;And that’s where things get scary 😅&lt;/p&gt;




&lt;p&gt;The naive version&lt;/p&gt;

&lt;p&gt;At first it looks simple:&lt;/p&gt;

&lt;p&gt;result = run(user_code)&lt;br&gt;
return result&lt;/p&gt;

&lt;p&gt;And yes… this works.&lt;/p&gt;

&lt;p&gt;Until someone uploads:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;an infinite loop&lt;/li&gt;
&lt;li&gt;a memory bomb&lt;/li&gt;
&lt;li&gt;file access&lt;/li&gt;
&lt;li&gt;network abuse&lt;/li&gt;
&lt;li&gt;or just crashes your process&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Then you realize:&lt;br&gt;
executing code is easy — executing it safely isn’t.&lt;/p&gt;




&lt;p&gt;Why I built GozoLite&lt;/p&gt;

&lt;p&gt;I needed something that could:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;run arbitrary code&lt;/li&gt;
&lt;li&gt;not crash my app&lt;/li&gt;
&lt;li&gt;not access my system&lt;/li&gt;
&lt;li&gt;not interfere with other users&lt;/li&gt;
&lt;li&gt;be self-hosted&lt;/li&gt;
&lt;li&gt;be simple to deploy&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Most options I found were either:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;too unsafe&lt;/li&gt;
&lt;li&gt;too heavy (full orchestration)&lt;/li&gt;
&lt;li&gt;or external SaaS&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So I built a middle ground:&lt;br&gt;
a lightweight self-hosted execution runtime.&lt;/p&gt;




&lt;p&gt;The idea is simple&lt;/p&gt;

&lt;p&gt;Instead of running code inside your app:&lt;/p&gt;

&lt;p&gt;API → GozoLite → isolated container → result&lt;/p&gt;

&lt;p&gt;Each execution:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;runs in isolation&lt;/li&gt;
&lt;li&gt;has CPU/memory/time limits&lt;/li&gt;
&lt;li&gt;has no shared filesystem&lt;/li&gt;
&lt;li&gt;dies if it misbehaves&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Your app just gets the result.&lt;/p&gt;




&lt;p&gt;What surprised me&lt;/p&gt;

&lt;p&gt;The hard parts weren’t what I expected.&lt;/p&gt;

&lt;p&gt;Not containers.&lt;br&gt;
Not languages.&lt;/p&gt;

&lt;p&gt;It was:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;defining execution states&lt;/li&gt;
&lt;li&gt;enforcing limits consistently&lt;/li&gt;
&lt;li&gt;handling failures cleanly&lt;/li&gt;
&lt;li&gt;making results deterministic&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Execution systems are basically tiny operating systems 😄&lt;/p&gt;




&lt;p&gt;When you actually need this&lt;/p&gt;

&lt;p&gt;You probably need an execution runtime if your product:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;runs user scripts&lt;/li&gt;
&lt;li&gt;supports plugins&lt;/li&gt;
&lt;li&gt;executes automation&lt;/li&gt;
&lt;li&gt;runs AI-generated code&lt;/li&gt;
&lt;li&gt;processes arbitrary logic&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At that point, execution stops being a feature&lt;br&gt;
and becomes infrastructure.&lt;/p&gt;




&lt;p&gt;Final thought&lt;/p&gt;

&lt;p&gt;If you’re building something that runs other people’s code:&lt;/p&gt;

&lt;p&gt;don’t run it in your app 😅&lt;/p&gt;

&lt;p&gt;Isolation isn’t optional — it’s architecture.&lt;/p&gt;




&lt;p&gt;If you’re curious about GozoLite or building something similar, happy to share details.&lt;/p&gt;

</description>
      <category>backend</category>
      <category>security</category>
      <category>showdev</category>
      <category>tooling</category>
    </item>
    <item>
      <title>🧩 The Hidden Layer in Modern Platforms: Secure Code Execution</title>
      <dc:creator>TotyLabs</dc:creator>
      <pubDate>Fri, 20 Feb 2026 02:17:54 +0000</pubDate>
      <link>https://dev.to/totylabs/the-hidden-layer-in-modern-platforms-secure-code-execution-34i</link>
      <guid>https://dev.to/totylabs/the-hidden-layer-in-modern-platforms-secure-code-execution-34i</guid>
      <description>&lt;p&gt;Most platforms today expose APIs, workflows, plugins, or automation layers.&lt;br&gt;
But there’s a question that rarely gets asked explicitly:&lt;br&gt;
where does untrusted or dynamic code actually run?&lt;br&gt;
Because at some point, many systems need execution:&lt;br&gt;
user-defined logic&lt;br&gt;
automation scripts&lt;br&gt;
plugin runtimes&lt;br&gt;
AI tool calls&lt;br&gt;
educational sandboxes&lt;br&gt;
judges or evaluators&lt;br&gt;
And when that moment arrives, teams often improvise:&lt;br&gt;
ad-hoc containers&lt;br&gt;
shared runtimes&lt;br&gt;
partial isolation&lt;br&gt;
patched security&lt;br&gt;
It works — until scale or risk appears.&lt;br&gt;
Execution is becoming a platform primitive&lt;br&gt;
Modern architecture already treats some capabilities as foundational:&lt;br&gt;
storage&lt;br&gt;
networking&lt;br&gt;
identity&lt;br&gt;
observability&lt;br&gt;
But dynamic execution is quietly joining that list.&lt;br&gt;
Not as a developer convenience —&lt;br&gt;
as infrastructure.&lt;br&gt;
Because execution surfaces introduce real constraints:&lt;br&gt;
isolation boundaries&lt;br&gt;
resource limits&lt;br&gt;
determinism&lt;br&gt;
tenant separation&lt;br&gt;
failure containment&lt;br&gt;
Those are infrastructure concerns, not app logic.&lt;br&gt;
The gap most teams don’t plan for&lt;br&gt;
Many platforms evolve like this:&lt;br&gt;
Need configurable logic&lt;br&gt;
Add scripting or plugins&lt;br&gt;
Add isolation later&lt;br&gt;
Add limits later&lt;br&gt;
Add observability later&lt;br&gt;
Execution becomes layered retroactively.&lt;br&gt;
That path accumulates risk and complexity.&lt;br&gt;
A dedicated execution runtime flips the model:&lt;br&gt;
execution is isolated by design&lt;br&gt;
limits are enforced at the boundary&lt;br&gt;
failures are contained&lt;br&gt;
integration is explicit&lt;br&gt;
Why this matters now&lt;br&gt;
AI agents, automation, and extensible platforms are increasing the need for:&lt;br&gt;
safe code evaluation&lt;br&gt;
deterministic tool execution&lt;br&gt;
multi-language support&lt;br&gt;
tenant-safe runtime environments&lt;br&gt;
Execution is no longer niche.&lt;br&gt;
It’s becoming a shared substrate across product categories.&lt;br&gt;
A design perspective&lt;br&gt;
Treat execution like a capability layer, not an implementation detail.&lt;br&gt;
That shift changes architecture decisions:&lt;br&gt;
clearer boundaries&lt;br&gt;
safer extensibility&lt;br&gt;
predictable operations&lt;br&gt;
composable integration&lt;br&gt;
And it prevents the most common long-term issue:&lt;br&gt;
execution logic leaking into the core system.&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>automation</category>
      <category>security</category>
      <category>systemdesign</category>
    </item>
    <item>
      <title>Why We Built a Dedicated Execution Engine Instead of Embedding Code Runners Everywhere</title>
      <dc:creator>TotyLabs</dc:creator>
      <pubDate>Thu, 19 Feb 2026 03:00:11 +0000</pubDate>
      <link>https://dev.to/totylabs/why-we-built-a-dedicated-execution-engine-instead-of-embedding-code-runners-everywhere-50gd</link>
      <guid>https://dev.to/totylabs/why-we-built-a-dedicated-execution-engine-instead-of-embedding-code-runners-everywhere-50gd</guid>
      <description>&lt;p&gt;In many platforms, code execution appears as a secondary feature: scripts inside services, plugins inside apps, or embedded runtimes glued into existing systems.&lt;br&gt;
We took a different path with GozoLite: treating execution as a first-class infrastructure capability.&lt;br&gt;
Instead of distributing execution logic across multiple services, we centralized it into a dedicated execution engine with explicit operational boundaries.&lt;br&gt;
This decision came from observing recurring issues in distributed execution setups:&lt;br&gt;
inconsistent isolation guarantees&lt;br&gt;
duplicated runtime handling&lt;br&gt;
unclear failure modes&lt;br&gt;
fragmented observability&lt;br&gt;
security drift across services&lt;br&gt;
By isolating execution into a focused engine, we gained:&lt;br&gt;
Deterministic execution contracts&lt;br&gt;
Every run follows the same submit() model with explicit limits and outcomes.&lt;br&gt;
Uniform sandboxing&lt;br&gt;
CPU, memory, time, and output limits enforced consistently across 30+ runtimes.&lt;br&gt;
Operational clarity&lt;br&gt;
Execution lives in one deployable unit with predictable scaling and failure behavior.&lt;br&gt;
Security boundaries&lt;br&gt;
Clear separation between host platform and untrusted code execution.&lt;br&gt;
Observability surfaces&lt;br&gt;
Health, diagnostics, capabilities, and structured execution logs exposed natively.&lt;br&gt;
This architecture turns code execution from an embedded feature into a reusable platform capability.&lt;br&gt;
Instead of each service reinventing safe execution, the platform provides it once — correctly and observably.&lt;br&gt;
That shift changes how systems evolve: execution becomes composable infrastructure, not scattered logic.&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>distributedsystems</category>
      <category>softwareengineering</category>
      <category>systemdesign</category>
    </item>
    <item>
      <title>🧱 Execution Is a System Boundary, Not a Feature</title>
      <dc:creator>TotyLabs</dc:creator>
      <pubDate>Tue, 17 Feb 2026 14:32:14 +0000</pubDate>
      <link>https://dev.to/totylabs/execution-is-a-system-boundary-not-a-feature-5gdo</link>
      <guid>https://dev.to/totylabs/execution-is-a-system-boundary-not-a-feature-5gdo</guid>
      <description>&lt;p&gt;Running untrusted code is no longer a niche problem.&lt;br&gt;
It appears everywhere:&lt;br&gt;
AI platforms executing user prompts&lt;br&gt;
Online judges running submissions&lt;br&gt;
Automation systems evaluating scripts&lt;br&gt;
Dev tools executing plugins or extensions&lt;br&gt;
And yet, many systems still rely on partial isolation or ad-hoc sandboxes.&lt;br&gt;
That’s increasingly risky.&lt;br&gt;
The Reality of Modern Code Execution&lt;br&gt;
When code execution becomes part of a platform, three things matter:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Isolation must be real
Not process-level. Not “best effort.”
Actual containment boundaries.&lt;/li&gt;
&lt;li&gt;Limits must be enforced
CPU, memory, time, output.
Otherwise execution becomes denial-of-service waiting to happen.&lt;/li&gt;
&lt;li&gt;Failure must be predictable
Timeouts, toolchain absence, runtime errors — all explicit.
No silent undefined behavior.
Secure execution isn’t about running code.
It’s about controlling execution as a system capability.
Execution Is Infrastructure
Treating execution as infrastructure changes design:
Stateless execution units
Deterministic lifecycle
Container-level isolation
Explicit contracts
Observability of runs
At that point, execution stops being a risk surface
and becomes a platform primitive.
Why This Matters Now
AI systems accelerated this shift.
Agents write and run code.
Users submit code dynamically.
Plugins execute externally sourced logic.
Execution moved from backend detail
to product surface.
Security expectations moved with it.
A Practical Direction
One effective pattern emerging:
containerized runtimes
per-execution lifecycle
strict resource enforcement
centralized runtime registry
explicit execution API
This model scales from:
dev tools
to education
to AI platforms
to infra systems
without changing the core execution contract.
Closing Thought
Execution isn’t a feature.
It’s a boundary.
And systems that define their boundaries clearly
are the ones that scale safely.&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>architecture</category>
      <category>security</category>
      <category>systemdesign</category>
    </item>
    <item>
      <title>Secure Code Execution Is Not Just Sandboxing — It’s System Design</title>
      <dc:creator>TotyLabs</dc:creator>
      <pubDate>Tue, 17 Feb 2026 03:26:00 +0000</pubDate>
      <link>https://dev.to/totylabs/secure-code-execution-is-not-just-sandboxing-its-system-design-1fof</link>
      <guid>https://dev.to/totylabs/secure-code-execution-is-not-just-sandboxing-its-system-design-1fof</guid>
      <description>&lt;p&gt;When people hear secure code execution, they often think about one thing:&lt;br&gt;
“Run code in a container.”&lt;br&gt;
That’s a start.&lt;br&gt;
But in real infrastructure, secure execution is not a container feature.&lt;br&gt;
It’s a system.&lt;br&gt;
And most platforms underestimate what that actually means.&lt;br&gt;
The Misconception: Containers = Security&lt;br&gt;
Containers provide isolation primitives:&lt;br&gt;
namespaces&lt;br&gt;
filesystem boundaries&lt;br&gt;
process separation&lt;br&gt;
But secure execution requires much more than that.&lt;br&gt;
Because the moment you execute untrusted code, you inherit risks across multiple dimensions:&lt;br&gt;
resource exhaustion&lt;br&gt;
fork bombs&lt;br&gt;
infinite loops&lt;br&gt;
memory abuse&lt;br&gt;
toolchain escapes&lt;br&gt;
noisy neighbor effects&lt;br&gt;
scheduler starvation&lt;br&gt;
A container alone doesn’t solve those.&lt;br&gt;
What Secure Code Execution Actually Requires&lt;br&gt;
In production environments, safe execution needs layered controls:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Explicit resource enforcement
CPU quotas
memory limits
timeouts
output caps
Execution must be bounded, not trusted.&lt;/li&gt;
&lt;li&gt;Deterministic failure modes
A secure executor must never hang or degrade silently.
Every run should end in:
success
compile error
runtime error
timeout
limit exceeded
Nothing undefined.&lt;/li&gt;
&lt;li&gt;Execution lifecycle isolation
Each execution should have:
ephemeral environment
fresh filesystem
isolated process tree
controlled teardown
No cross-run residue.&lt;/li&gt;
&lt;li&gt;Runtime surface control
Languages aren’t equal.
Compiled runtimes, interpreters, and toolchains behave differently under isolation.
A secure executor must normalize:
invocation
limits
IO
exit semantics
Across all runtimes.
Secure Execution Is Infrastructure
Once you layer:
limits
isolation
lifecycle
observability
runtime control
You’re no longer building a feature.
You’re building infrastructure.
This is why platforms that execute user code internally often evolve toward dedicated execution systems instead of ad-hoc containers.
Why This Matters Now
Modern platforms increasingly run external or user-provided code:
online judges
AI tools
automation engines
workflow platforms
education environments
Secure execution is becoming a core capability, not a niche tool.
Closing Thought
Containers provide isolation.
Secure execution requires architecture.
If your platform executes code, the boundary of safety is not Docker.
It’s the system you design around it.&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>architecture</category>
      <category>docker</category>
      <category>security</category>
      <category>systemdesign</category>
    </item>
    <item>
      <title>Building a Production-Grade Self-Hosted Code Execution Engine (Isolation, Limits, Observability)</title>
      <dc:creator>TotyLabs</dc:creator>
      <pubDate>Sun, 15 Feb 2026 18:56:53 +0000</pubDate>
      <link>https://dev.to/totylabs/building-a-production-grade-self-hosted-code-execution-engine-isolation-limits-observability-4a16</link>
      <guid>https://dev.to/totylabs/building-a-production-grade-self-hosted-code-execution-engine-isolation-limits-observability-4a16</guid>
      <description>&lt;p&gt;Running untrusted code safely in production is one of those problems that looks simple — until you actually have to operate it.&lt;br&gt;
Over the past year I’ve been building a self-hosted polyglot execution backend designed for real workloads rather than demos or sandboxes.&lt;br&gt;
Some principles that proved essential:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Isolation must be structural, not optional
Each execution runs inside its own container with strict CPU, memory, time, and output limits.
No shared runtime, no trust assumptions.&lt;/li&gt;
&lt;li&gt;Deterministic failure modes matter
Missing toolchains, timeouts, or resource violations are explicit states — not crashes.
Execution systems must fail predictably to be operable.&lt;/li&gt;
&lt;li&gt;Stateless execution enables scaling
Containers are ephemeral and disposable.
The platform scales horizontally without session coupling.&lt;/li&gt;
&lt;li&gt;Observability is part of the contract
Health, diagnostics, capabilities, and structured execution logs are exposed as first-class endpoints.
You can’t operate what you can’t see.&lt;/li&gt;
&lt;li&gt;Safety limits define reliability
Resource enforcement (ulimits, cgroups, container quotas) is not just security — it’s stability.
Most outages in execution systems come from missing limits.
This kind of architecture is useful for:
online judges
AI tool execution
automation platforms
education sandboxes
CI runners
If you’re working on similar infra or self-hosted execution systems, I’d love to exchange notes.
GitHub: &lt;a href="https://github.com/TotyLabs" rel="noopener noreferrer"&gt;https://github.com/TotyLabs&lt;/a&gt;
Demo: &lt;a href="https://huggingface.co/TotyLabs/GozoLite" rel="noopener noreferrer"&gt;https://huggingface.co/TotyLabs/GozoLite&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>devtools</category>
      <category>security</category>
      <category>backend</category>
      <category>docker</category>
    </item>
    <item>
      <title>Secure Polyglot Code Execution: How to Run Untrusted Code Safely</title>
      <dc:creator>TotyLabs</dc:creator>
      <pubDate>Sat, 14 Feb 2026 10:15:49 +0000</pubDate>
      <link>https://dev.to/totylabs/secure-polyglot-code-execution-how-to-run-untrusted-code-safely-4n8a</link>
      <guid>https://dev.to/totylabs/secure-polyglot-code-execution-how-to-run-untrusted-code-safely-4n8a</guid>
      <description>&lt;p&gt;Running user code in production systems is dangerous by default.&lt;br&gt;
Whether you're building:&lt;br&gt;
an online judge&lt;br&gt;
an AI agent runtime&lt;br&gt;
a code playground&lt;br&gt;
a workflow automation engine&lt;br&gt;
or a CI runner&lt;br&gt;
you eventually face the same question:&lt;br&gt;
How do you execute untrusted code safely?&lt;br&gt;
This post explains the architecture behind a secure polyglot code execution system designed for running multiple programming languages inside isolated sandboxes.&lt;br&gt;
What Is Secure Code Execution?&lt;br&gt;
Secure code execution means:&lt;br&gt;
Running arbitrary user-provided code without allowing it to escape, abuse resources, or affect the host system.&lt;br&gt;
This requires combining multiple isolation and control layers:&lt;br&gt;
container sandboxing&lt;br&gt;
syscall filtering&lt;br&gt;
resource limits&lt;br&gt;
network restrictions&lt;br&gt;
execution quotas&lt;br&gt;
validation&lt;br&gt;
No single mechanism is enough.&lt;br&gt;
Security comes from composition.&lt;br&gt;
Polyglot Code Execution Architecture&lt;br&gt;
A production-grade multi-language code executor typically follows this pipeline:&lt;br&gt;
Copiar código&lt;/p&gt;

&lt;p&gt;Request&lt;br&gt;
 → authentication&lt;br&gt;
 → rate limiting&lt;br&gt;
 → quota check&lt;br&gt;
 → code validation&lt;br&gt;
 → sandboxed execution&lt;br&gt;
 → result capture&lt;br&gt;
 → telemetry&lt;br&gt;
Each stage reduces risk.&lt;br&gt;
Each stage is observable.&lt;br&gt;
Sandboxed Execution with Containers&lt;br&gt;
The core isolation layer is usually container-based.&lt;br&gt;
A sandboxed execution container enforces:&lt;br&gt;
CPU limits&lt;br&gt;
memory limits&lt;br&gt;
execution timeouts&lt;br&gt;
filesystem isolation&lt;br&gt;
process limits&lt;br&gt;
no privileged access&lt;br&gt;
This ensures the executed program cannot affect the host or other tenants.&lt;br&gt;
Syscall Filtering (seccomp)&lt;br&gt;
Even inside containers, processes can still call dangerous syscalls.&lt;br&gt;
So secure code runners apply seccomp filters to restrict:&lt;br&gt;
networking syscalls&lt;br&gt;
kernel module access&lt;br&gt;
device access&lt;br&gt;
mount operations&lt;br&gt;
namespace escapes&lt;br&gt;
The executed program only sees a minimal syscall surface.&lt;br&gt;
Running Multiple Languages Safely&lt;br&gt;
Polyglot execution adds extra challenges:&lt;br&gt;
different compilers/interpreters&lt;br&gt;
toolchain detection&lt;br&gt;
runtime dependencies&lt;br&gt;
language-specific exploits&lt;br&gt;
A robust multi-language code executor uses:&lt;br&gt;
per-language toolchain images&lt;br&gt;
deterministic execution contracts&lt;br&gt;
explicit capability detection&lt;br&gt;
standardized resource policies&lt;br&gt;
So Python, C++, Rust, Go, and others run under the same security model.&lt;br&gt;
Preventing Abuse and Resource Exhaustion&lt;br&gt;
Execution platforms must defend against:&lt;br&gt;
infinite loops&lt;br&gt;
fork bombs&lt;br&gt;
memory exhaustion&lt;br&gt;
output flooding&lt;br&gt;
rapid request bursts&lt;br&gt;
Typical controls include:&lt;br&gt;
CPU time limits&lt;br&gt;
memory caps&lt;br&gt;
stdout size limits&lt;br&gt;
process count limits&lt;br&gt;
per-tenant quotas&lt;br&gt;
rate limiting&lt;br&gt;
Execution becomes bounded.&lt;br&gt;
Network Isolation for Untrusted Code&lt;br&gt;
Untrusted code should not freely access the internet.&lt;br&gt;
Secure execution sandboxes usually enforce:&lt;br&gt;
no outbound network by default&lt;br&gt;
DNS filtering&lt;br&gt;
allowlisted destinations&lt;br&gt;
egress firewall rules&lt;br&gt;
This prevents data exfiltration and external abuse.&lt;br&gt;
Observability in Code Execution Systems&lt;br&gt;
You cannot secure what you cannot observe.&lt;br&gt;
A secure code execution platform should emit:&lt;br&gt;
execution duration&lt;br&gt;
timeout rates&lt;br&gt;
memory usage&lt;br&gt;
container failures&lt;br&gt;
quota saturation&lt;br&gt;
anomaly signals&lt;br&gt;
Security becomes measurable, not assumed.&lt;br&gt;
Typical Use Cases for Secure Code Execution&lt;br&gt;
Secure polyglot execution systems power:&lt;br&gt;
online judges&lt;br&gt;
AI coding agents&lt;br&gt;
notebook backends&lt;br&gt;
education platforms&lt;br&gt;
plugin runtimes&lt;br&gt;
workflow automation&lt;br&gt;
CI job isolation&lt;br&gt;
Anywhere user code runs, sandboxing is required.&lt;br&gt;
Key Takeaways&lt;br&gt;
Running untrusted code safely requires:&lt;br&gt;
container sandboxing&lt;br&gt;
syscall filtering&lt;br&gt;
strict resource limits&lt;br&gt;
network isolation&lt;br&gt;
validation layers&lt;br&gt;
observability&lt;br&gt;
Secure execution is not a feature.&lt;br&gt;
It’s an architecture.&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>backend</category>
      <category>security</category>
      <category>systemdesign</category>
    </item>
    <item>
      <title>GozoLite — A Production-Grade Polyglot Code Execution Engine (Open Source)</title>
      <dc:creator>TotyLabs</dc:creator>
      <pubDate>Fri, 13 Feb 2026 19:14:19 +0000</pubDate>
      <link>https://dev.to/totylabs/gozolite-a-production-grade-polyglot-code-execution-engine-open-source-4g6g</link>
      <guid>https://dev.to/totylabs/gozolite-a-production-grade-polyglot-code-execution-engine-open-source-4g6g</guid>
      <description>&lt;p&gt;Modern platforms increasingly need to execute untrusted code safely — from AI agents and online judges to automation pipelines and developer tooling.&lt;br&gt;
Most solutions either sacrifice isolation, performance, or language coverage.&lt;br&gt;
GozoLite is an open-source polyglot code execution engine designed to run 30+ programming languages inside secure, resource-constrained sandboxes — with production-grade observability and explicit execution contracts.&lt;br&gt;
Why GozoLite exists&lt;br&gt;
Executing arbitrary code in multi-tenant environments is fundamentally a systems problem:&lt;br&gt;
Isolation boundaries must be explicit&lt;br&gt;
Resource limits must be deterministic&lt;br&gt;
Toolchains must be validated&lt;br&gt;
Failures must be observable&lt;br&gt;
Execution must degrade safely&lt;br&gt;
GozoLite was built around these constraints from the ground up.&lt;br&gt;
Core architecture&lt;br&gt;
At its core, GozoLite is a stateless execution service with:&lt;br&gt;
Container-level isolation (Docker)&lt;br&gt;
Strict ulimit enforcement (CPU, memory, file size, processes)&lt;br&gt;
Language registry with toolchain detection&lt;br&gt;
Standardized execution contract&lt;br&gt;
Structured logs and diagnostics&lt;br&gt;
Deterministic timeouts and output limits&lt;br&gt;
Each execution is treated as a bounded, auditable event — not a best-effort script run.&lt;br&gt;
Polyglot by design&lt;br&gt;
GozoLite supports over 30 programming languages via a central registry and consistent interface.&lt;br&gt;
Examples:&lt;br&gt;
Python&lt;br&gt;
C / C++&lt;br&gt;
Rust&lt;br&gt;
Go&lt;br&gt;
Java&lt;br&gt;
Node.js&lt;br&gt;
Bash&lt;br&gt;
And more&lt;br&gt;
All languages share the same execution pipeline and limits model.&lt;br&gt;
Execution model&lt;br&gt;
A typical request:&lt;br&gt;
Json&lt;br&gt;
Copiar código&lt;br&gt;
POST /execute&lt;br&gt;
{&lt;br&gt;
  "language": "python",&lt;br&gt;
  "code": "print(21*2)"&lt;br&gt;
}&lt;br&gt;
Response:&lt;br&gt;
Json&lt;br&gt;
Copiar código&lt;br&gt;
{&lt;br&gt;
  "status": "ok",&lt;br&gt;
  "stdout": "42\n",&lt;br&gt;
  "time_ms": 18,&lt;br&gt;
  "memory_kb": 5120&lt;br&gt;
}&lt;br&gt;
Failures are explicit:&lt;br&gt;
Json&lt;br&gt;
Copiar código&lt;br&gt;
{&lt;br&gt;
  "status": "failed",&lt;br&gt;
  "error": "TOOLCHAIN_MISSING"&lt;br&gt;
}&lt;br&gt;
This makes GozoLite predictable inside larger systems.&lt;br&gt;
Security model&lt;br&gt;
GozoLite applies layered sandboxing:&lt;br&gt;
Container isolation&lt;br&gt;
Read-only filesystem segments&lt;br&gt;
Resource ceilings (CPU/mem/proc)&lt;br&gt;
No network by default&lt;br&gt;
Output size caps&lt;br&gt;
Execution time caps&lt;br&gt;
The goal is not “best effort safety”, but controlled execution boundaries.&lt;br&gt;
Observability first&lt;br&gt;
Unlike typical code runners, GozoLite exposes:&lt;br&gt;
Capabilities (available languages/toolchains)&lt;br&gt;
Health status&lt;br&gt;
Diagnostics&lt;br&gt;
Execution metrics&lt;br&gt;
This makes it suitable for production pipelines, not just demos.&lt;br&gt;
Use cases&lt;br&gt;
GozoLite is used or designed for:&lt;br&gt;
Online judges&lt;br&gt;
AI agent sandboxes&lt;br&gt;
Code playgrounds&lt;br&gt;
Education platforms&lt;br&gt;
Secure automation&lt;br&gt;
Multi-tenant developer tools&lt;br&gt;
Open source&lt;br&gt;
GozoLite is fully open-source and intended for:&lt;br&gt;
Educational environments&lt;br&gt;
Self-hosted execution services&lt;br&gt;
Research and experimentation&lt;br&gt;
Enterprise evaluation&lt;br&gt;
Repository:&lt;br&gt;
&lt;a href="https://github.com/TotyLabs/GozoLite%EF%BF%BD" rel="noopener noreferrer"&gt;https://github.com/TotyLabs/GozoLite�&lt;/a&gt;&lt;br&gt;
Final notes&lt;br&gt;
Secure code execution is often treated as an implementation detail.&lt;br&gt;
In reality, it is infrastructure.&lt;br&gt;
GozoLite approaches execution the way databases approach queries:&lt;br&gt;
bounded, observable, and contract-driven.&lt;br&gt;
If you're building systems that run user or AI-generated code,&lt;br&gt;
you need execution you can reason about.&lt;br&gt;
That’s the problem GozoLite solves.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>programming</category>
      <category>security</category>
      <category>tooling</category>
    </item>
    <item>
      <title>What Secure Code Execution Actually Requires</title>
      <dc:creator>TotyLabs</dc:creator>
      <pubDate>Thu, 12 Feb 2026 14:13:03 +0000</pubDate>
      <link>https://dev.to/totylabs/most-code-execution-engines-are-not-actually-secure-40ij</link>
      <guid>https://dev.to/totylabs/most-code-execution-engines-are-not-actually-secure-40ij</guid>
      <description>&lt;p&gt;Everyone claims to offer secure code execution.&lt;br&gt;
But most platforms that run code — whether online judges, sandbox APIs, or embedded execution engines — rely on surface-level protections and call it a day.&lt;br&gt;
Timeouts.&lt;br&gt;
Basic containerization.&lt;br&gt;
Maybe a memory limit.&lt;br&gt;
That’s not security. That’s hope.&lt;br&gt;
If you’re running arbitrary code — especially in production — “secure” has to mean something far stricter.&lt;br&gt;
Let’s break down what secure code execution actually requires.&lt;br&gt;
1️⃣ Hard Resource Boundaries (Not Just Timeouts)&lt;br&gt;
A timeout prevents infinite loops.&lt;br&gt;
It does not prevent:&lt;br&gt;
Memory exhaustion attacks&lt;br&gt;
Fork bombs&lt;br&gt;
CPU starvation&lt;br&gt;
File descriptor abuse&lt;br&gt;
True secure execution requires:&lt;br&gt;
Hard CPU caps (cgroups)&lt;br&gt;
Hard memory limits&lt;br&gt;
Process limits&lt;br&gt;
I/O constraints&lt;br&gt;
Strict execution time enforcement&lt;br&gt;
Without these, one malicious script can degrade or crash the host.&lt;br&gt;
2️⃣ Real Isolation (Ephemeral &amp;amp; Disposable)&lt;br&gt;
Many systems reuse containers.&lt;br&gt;
That’s a risk.&lt;br&gt;
A secure execution engine should:&lt;br&gt;
Spawn fresh, ephemeral containers per execution&lt;br&gt;
Share no state between runs&lt;br&gt;
Destroy the environment immediately after completion&lt;br&gt;
Avoid persistent writable layers&lt;br&gt;
Execution must be disposable.&lt;br&gt;
If state persists, attack surfaces accumulate.&lt;br&gt;
3️⃣ Network Boundaries&lt;br&gt;
Unrestricted network access turns a sandbox into a pivot point.&lt;br&gt;
Secure systems must define:&lt;br&gt;
Explicit outbound policies&lt;br&gt;
No internal network visibility&lt;br&gt;
No host access&lt;br&gt;
No privilege escalation&lt;br&gt;
Isolation is not just filesystem-level.&lt;br&gt;
It’s network-level.&lt;br&gt;
4️⃣ Predictable Failure Modes&lt;br&gt;
Security is not just about prevention — it’s about behavior under stress.&lt;br&gt;
A secure execution engine must:&lt;br&gt;
Fail fast under overload&lt;br&gt;
Enforce quotas per tenant&lt;br&gt;
Maintain isolation during concurrent execution&lt;br&gt;
Provide deterministic limits&lt;br&gt;
If your execution engine collapses under concurrency, it’s not secure — it’s fragile.&lt;br&gt;
5️⃣ Clear Architectural Boundaries&lt;br&gt;
Secure code execution is an architectural discipline, not a feature toggle.&lt;br&gt;
A production-ready model requires:&lt;br&gt;
A thin API layer&lt;br&gt;
A strict orchestration component&lt;br&gt;
A container manager&lt;br&gt;
Centralized signed logging&lt;br&gt;
Auditable execution traces&lt;br&gt;
Clean separation between control plane and execution plane&lt;br&gt;
Security is systemic. Not decorative.&lt;br&gt;
Why This Matters&lt;br&gt;
We’re entering an era where:&lt;br&gt;
AI agents execute real code&lt;br&gt;
Educational platforms run untrusted snippets&lt;br&gt;
Internal tooling automates infrastructure tasks&lt;br&gt;
DevOps workflows trigger dynamic execution&lt;br&gt;
The attack surface is expanding.&lt;br&gt;
If “secure” only means “Docker + timeout,” we are underestimating the problem.&lt;br&gt;
What Secure Code Execution Should Mean&lt;br&gt;
A secure execution engine should guarantee:&lt;br&gt;
✓ Hard CPU limits&lt;br&gt;
✓ Hard memory caps&lt;br&gt;
✓ Process isolation&lt;br&gt;
✓ Ephemeral environments&lt;br&gt;
✓ Network confinement&lt;br&gt;
✓ Deterministic failure modes&lt;br&gt;
✓ Auditable logs&lt;br&gt;
Anything less is convenience — not security.&lt;br&gt;
Final Thought&lt;br&gt;
The real question isn’t:&lt;br&gt;
“Does it run code?”&lt;br&gt;
It’s:&lt;br&gt;
“What happens when that code tries to break your system?”&lt;br&gt;
If you’re building or adopting a code execution engine, ask the hard questions.&lt;br&gt;
Security is not a checkbox.&lt;br&gt;
It’s an architectural stance.&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>linux</category>
      <category>security</category>
      <category>systemdesign</category>
    </item>
    <item>
      <title>Most Code Execution Engines Are Not Actually Secure</title>
      <dc:creator>TotyLabs</dc:creator>
      <pubDate>Wed, 11 Feb 2026 20:59:51 +0000</pubDate>
      <link>https://dev.to/totylabs/most-code-execution-engines-are-not-actually-secure-38d3</link>
      <guid>https://dev.to/totylabs/most-code-execution-engines-are-not-actually-secure-38d3</guid>
      <description>&lt;p&gt;When people search for a “code executor,”&lt;br&gt;
they usually care about one thing:&lt;br&gt;
Does it run?&lt;br&gt;
Almost nobody asks the more important question:&lt;br&gt;
Is it secure?&lt;br&gt;
And that’s a problem.&lt;br&gt;
The Illusion of Sandboxing&lt;br&gt;
Many platforms claim to provide “sandboxed execution.”&lt;br&gt;
But what does that actually mean?&lt;br&gt;
Are CPU limits enforced at the OS level?&lt;br&gt;
Is memory capped with real isolation?&lt;br&gt;
Are syscalls restricted?&lt;br&gt;
Is output bounded?&lt;br&gt;
Are timeouts deterministic?&lt;br&gt;
Is multi-tenant isolation truly separated?&lt;br&gt;
Or is it just a Docker container with default settings?&lt;br&gt;
Security is not marketing. It’s architecture.&lt;br&gt;
What Secure Code Execution Actually Requires&lt;br&gt;
A secure code executor must guarantee:&lt;br&gt;
✔ Hard CPU limits&lt;br&gt;
✔ Hard memory caps&lt;br&gt;
✔ Execution timeouts&lt;br&gt;
✔ Output limits&lt;br&gt;
✔ Controlled filesystem access&lt;br&gt;
✔ Restricted network access&lt;br&gt;
✔ Deterministic failure modes&lt;br&gt;
✔ Clear audit logs&lt;br&gt;
And most importantly:&lt;br&gt;
✔ Predictable isolation boundaries&lt;br&gt;
Without these, you're not running secure execution. You're running hopeful execution.&lt;br&gt;
Why This Matters Now&lt;br&gt;
AI systems. Online judges. Education platforms. Internal automation layers.&lt;br&gt;
They all execute untrusted code.&lt;br&gt;
If your execution engine leaks, hangs, over-consumes resources, or breaks tenant boundaries —&lt;br&gt;
You don’t have a feature problem.&lt;br&gt;
You have an infrastructure risk.&lt;br&gt;
Security Is the Core Layer&lt;br&gt;
Secure code execution is not about:&lt;br&gt;
“Can it run 30 languages?”&lt;br&gt;
It’s about:&lt;br&gt;
“What happens when someone tries to break it?”&lt;br&gt;
That’s where architecture matters.&lt;br&gt;
If you're building a platform that executes code, security is not optional.&lt;br&gt;
It is the product.&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>cybersecurity</category>
      <category>security</category>
      <category>systemdesign</category>
    </item>
    <item>
      <title>🚨 The Hidden Problem Most Developers Face When Building Projects</title>
      <dc:creator>TotyLabs</dc:creator>
      <pubDate>Wed, 11 Feb 2026 01:21:18 +0000</pubDate>
      <link>https://dev.to/totylabs/the-hidden-problem-most-developers-face-when-building-projects-29jc</link>
      <guid>https://dev.to/totylabs/the-hidden-problem-most-developers-face-when-building-projects-29jc</guid>
      <description>&lt;p&gt;Most developers don’t fail because they can’t code.&lt;br&gt;
They fail because they build without structure.&lt;br&gt;
You’ve probably felt this:&lt;br&gt;
You start a project excited.&lt;br&gt;
You ship fast.&lt;br&gt;
You add features.&lt;br&gt;
You “refactor later.”&lt;br&gt;
Six months later… the system is fragile.&lt;br&gt;
You’re afraid to touch it.&lt;br&gt;
You start a new project instead.&lt;br&gt;
It’s not a skill issue.&lt;br&gt;
It’s a systems mindset issue.&lt;br&gt;
The Real Problem&lt;br&gt;
Most devs think like builders.&lt;br&gt;
Very few think like architects.&lt;br&gt;
They focus on:&lt;br&gt;
Features&lt;br&gt;
Speed&lt;br&gt;
Stack&lt;br&gt;
Framework trends&lt;br&gt;
But they ignore:&lt;br&gt;
Contracts&lt;br&gt;
Failure modes&lt;br&gt;
Execution boundaries&lt;br&gt;
Isolation&lt;br&gt;
Operational predictability&lt;br&gt;
And when the project grows, chaos appears.&lt;br&gt;
The Career Version of This&lt;br&gt;
It’s the same in work life.&lt;br&gt;
You:&lt;br&gt;
Say yes to everything.&lt;br&gt;
Take on more tasks.&lt;br&gt;
Ship fast.&lt;br&gt;
Don’t define boundaries.&lt;br&gt;
Don’t stabilize your base.&lt;br&gt;
Eventually you burn out.&lt;br&gt;
Or your project collapses under its own weight.&lt;br&gt;
What Changed for Me&lt;br&gt;
When I started building infrastructure instead of apps, something shifted.&lt;br&gt;
Instead of asking:&lt;br&gt;
“How fast can I ship this?”&lt;br&gt;
I started asking:&lt;br&gt;
“How does this fail?”&lt;br&gt;
“What are the execution limits?”&lt;br&gt;
“What happens under abuse?”&lt;br&gt;
“What is the contract?”&lt;br&gt;
That’s how GozoLite was built.&lt;br&gt;
Not as a “code runner”.&lt;br&gt;
But as a system with:&lt;br&gt;
Explicit execution contracts&lt;br&gt;
Defined resource limits&lt;br&gt;
Isolation boundaries&lt;br&gt;
Controlled architectural freeze&lt;br&gt;
Because in B2B systems, stability beats speed.&lt;br&gt;
Final Thought&lt;br&gt;
If you want your projects to survive:&lt;br&gt;
Stop optimizing for launch. Start optimizing for structure.&lt;br&gt;
Most devs don’t lack talent.&lt;br&gt;
They lack architecture discipline.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>🛡️ The Future of Code Execution Is Self-Hosted</title>
      <dc:creator>TotyLabs</dc:creator>
      <pubDate>Mon, 09 Feb 2026 16:13:56 +0000</pubDate>
      <link>https://dev.to/totylabs/the-future-of-code-execution-is-self-hosted-43ek</link>
      <guid>https://dev.to/totylabs/the-future-of-code-execution-is-self-hosted-43ek</guid>
      <description>&lt;p&gt;Over the last few years, remote code execution APIs have exploded.&lt;br&gt;
They’re convenient.&lt;br&gt;
They’re fast.&lt;br&gt;
They abstract everything away.&lt;br&gt;
But there’s a silent trade-off almost nobody talks about:&lt;br&gt;
Your code isn’t just code. It’s intellectual property.&lt;br&gt;
In the AI era, sending internal logic, proprietary algorithms, or user submissions to third-party execution engines isn’t just a technical choice.&lt;br&gt;
It’s a strategic decision about control.&lt;br&gt;
So the real question becomes:&lt;br&gt;
Do you want your platform’s execution layer to depend on infrastructure you don’t control?&lt;br&gt;
The Current Execution Model&lt;br&gt;
Most execution platforms today:&lt;br&gt;
Depend on external APIs&lt;br&gt;
Charge per execution&lt;br&gt;
Introduce vendor lock-in&lt;br&gt;
Process sensitive logic outside your infrastructure&lt;br&gt;
Abstract away operational visibility&lt;br&gt;
For experimentation?&lt;br&gt;
That’s fine.&lt;br&gt;
For production systems handling real users and proprietary logic?&lt;br&gt;
That’s a different conversation.&lt;br&gt;
The Strategic Alternative: Execution Sovereignty&lt;br&gt;
When I built GozoLite, the architectural principle was clear:&lt;br&gt;
If you execute code, you should control the environment.&lt;br&gt;
Not just the API surface.&lt;br&gt;
The runtime.&lt;br&gt;
The isolation model.&lt;br&gt;
The resource limits.&lt;br&gt;
The failure modes.&lt;br&gt;
That means:&lt;br&gt;
✔ Modular architecture&lt;br&gt;
✔ Multi-language support (29 runtimes)&lt;br&gt;
✔ Explicit isolation boundaries&lt;br&gt;
✔ Deterministic resource limits&lt;br&gt;
✔ Fully self-hosted capability&lt;br&gt;
✔ No mandatory external dependency&lt;br&gt;
Execution should be portable.&lt;br&gt;
Deployable.&lt;br&gt;
Inspectable.&lt;br&gt;
Governable.&lt;br&gt;
Where Sovereign Execution Actually Matters&lt;br&gt;
Education Platforms&lt;br&gt;
Run student code without per-request pricing pressure.&lt;br&gt;
Own your infrastructure cost model.&lt;br&gt;
Technical Interview Systems&lt;br&gt;
Deploy a sandbox tailored to your hiring workflows, not a generic API abstraction.&lt;br&gt;
Enterprises&lt;br&gt;
Avoid sending proprietary business logic through third-party execution layers.&lt;br&gt;
AI &amp;amp; ML Teams&lt;br&gt;
Keep full control over data flow, execution pipelines, and model-adjacent computation.&lt;br&gt;
When execution is core to your product, outsourcing it blindly becomes a liability.&lt;br&gt;
The Hidden Engineering Reality&lt;br&gt;
Supporting 29 languages in a unified modular architecture isn’t “just Docker.”&lt;br&gt;
You’re dealing with:&lt;br&gt;
Compiled vs interpreted runtime models&lt;br&gt;
Consistent execution contracts&lt;br&gt;
Memory ceilings and CPU quotas&lt;br&gt;
Timeout enforcement&lt;br&gt;
Output limits&lt;br&gt;
Tenant isolation&lt;br&gt;
Deterministic failure modes&lt;br&gt;
At that point, architecture isn’t implementation detail.&lt;br&gt;
It’s the product.&lt;br&gt;
The Bigger Shift&lt;br&gt;
The future isn’t simply serverless.&lt;br&gt;
It’s:&lt;br&gt;
Portable&lt;br&gt;
Modular&lt;br&gt;
Observable&lt;br&gt;
Self-governed&lt;br&gt;
Sovereign&lt;br&gt;
If your platform executes user code, the infrastructure decision defines:&lt;br&gt;
Your security posture&lt;br&gt;
Your cost structure&lt;br&gt;
Your operational risk&lt;br&gt;
Your vendor exposure&lt;br&gt;
Your long-term flexibility&lt;br&gt;
Execution is not a utility.&lt;br&gt;
It’s a strategic layer.&lt;br&gt;
And the teams that control it will control far more than they realize.&lt;/p&gt;

</description>
      <category>api</category>
      <category>architecture</category>
      <category>backend</category>
      <category>security</category>
    </item>
  </channel>
</rss>
