How to Do Real Systems Software Research at Home: A High School Student’s Guide to Free Tools, Affordable Kits, and Public Databases

How to Do Real Systems Software Research at Home: A High School Student’s Guide to Free Tools, Affordable Kits, and Public Databases

Ready to Turn This Idea Into a Real Project?

This guide was put together with the help of AI research tools to give you a solid starting point. But a competitive science fair project lives in the details: refining your research question, fine-tuning your variables, analyzing your data, and presenting your findings like a seasoned scientist.

For next steps tailored to your interests, skill level, and timeline, work one-on-one with a MehtA+ mentor. Learn more about MehtA+ Science & Engineering Research Mentorship →

Systems software used to mean a research lab, a server room, and a budget. Now it means your laptop, a free cloud account, and an internet connection.

This guide is your starting point. It covers three things: the small hardware kit that turns your desk into a real systems lab, the free software that professional researchers actually use, and the public datasets that let you publish results worth taking to ISEF.

Why This Is Possible Now

Three shifts happened in the last decade, and together they changed who gets to do this work.

First, the compilers, kernels, and databases that run the world are open source. LLVM, the Linux kernel, Postgres, SQLite, DuckDB, Redis, and Rust all live on GitHub. You can read them, fork them, and submit a patch from your bedroom.

Second, free compute is real. Google Colab gives you a T4 GPU for free. Oracle Cloud has an always-free tier with two ARM VMs. AWS, GCP, and Azure all hand out student credits. A Raspberry Pi costs about $40 and runs a full Linux distribution.

Third, the datasets are public and huge. GitHub Archive, the Stack v2, Common Crawl, CVE/NVD, SWE-bench, and OULAD are all free to download. The same data that powers industry research is one wget away.

Put those together and a laptop on your kitchen counter can fuzz a kernel, train a small language model, profile a database, and analyze 200 million pull requests.

The Systems Software Home Kit

You need less hardware than you think. Most of it you probably already own.

Your main machine

  • A laptop with 8 to 16 GB of RAM and 256 GB of storage. Mac, Windows, or Linux all work.
  • An external SSD (256 GB to 1 TB, around $40 to $80) for datasets you do not want on your main drive.

Edge and embedded targets

  • A Raspberry Pi 4 or 5 with a power supply and microSD card (about $50 to $80). This is your "second computer" for distributed systems, eBPF, schedulers, and on-device ML.
  • A Raspberry Pi Pico or any cheap RP2040 board (about $5 to $10) for low-level firmware, post-quantum crypto benchmarks, and energy measurements.
  • An old Android phone. Anything from the last 5 years works for on-device ML, sensor research, and mobile app projects.

Cloud and compute

  • A free Google Colab account for GPU work.
  • A free Oracle Cloud "Always Free" account for two small ARM VMs you can keep running.
  • A free GitHub account with student benefits for private repos and Codespaces.

Networking and lab-only hardware

  • A USB-Ethernet adapter (about $15) if you want a second network interface for traffic-capture projects.
  • A cheap second-hand Wi-Fi router you can flash with OpenWrt (about $20 used) for any router-side or smart-home traffic-shaping project.

Total cost range: about $0 if you have a laptop and a phone, up to roughly $200 if you buy a Pi, a Pico, and an external SSD.

Signature Technique: Running Professional Workloads on a Free Colab GPU

The one move that unlocks more systems-software projects than any other is learning to run a real benchmark on Colab's free GPU. Here is the workflow.

  1. Pick a benchmark, not a toy. Choose a public benchmark with a leaderboard: SWE-bench, HumanEval, MBPP, Defects4J, TPC-H, YCSB, JOB, or a SAT Competition track. Real benchmarks make your numbers comparable to published work.
  2. Mount your dataset once. Put the benchmark and any model weights in Google Drive, then mount Drive in Colab. You will not waste your GPU time on downloads every session.
  3. Containerize the environment. Write a single setup.sh that installs every dependency with pinned versions. Run it as the first cell. A fresh Colab VM should reproduce your run with one click.
  4. Log everything to a Parquet file. For each run, log wall-clock time, peak RAM, accuracy or recall, and a Git commit hash. Polars or DuckDB can query the log later.
  5. Compare against a baseline you did not write. The point is the delta, not the absolute number. Run the existing tool (HNSW, Louvain, Zstd, KMC3, V8 regex, llama.cpp) on the same machine, in the same notebook, in the same session.

This loop, baseline-then-delta on free hardware, is what turns a school project into something a judge will read.

The Dry-Lab Side: Free Software You Can Install Today

These are the tools professional systems researchers use. They are all free for students.

Languages and compilers

  • Rust, Go, C++, Python, and TypeScript for almost everything in this category.
  • LLVM and MLIR for compiler and IR projects.
  • tree-sitter, ANTLR, and Lark for parsing source code into ASTs.
  • CodeQL (free for open-source) and Semgrep for static analysis at scale.

Verification and fuzzing

  • Z3 and CVC5 for SMT-based reasoning about programs.
  • TLA+ and Alloy for designing and checking distributed protocols.
  • AFL++, libFuzzer, Honggfuzz, and Atheris for fuzzing C, C++, and Python.
  • KLEE and angr for symbolic execution and binary analysis.

ML systems

  • PyTorch, JAX, and TensorFlow for training.
  • ONNX, TVM, and Triton for inference and kernel compilation.
  • llama.cpp, Ollama, vLLM, and mlc-llm for running language models on small hardware.
  • bitsandbytes and PEFT for quantization and LoRA fine-tuning.

Databases and distributed systems

  • SQLite, DuckDB, and Postgres for embedded and relational work.
  • RocksDB and LevelDB for key-value store research.
  • Redis, Kafka (single-node), etcd, and NATS for messaging and consensus.
  • Apache Arrow, Parquet, and Polars for columnar data at speed.
  • FAISS, Chroma, and Milvus-lite for vector indexes.

Observability and security

  • eBPF through bcc and bpftrace for kernel-level tracing.
  • perf, strace, Valgrind, and OpenTelemetry for performance profiling.
  • Wireshark, tcpdump, Scapy, and Zeek for network capture and analysis.
  • Ghidra, radare2, and YARA for reverse engineering and malware analysis.
  • Volatility for memory forensics.

Running the same tools as a graduate student changes the texture of the project. You are not modeling research. You are doing it.

Public Databases That Count as Real Data

Systems software is data-rich, and most of that data is open.

Code and software engineering

  • GitHub Archive and the BigQuery public GH dataset for hundreds of millions of commits, PRs, and issues.
  • The Stack v2 and CodeSearchNet for code corpora used to train models.
  • SWE-bench, HumanEval, MBPP, Defects4J, BugSwarm, and ManySStuBs4J for code-task and bug-fixing benchmarks.

Security

  • CVE/NVD for every disclosed vulnerability with structured metadata.
  • ExploitDB and MITRE ATT&CK for exploit code and threat-model taxonomies.
  • MalwareBazaar, VirusShare, and EMBER for malware samples and features.
  • CIC-IDS, UNSW-NB15, CSE-CIC-IDS2018, TON_IoT, and DARPA TC for network-traffic and IDS research.

Systems and databases

  • TPC-H and JOB (Join Order Benchmark) for query optimization.
  • YCSB for key-value workloads.
  • Stack Overflow data dump and NYC/SF open data portals for realistic messy schemas.
  • Wikipedia dumps and Common Crawl for full-text and web-scale data.

Scientific text and learning

  • OpenAlex, Semantic Scholar, and ArXiv full text for paper metadata and content.
  • OULAD, EdNet, ASSISTments, and Junyi Academy for learning-analytics research.
  • USPTO patent text and GDELT for large-scale text mining.

A project that re-analyzes a public dataset with a new algorithm is a real contribution. You do not need to collect new data to do new research.

How to Combine Wet and Dry: The Strongest Project Shape

"Wet" here means real-world measurement on real hardware. "Dry" means algorithm, theory, or simulation. The best Systems Software projects pair them.

Pattern A: Algorithm plus benchmark. Design a new data structure, scheduler, codec, or index. Prove a bound on paper. Then run it head-to-head against the best public implementation on a real public benchmark, on your laptop or a Raspberry Pi.

Pattern B: System measurement plus model. Instrument a real system you can run at home, a browser tab, a Linux kernel with eBPF, a phone app, a SQLite database. Collect timing, memory, or energy data. Then build a model or attack that exploits or defends what you measured.

Judges remember projects that connect theory to a number you measured yourself. That handoff is the story.

Choosing a Phenomenon That Has Not Been Done

You do not need a topic nobody has touched. You need a question with a clear delta. Here is how to check.

  1. Search Google Scholar for your candidate question with quotes around the key phrase. Sort by date. Read three abstracts. Note the year, the dataset, and the metric each paper used.
  2. Search the Society for Science abstracts archive at the ISEF and Regeneron STS pages for prior finalist projects in your subcategory. Read titles for the last 3 to 5 years.
  3. Search the relevant venue, ACM Digital Library, IEEE Xplore, USENIX, or arXiv's cs.* sections, for the most recent paper in the area. Look at what they call "future work" in the conclusion.

If you find three to five papers near your idea, that is the best possible outcome. Adjacent prior work means the question is real, the data is available, and you can position your delta clearly.

A Realistic Timeline

  • One to two weeks: Replicate one figure from a recent systems paper or benchmark a single tool on a new dataset. You learn the toolchain and produce a clean plot.
  • One to two months: Build a full hybrid project for a regional fair. New algorithm or system, one public benchmark, one baseline comparison, one writeup.
  • Full year: ISEF-track project with theoretical analysis, ablation studies, two or more benchmarks, and a reproducibility package on GitHub.

If this is your first project, start with the one-to-two-week version. The compounding from a small finished result is huge.

A Starter Checklist

  1. A laptop with at least 8 GB of RAM, with a Unix-style shell (macOS Terminal, Linux, or WSL on Windows).
  2. A free Google Colab account and a free GitHub account, with two-factor auth on both.
  3. A local Python environment using pyenv or conda, plus a recent Rust toolchain via rustup and a C/C++ compiler.
  4. Git installed and a personal repo with a README.md, a LICENSE, and a notebooks/ folder ready to go.
  5. A lab notebook, paper or digital, where every experiment gets a date, a hypothesis, a command, and a result.
  6. One named baseline tool already installed and running on a known benchmark (for example, DuckDB on TPC-H, or llama.cpp on a small model).
  7. A one-sentence research question written down before you pick a phenomenon.

If you have those seven things, you are set up better than most first-year graduate students.

Where to Go Next

Systems Software at ISEF has seven subcategories. Each has its own MehtA+ project guide that fits the kit on this page. Pick the one that pulls you in.

  • Algorithms (ALG): New data structures, complexity proofs, and faster solutions to classic problems.
  • Cybersecurity (CYB): Attacks, defenses, cryptography, malware analysis, and privacy.
  • Databases (DAT): Query engines, storage, indexes, compression, and learned components inside databases.
  • Human/Machine Interface (HMC): New input methods, accessibility tools, adaptive UIs, and user studies.
  • Languages and Operating Systems (LNG): Compilers, type systems, kernels, schedulers, and formal verification.
  • Mobile Apps (APP): On-device ML, sensor fusion, and apps that solve real problems on a phone.
  • Online Learning (LRN): Tutoring systems, learning analytics, and tools that improve how students learn.
  • Other (OTH): Reproducibility, sustainability, developer tools, and projects that do not fit anywhere else.

A laptop, a $40 Pi, and a free Colab account are enough to do real work in any of them.

Project ideas in this category (81)

Adaptive Graph Algorithm Selection for Shortest Paths

Systems Software · Algorithms · Advanced

Adaptive SQL Join Algorithms for Skewed Data

Systems Software · Algorithms · Advanced

Adaptive SQLite Cache Control for Browser Databases

Systems Software · Databases · Advanced

Adaptive Web App UIs for Older Users

Systems Software · Human/Machine Interface · Advanced

AI Phishing Email Detection With Tiny On-Device Models

Systems Software · Cybersecurity · Advanced

AI Query Optimization for DuckDB

Systems Software · Databases · Advanced

Android News Credibility Checker

Systems Software · Mobile Apps · Advanced

Audio-Only Lecture Learning App

Systems Software · Online Learning · Advanced

Auto-Tuning Key-Value Storage on Raspberry Pi

Systems Software · Databases · Advanced

Battery-Saving Linux Scheduler for Phones

Systems Software · Languages and Operating Systems · Advanced

Browser Dark Pattern Detector

Systems Software · Human/Machine Interface · Advanced

Browser Defense for Prompt Injection Attacks

Systems Software · Cybersecurity · Advanced

Cache-Oblivious Vector Search on a Laptop

Systems Software · Algorithms · Advanced

Carbon-Aware Python Job Scheduling

Systems Software · Other · Intermediate

Cognitive-Load Code Editor for Student Programmers

Systems Software · Human/Machine Interface · Advanced

For next steps tailored to your interests, skill level, and timeline, work one-on-one with a MehtA+ mentor. Learn more about MehtA+ Science & Engineering Research Mentorship →

To discover more projects, visit the MehtA+ Science Fair Project Discovery Hub​ →

Shopping Cart