refacto: vide-coding to get a terminal look
This commit is contained in:
33
content/about.md
Normal file
33
content/about.md
Normal file
@@ -0,0 +1,33 @@
|
||||
# About Me
|
||||
|
||||
Hello — I'm **Gauvain Boiché**, a computer science student and developer based in France.
|
||||
|
||||
I build things at the intersection of systems programming, web technology, and good design. This terminal is itself a small project: a static portfolio that navigates like a Unix filesystem.
|
||||
|
||||
---
|
||||
|
||||
## Background
|
||||
|
||||
I started programming by taking apart old software and curiosity about how things work at a low level. That thread has run through everything since — from writing bare-metal code to designing distributed systems to crafting interfaces that feel just right.
|
||||
|
||||
## Education
|
||||
|
||||
- **Master's in Computer Science** — in progress
|
||||
- Coursework: algorithms & complexity, operating systems, distributed computing, machine learning fundamentals
|
||||
- Strong academic record with particular interest in systems and compilers
|
||||
|
||||
## What Drives Me
|
||||
|
||||
> The best technology disappears. You stop thinking about the tool and start thinking about the problem.
|
||||
|
||||
I care deeply about **correctness**, **performance**, and **clarity** — in code, in interfaces, and in communication. I prefer to understand things from first principles rather than cargo-cult patterns.
|
||||
|
||||
---
|
||||
|
||||
## Outside the Terminal
|
||||
|
||||
When I'm not at a keyboard, I'm probably reading about computing history, tinkering with vintage hardware, or trying to convince someone that Vim is not that complicated.
|
||||
|
||||
---
|
||||
|
||||
*Navigate with ↑↓ and ENTER — press Q or ESC to go back.*
|
||||
40
content/contact.md
Normal file
40
content/contact.md
Normal file
@@ -0,0 +1,40 @@
|
||||
# Contact
|
||||
|
||||
I'm open to collaborations, internship opportunities, and interesting conversations about technology.
|
||||
|
||||
---
|
||||
|
||||
## How to Reach Me
|
||||
|
||||
**Email**
|
||||
`gauvain.boiche [at] gmail [dot] com`
|
||||
|
||||
**GitHub**
|
||||
`github.com/gauvainboiche`
|
||||
|
||||
**LinkedIn**
|
||||
`linkedin.com/in/gauvainboiche`
|
||||
|
||||
---
|
||||
|
||||
## What I'm Looking For
|
||||
|
||||
- **Internships / apprenticeships** in systems engineering, backend development, or ML infrastructure
|
||||
- **Open source collaboration** — especially on compilers, tools, or developer infrastructure
|
||||
- **Freelance work** — web applications, APIs, automation scripts
|
||||
|
||||
---
|
||||
|
||||
## Response Time
|
||||
|
||||
I typically respond within 48 hours. If you're reaching out about a time-sensitive opportunity, please mention it in the subject line.
|
||||
|
||||
---
|
||||
|
||||
## A Note on This Site
|
||||
|
||||
This portfolio is intentionally low-tech: a single HTML file, one CSS file, one JS file, and a folder of Markdown. No framework, no build step, no tracking. The source is on GitHub if you're curious.
|
||||
|
||||
---
|
||||
|
||||
*Press Q or ESC to return.*
|
||||
42
content/manifest.json
Normal file
42
content/manifest.json
Normal file
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"name": "~",
|
||||
"type": "dir",
|
||||
"children": [
|
||||
{
|
||||
"name": "about.md",
|
||||
"type": "file",
|
||||
"path": "content/about.md"
|
||||
},
|
||||
{
|
||||
"name": "skills.md",
|
||||
"type": "file",
|
||||
"path": "content/skills.md"
|
||||
},
|
||||
{
|
||||
"name": "projects",
|
||||
"type": "dir",
|
||||
"children": [
|
||||
{
|
||||
"name": "web_dev.md",
|
||||
"type": "file",
|
||||
"path": "content/projects/web_dev.md"
|
||||
},
|
||||
{
|
||||
"name": "systems.md",
|
||||
"type": "file",
|
||||
"path": "content/projects/systems.md"
|
||||
},
|
||||
{
|
||||
"name": "ai_ml.md",
|
||||
"type": "file",
|
||||
"path": "content/projects/ai_ml.md"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "contact.md",
|
||||
"type": "file",
|
||||
"path": "content/contact.md"
|
||||
}
|
||||
]
|
||||
}
|
||||
71
content/projects/ai_ml.md
Normal file
71
content/projects/ai_ml.md
Normal file
@@ -0,0 +1,71 @@
|
||||
# AI & Machine Learning Projects
|
||||
|
||||
Experiments at the boundary of classical algorithms and modern deep learning.
|
||||
|
||||
---
|
||||
|
||||
## Handwritten Digit Classifier
|
||||
|
||||
A convolutional neural network trained on MNIST, built from scratch using **PyTorch** without relying on pretrained weights.
|
||||
|
||||
**Architecture:**
|
||||
|
||||
```
|
||||
Input (1×28×28)
|
||||
→ Conv2d(1, 32, 3) + ReLU + MaxPool
|
||||
→ Conv2d(32, 64, 3) + ReLU + MaxPool
|
||||
→ Dropout(0.25)
|
||||
→ Linear(64×5×5 → 128) + ReLU
|
||||
→ Dropout(0.5)
|
||||
→ Linear(128 → 10)
|
||||
→ LogSoftmax
|
||||
```
|
||||
|
||||
**Results:** 99.2 % test accuracy after 10 epochs on a single CPU.
|
||||
|
||||
---
|
||||
|
||||
## Sentence Similarity Engine
|
||||
|
||||
A small semantic search tool that encodes sentences into embeddings and retrieves the most similar entries from a knowledge base.
|
||||
|
||||
**Approach:**
|
||||
|
||||
- Sentence embeddings via a fine-tuned BERT variant (`sentence-transformers`)
|
||||
- FAISS index for approximate nearest-neighbour search at scale
|
||||
- CLI interface — `search.py "your query"`
|
||||
|
||||
**Use case:** powering a private personal knowledge base search over Markdown notes.
|
||||
|
||||
---
|
||||
|
||||
## Reinforcement Learning: Grid World
|
||||
|
||||
A from-scratch implementation of Q-Learning and SARSA applied to a configurable grid-world environment.
|
||||
|
||||
**Implemented:**
|
||||
|
||||
- Tabular Q-learning with ε-greedy exploration
|
||||
- SARSA (on-policy variant)
|
||||
- Policy iteration and value iteration for comparison
|
||||
- Visualiser showing the learned value function as a heatmap
|
||||
|
||||
**Written in pure Python + NumPy** — no RL libraries — for learning purposes.
|
||||
|
||||
---
|
||||
|
||||
## Anomaly Detection on Time Series
|
||||
|
||||
A pipeline for detecting anomalies in server metric data (CPU, memory, latency).
|
||||
|
||||
**Methods compared:**
|
||||
|
||||
- Z-score baseline
|
||||
- Isolation Forest
|
||||
- LSTM autoencoder (reconstruction error threshold)
|
||||
|
||||
**Outcome:** LSTM autoencoder outperformed statistical methods by ~18 % precision on labelled incidents from a personal homelab dataset.
|
||||
|
||||
---
|
||||
|
||||
*Press Q or ESC to return.*
|
||||
69
content/projects/systems.md
Normal file
69
content/projects/systems.md
Normal file
@@ -0,0 +1,69 @@
|
||||
# Systems Programming Projects
|
||||
|
||||
Low-level work: operating systems, compilers, networking, and performance engineering.
|
||||
|
||||
---
|
||||
|
||||
## Tiny HTTP/1.1 Server (C)
|
||||
|
||||
A from-scratch HTTP server written in C that handles concurrent connections using `epoll` on Linux.
|
||||
|
||||
**What it does:**
|
||||
|
||||
- Serves static files with correct MIME types
|
||||
- Handles `keep-alive` connections
|
||||
- Parses request headers manually (no third-party parser)
|
||||
- ~1,200 lines of C — intentionally minimal
|
||||
|
||||
**Interesting problems solved:**
|
||||
|
||||
- Non-blocking I/O with an event loop
|
||||
- Incremental parsing of chunked request bodies
|
||||
- Safe path traversal (no `../` escapes from the document root)
|
||||
|
||||
---
|
||||
|
||||
## Shell Implementation (C)
|
||||
|
||||
A POSIX-compatible shell (`mysh`) supporting pipelines, redirections, background jobs, and a small built-in set.
|
||||
|
||||
**Supported features:**
|
||||
|
||||
- Pipelines: `cmd1 | cmd2 | cmd3`
|
||||
- I/O redirections: `>`, `>>`, `<`, `2>`
|
||||
- Background jobs: `cmd &`
|
||||
- Job control: `fg`, `bg`, `jobs`
|
||||
- Signal handling (SIGINT, SIGTSTP, SIGHUP)
|
||||
|
||||
**Focus areas:** `fork/exec` model, `waitpid`, file descriptor management, signal masking.
|
||||
|
||||
---
|
||||
|
||||
## Memory Allocator
|
||||
|
||||
A drop-in `malloc` replacement using `mmap`-backed free lists with coalescing.
|
||||
|
||||
**Algorithms implemented:**
|
||||
|
||||
- First-fit and best-fit strategies (switchable at compile time)
|
||||
- Boundary-tag coalescing to reduce fragmentation
|
||||
- Thread-local caches for small allocations (reduces lock contention)
|
||||
|
||||
**Benchmarked** against `glibc malloc` on synthetic workloads — within 2× for mixed-size allocations.
|
||||
|
||||
---
|
||||
|
||||
## Bytecode Interpreter (Python → C)
|
||||
|
||||
A small virtual machine that executes a simple bytecode format, written in C. The front-end compiler is written in Python and produces `.bco` files.
|
||||
|
||||
**VM features:**
|
||||
|
||||
- Stack-based architecture (inspired by CPython)
|
||||
- 30 opcodes: arithmetic, comparisons, jumps, function calls, closures
|
||||
- Mark-and-sweep garbage collector
|
||||
- Disassembler for debugging (`--disasm` flag)
|
||||
|
||||
---
|
||||
|
||||
*Press Q or ESC to return.*
|
||||
56
content/projects/web_dev.md
Normal file
56
content/projects/web_dev.md
Normal file
@@ -0,0 +1,56 @@
|
||||
# Web Development Projects
|
||||
|
||||
A selection of web projects — from small tools to more complete applications.
|
||||
|
||||
---
|
||||
|
||||
## Terminal Portfolio *(this site)*
|
||||
|
||||
> The page you are currently reading was itself a project.
|
||||
|
||||
A fully static portfolio designed to look and behave like a Unix terminal. No framework, no build step — just HTML, CSS, and vanilla JavaScript.
|
||||
|
||||
**Key features:**
|
||||
|
||||
- CRT aesthetics: scanlines, flicker animation, bloom/glow on text
|
||||
- Blinking rectangular cursor that follows mouse clicks
|
||||
- Markdown content tree loaded from a manifest — add `.md` files without touching `index.html`
|
||||
- Keyboard navigation (arrows, Enter, Escape, Q) + mouse
|
||||
- Dynamically sized terminal window (responds to viewport changes)
|
||||
|
||||
**Stack:** HTML · CSS (animations, custom properties) · JavaScript (ES2020) · marked.js
|
||||
|
||||
---
|
||||
|
||||
## Personal Finance Tracker
|
||||
|
||||
A small single-page application to track income and expenses with monthly breakdowns.
|
||||
|
||||
**Highlights:**
|
||||
|
||||
- No backend — all data stored in `localStorage` with a clean JSON schema
|
||||
- CSV import/export for moving data to spreadsheets
|
||||
- Chart visualisation using the Canvas API (no libraries)
|
||||
- Fully keyboard-navigable
|
||||
|
||||
**Stack:** JavaScript · CSS Grid · Canvas API
|
||||
|
||||
---
|
||||
|
||||
## REST API Boilerplate
|
||||
|
||||
A reusable Node.js/Express skeleton with authentication, request validation, and structured logging built in — designed to be forked and extended.
|
||||
|
||||
**Features:**
|
||||
|
||||
- JWT-based auth with refresh tokens
|
||||
- Zod schema validation on all endpoints
|
||||
- Structured JSON logs (pino)
|
||||
- Docker Compose stack (app + PostgreSQL)
|
||||
- OpenAPI spec auto-generated from route definitions
|
||||
|
||||
**Stack:** Node.js · Express · PostgreSQL · Docker · Zod
|
||||
|
||||
---
|
||||
|
||||
*Press Q or ESC to return.*
|
||||
46
content/skills.md
Normal file
46
content/skills.md
Normal file
@@ -0,0 +1,46 @@
|
||||
# Skills
|
||||
|
||||
A snapshot of the tools and technologies I work with regularly, and where I place my confidence.
|
||||
|
||||
---
|
||||
|
||||
## Languages
|
||||
|
||||
| Language | Proficiency | Notes |
|
||||
|------------|-------------|--------------------------------------------|
|
||||
| C | ★★★★★ | Systems, embedded, performance-critical code |
|
||||
| Python | ★★★★★ | Scripting, data pipelines, ML prototyping |
|
||||
| JavaScript | ★★★★☆ | Full-stack, Node.js, browser APIs |
|
||||
| Rust | ★★★☆☆ | Learning — memory safety, async runtimes |
|
||||
| Java | ★★★☆☆ | Coursework, Spring ecosystem |
|
||||
| Bash / Zsh | ★★★★☆ | Automation, CI scripting |
|
||||
|
||||
---
|
||||
|
||||
## Systems & Infrastructure
|
||||
|
||||
- **Operating Systems** — Linux administration, kernel concepts, process/memory management
|
||||
- **Networking** — TCP/IP, HTTP, DNS, socket programming
|
||||
- **Containerisation** — Docker, Docker Compose
|
||||
- **Version Control** — Git (including rebase, worktrees, bisect)
|
||||
- **CI/CD** — GitHub Actions, basic pipeline design
|
||||
|
||||
---
|
||||
|
||||
## Web Development
|
||||
|
||||
- **Frontend** — Vanilla JS/CSS, React (functional, hooks), accessible HTML
|
||||
- **Backend** — Node.js/Express, Python/FastAPI, REST API design
|
||||
- **Databases** — PostgreSQL, SQLite, basic Redis usage
|
||||
|
||||
---
|
||||
|
||||
## Other
|
||||
|
||||
- **Algorithms & Data Structures** — competitive-programming level
|
||||
- **Compilers** — lexing, parsing, AST construction (hobby project)
|
||||
- **Machine Learning** — PyTorch, scikit-learn, classical + deep methods
|
||||
|
||||
---
|
||||
|
||||
*Press Q or ESC to return.*
|
||||
Reference in New Issue
Block a user