Skip to Main Content
Lightning Talk Beginner First Talk

How I Built a Coding Platform with Sandbox Execution and Queue-Based Processing

Proposal status is Review Pending
Session Description

This idea started when my friend and I tried to purchase a subscription for a coding practice platform. We realized that many useful features were locked behind paid plans, even though the core problems themselves were often available freely. This made me think about building a platform that could provide a structured and accessible coding practice experience for students like us.

The system is a web-based coding platform built using Flask for the backend and PostgreSQL for data management. The frontend is implemented using HTML, CSS, and JavaScript to keep it simple and accessible.

One of the main challenges I faced was how to safely execute user-submitted code. Since users can run arbitrary programs, it is important to protect the server from misuse such as infinite loops, excessive memory usage, or unauthorized operations. While studying how large platforms work, I learned that they rely on container-based systems like Docker and Kubernetes for scalable and secure execution.

In this project, I chose to use NsJail to provide lightweight and efficient sandboxing with fine-grained control over CPU, memory, and system access. This approach is well-suited for controlled academic environments while still ensuring strong security. The architecture is also designed to be extensible, allowing integration with container-based solutions in the future as the system scales.

To handle multiple user requests, I implemented a queue-based execution system in Python that manages parallel submissions efficiently. The system can process multiple executions concurrently while maintaining stability and preventing overload.

The execution pipeline is designed in multiple layers: the main application handles user interaction, the queue system manages execution flow, and the sandboxed execution engine securely runs the code in an isolated environment using temporary directories. Each submission is executed against predefined test cases, and the output is automatically evaluated for correctness, runtime errors, and performance constraints.This layered approach helps maintain both performance and security.

Currently, the platform supports multiple programming languages including Python, Java, JavaScript, and C++. It is actively used by my college peers, and I continue to improve it based on their feedback.

This project has been a valuable learning experience for me in understanding system design, security, and real-world challenges in building developer platforms.

During development, I used Large Language Models as a support tool for learning, debugging, and improving implementation.

Key Takeaways

1)Building a multi-language code execution system

2)Executing untrusted code safely using NsJail

3)Implementing queue-based processing for handling concurrent requests

4)Understanding trade-offs between lightweight sandboxing and container-based systems like Docker

References

Session Categories

Story of a FOSS project - from inception to growth

Speakers

Padma Munish Dhanajeyan.T
Padma Munish Dhanajeyan.T student

I am second-year Computer Science and Engineering student from Tamil Nadu with a strong interest in system design, backend development, and secure code execution. I am passionate about building practical systems that solve real problems for students, especially in learning and development environments. I focuses on areas like sandboxing, execution engines, and scalable backend architectures,currently exploring embedded systems and microprocessor architecture while actively developing projects that combine software and system-level thinking.I love c and c++ programming language now little bit rust attract me and mostly i like to explore all cse stuff and my inspiration linus,terry davis and many more legend we forget to celebrate