Looking for a Summer 2027 internship

Aiden Boudreau

I study electrical engineering at Montana State, and I build things people use: an app my old school district runs on its bus kiosks, a home server that hosts about 30 services, and open-source tools for Linux.

EE, planning a CpE second major · Class of 2029 · Bozeman, MT

Selected work

01 iOS app · Spring 2025

EPHS Activity Bus Finder

Tells Eden Prairie students which after-school bus to ride and where to get off, from just their address. The district adopted it.

Students staying after school used to find their activity bus by matching their address against a wall map and a printed table. Kids got on the wrong bus, and drivers ended up changing routes to cover for it.

I heard about the problem on a class tour of the district's transportation department, worked with their staff on the route data, and built an iOS app: type your address, get your bus and your stop, then walking directions home. A web admin page lets the transportation office upload new route spreadsheets, so they keep it current without me. It stores no names or addresses.

It has run on student iPad kiosks at Eden Prairie High School and Central Middle School since 2025. I built it in my junior year of high school, in the iOS app development capstone.

  • Swift
  • SwiftUI
  • Firebase
  • .xlsx route uploads
How students found their bus, before and after the app Before: students matched their address against a wall map and a printed table, guessed, and sometimes got on the wrong bus. Now: transportation staff upload their route spreadsheets through a web admin page into Firebase. A student types an address into the Bus Finder app on an iPad kiosk and gets their bus, the stop to get off at, and walking directions home in Apple or Google Maps. The address isn't saved. BEFORE · A WALL MAP BY THE EAST ENTRANCE Wall map + Address table Kids guess Wrong bus NOW · iPAD KIOSKS AT EPHS AND CENTRAL MIDDLE Transportationstaff, .xlsx routes Admin pageweb upload Firebaseroutes + stops Studenttypes address Bus FinderiPad kiosk app Your bus + stopwhere to get off Walk homeApple/Google Maps ADDRESS ISN'T SAVED

A student looking up their busTransportation staff updating routes

“It's very simple for users and the information is accurate.”

Bryan Barnhart, Director of Transportation, Eden Prairie Schools

“It was all Aiden. The functionality, user-interface and professional dialogue with Transportation staff was all him!”

Zach Hanson, capstone teacher

02 Infrastructure · Since Jan 2026

My home server

About 30 self-hosted services on my own domain, with zero open ports on the home router. This page is one of them.

It's an Intel i9-12900K with 32 GB of RAM running Ubuntu. Everything runs as Docker Swarm services: photo backup (Immich), file sync (Nextcloud), media, notes, task boards and a few websites.

Public traffic comes in through a Cloudflare Tunnel that the server dials out to, then a Traefik reverse proxy, with Authelia single sign-on in front of the private dashboards. Storage is 18 TB of software RAID: a RAID 1 mirror for what matters, RAID 0 for bulk. I reach it remotely over Tailscale.

  • Ubuntu
  • Docker Swarm
  • Traefik
  • Cloudflare Tunnel
  • Authelia
  • mdadm RAID
  • Tailscale
How a request reaches the home server You connect to Cloudflare. The server keeps an outbound tunnel open to Cloudflare, so the home router has no open ports. Inside, Traefik routes public sites directly and sends private dashboards through Authelia sign-on. Storage is 18 terabytes of RAID. Remote access is over Tailscale. HOME · 0 OPEN PORTS TUNNEL You Cloudflare cloudflared Traefik Public sitesthis page + 2 apps Authelia Private appsnotes, tasks, budget 18 TB RAIDRAID 1 + RAID 0 Tailscale REMOTE ADMIN

The request for this pageA signed-in request to a private app

03 Open source · Oct 2026

Tandem

Your Android phone and your Linux computer, working as one.

It started as a fix for my own headphones, which glitched whenever they were connected to my laptop and my phone at the same time. It grew into a free link between the two: a shared clipboard, phone notifications and calls on the computer, files and links in both directions, find-my-phone, and one pair of Bluetooth headphones shared by both.

Bluetooth pairing is the trust. Small things travel over Bluetooth, and big things go over a pinned TLS connection on Wi-Fi or Tailscale. No account, no cloud, no server.

I designed it and tested it on my own phone and laptop. The code was written with Claude Code.

  • Android (Java)
  • Python
  • BlueZ
  • PipeWire
  • GPL-3.0
Tandem: “Copy here.” on the Android phone side, “Paste there.” on the Linux computer side, with a one-time code crossing between them.

04 Open source · Aug–Oct 2026

Topopaper

A live topographic wallpaper for Linux. The map at the top of this page is a small web version of it.

It turns the desktop into a slowly moving contour map of real terrain, from a globe lit by the actual sun down to the lifts of a single ski resort. Type a place and it builds a map from open elevation and OpenStreetMap data, then flies there. It freezes when windows cover it, so it costs almost nothing while you work.

The background up top draws the Bridger Range above Bozeman from the same elevation tiles, with the same trick for keeping every line one pixel wide.

I designed it and decided what went in. The engine (C and OpenGL) was written with Claude Code.

  • C
  • OpenGL ES
  • Wayland
  • Python
  • GTK 4
  • GPL-3.0

Also

About

I'm from Eden Prairie, Minnesota, and I've been building things on computers since kindergarten.

I started at Montana State in fall 2026 with 37 credits from AP exams and PSEO at the University of Minnesota, which puts me on track to finish electrical engineering and a planned second major in computer engineering in three years, by May 2029.

I'm looking for a Summer 2027 internship in electrical or computer engineering, somewhere I can learn from working engineers and work on real things. I'm open to Minneapolis–St. Paul, Bozeman, or remote.

I use AI tools like Claude Code every day. On every project where it wrote the code, I say so.

Contact

Email is the best way to reach me.