E. Minet

Systems Engineer · Digital Engineering · Space Coast, Florida

Evangeline Minet

I build digital threads: system architecture, requirements, CAD geometry and test data joined in one traceable model, plus the Python that keeps it current. I build and verify hardware too: electric powertrains for legacy vehicles, a fire-gutted motorcycle rebuilt as a road-legal EV with my own motor controller, BMS and charger, and the release-control platform for a seven-country fleet of medical-device laptops.

Current
Integrated Solutions Engineer
Contec Americas · Embedded systems
Education
B.S. Aerospace Engineering
B.S. Aeronautical Engineering
Florida Institute of Technology, 2022
Focus
Requirements & traceability, V&V, configuration management, digital twins
Regulated change control: ISO 13485, EU CRA
CAD
PTC Creo Parametric Certified
SolidWorks Certified
Recognition
Best in Show ×2
Aerospace Engineering, Northrop Grumman Student Design Showcase, 2018 & 2019
Volunteer senior-design mentor
Most mentees now at SpaceX and Blue Origin
Status
U.S. permanent resident
U.S. person under ITAR
01

Requirements trace

Rather than claim a fit, here is the trace. Each qualification from the posting links to evidence on this page, with the verification method and an honest status. Select a requirement to read its evidence; on a wider screen, select an evidence column to trace it back.

traced Inspection check the record Demonstration public code or artifact

02

Selected work

E1 · E2Contec Americas2025 – present

A digital thread for embedded systems

Python digital twin models that tie system architecture, CAD geometry and operational telemetry into one traceable engineering repository.

Problem
System architecture, CAD, test data and configuration records lived in separate systems, and keeping them consistent took manual reconciliation.
What I built
Digital twin models in Python that connect architecture, geometry and telemetry. Automated pipelines and REST API connectors between engineering repositories, test data and configuration management. Data contracts and interface specifications agreed with mechanical, electrical and software teams. The AI side is full stack, from research and development through to the software that ships, and much of the role has been R&D.
Verification
Requirements, their verification and their traceability managed in the Altium 365 Requirements & Systems Portal, alongside Altium Designer. Traceability matrices that run from system requirements through sub-system interfaces and design decisions to test cases and acceptance evidence. V&V planning coordinated across system boundaries. Code written with AI assistance is verified independently.
Outcome
Automated pipelines replaced manual data reconciliation, and design revisions stay under configuration control.

Python · REST APIs · Full-stack AI · R&D · Digital twin · Traceability · Configuration management Proprietary work, described in general terms.

E11Contec Americas2025 – present

Release control for a regulated fleet in seven countries

The master control platform for the regional hubs that provision the laptops paired with intraoral scanners made by one of the world’s largest dental-technology companies, best known for clear aligners. The hubs set up 200 to 1,000 laptops a month. The platform runs software releases, sync, monitoring, security scanning and regulatory change control, with a portal the customer uses too, and all of it runs on a Raspberry Pi CM5.

Problem
Under ISO 13485, a country’s hub may only serve a software release once that country’s regulator has approved it. The hubs sit on networks that are reachable only part of the time. Approvals, releases and what each hub actually runs had to agree, with an audit trail anyone could inspect.
What I built
  • A change-control portal (Python, PostgreSQL) showing, per country, the release each hub runs and the one it’s scheduled for, next to its regulatory approval. A hub that serves, or is set to receive, an unapproved release is flagged red. The approval history is append-only, enforced by database triggers.
  • Deployments that must pass every gate before they run: the release is approved for that country, its frozen snapshot passes checksum and manifest checks, a dry run of the same deploy passed in the last 30 minutes, and the operator types the region code. One deploy runs at a time, and every one is logged.
  • Frozen, checksummed release snapshots, so one country can stay on an older approved release while others move ahead. Contec’s infrastructure layer is versioned separately from the customer’s release layer; I verified that combining them reproduces production byte for byte.
  • The master server itself and its command-line suite for version management and promotion from development to production, which I built on my own before I used any AI assistance, plus Ansible playbooks to provision hubs and push configuration.
Verification
  • A software bill of materials for each release, reconciled against the customer’s engineering change orders and exported as CycloneDX 1.5. Checking one 5.5 GB release package caught real defects in it before production: a 19 KB web page shipped in place of a 3.27 GB CUDA installer, and a mislabeled component.
  • Daily Syft and Grype scans of the host and every container, measured against a baseline so only new findings are reported, for EU Cyber Resilience Act vulnerability handling. The automated scan showed that an earlier hand-built SBOM had undercounted.
Operations
  • Every sync run records its result in PostgreSQL, and a Grafana dashboard shows each region’s health, late jobs and run times. It surfaced regions that had gone quiet and a nightly push job that had been failing silently.
  • Traced a fleet-wide outage from a drop in sync run time, 33 s to 1.4 s, to a boot race between NetworkManager and Tailscale that overwrote DNS, and wrote a repeatable fix.
  • Moved sync from one global sweep to per-region timers in each hub’s local business hours, using IANA time zones so schedules hold through daylight-saving changes. Decommissioned one regional hub.
Customer access
Cloudflare Access sign-in, validated on the server and failing closed, limited to an email-domain allow-list with separate admin and viewer roles. Customer viewers never see internal hostnames, paths or errors, and admins can preview exactly what they see. Provisioning and audit records are permanent: the database refuses updates and deletes, and backups run nightly.
Status
In daily use for release tracking, monitoring and scanning. Built but not yet switched on: one-click deploys from the portal, and hubs re-syncing themselves when they boot.

Raspberry Pi CM5 · Python · PostgreSQL · Ansible · Docker · Grafana · InfluxDB · systemd · Cloudflare Zero Trust · Tailscale · Syft & Grype · CycloneDX Proprietary work; the customer isn’t named.

E12Contec Americas2026

Product security and EU Cyber Resilience Act reporting

I run Contec Americas’ product security incident response team (PSIRT) and lead its readiness for Article 14 of the EU Cyber Resilience Act, which since September 11, 2026 requires manufacturers to report actively exploited vulnerabilities and severe incidents within 24 hours.

Problem
Contec Americas is a hardware integrator: it buys PC hardware, installs the operating system and customer software, and sells configured units, some of them medical devices. Most fixes come from suppliers, as BIOS, OS and third-party patches, so incident response is mostly supplier coordination, and the reporting clock still applies.
What I built
  • The PSIRT operating policy, adapted from the parent company’s IEC 62443-4-1 policy: four lean roles, CVSS and CWE severity ranking, coordination with the parent company’s PSIRT on shared components, and a CRA appendix with the 24-hour, 72-hour and final-report deadlines. Released in 2026.
  • Registration on ENISA’s Single Reporting Platform through the company’s EU branch, verified by the national CSIRT.
  • An incident-record design for the company’s ERP, taken in stages from design to field dictionary, JSON schema and HTML mockup. The legal clock starts at the moment of awareness, so every timestamp has a UTC copy, and submissions are kept as immutable records with SHA-256 hashes.
  • A field toolkit on a six-partition USB drive that collects firmware and software inventories from Contec products on Linux and Windows and converts them to CycloneDX 1.6 SBOMs. On medical devices it only reads, and it avoids Windows queries that would make installers reconfigure themselves.
Status
Policy released and the reporting platform registered. Next: a timed dry run of a 24-hour report, an on-call roster, and mapping products to the EU markets they ship to.

EU CRA · IEC 62443-4-1 · ENISA SRP · CVSS · CWE · CycloneDX 1.6 · Bash · PowerShell · Python Proprietary work, described in general terms.

Contec Americas2025 – 2026

Argus: edge AI and an OpenUSD twin of a warehouse

Packages that turn up damaged at a receiving dock, with nobody able to say whether they came off the truck that way. Argus puts vision on the dock with a fanless Contec PC and no NVIDIA GPU, so video never leaves the building, and writes what the cameras see into an OpenUSD stage of the whole warehouse. The browser and NVIDIA Omniverse render that same stage, live, once a second.

What I built
  • Edge inference: YOLOv8n with the backbone compiled for a MemryX accelerator and the detection head on the CPU (ONNX Runtime), about 37 ms a frame, on two 4K cameras covering the bay doors and the room interior. An IoU tracker gives detections stable IDs, and a per-camera homography, calibrated in a browser point-picker, puts each one on the floor in meters.
  • A layered OpenUSD stage: a live layer rewritten every second, a cameras layer with calibrated poses, a layout layer generated from the site CAD (building shell, 15 openings, 71 fixtures, floor markings), and an assets layer. Every prim carries argus:* attributes (class, track ID, camera, zone, door state, pose source) that the browser and Omniverse tools both read.
  • Views on that one stage: a three.js 3D twin and a 2D plan, a shared layout editor, an occupancy heatmap over any window from an hour to a month, and replay of up to 24 hours at up to 300×, drawn from 3.48 million logged floor positions over 102 days. An Omniverse Kit extension hot-swaps the live layer each second.
  • The first phase: an I/O daemon that is the only owner of the Modbus link to a Contec remote I/O unit driving a 12 V stack light, with MQTT/InfluxDB telemetry and an SVG floor plan of the docks.
What broke, and what changed
  • A heuristic damage scorer, run before any trained model existed, fired 678,044 incidents in 18 days, nearly all false. I muted it, archived the flood, and moved to a labeled dataset (1,605 images queued) for a trained detector. A detector that can’t say no is worse than none.
  • The twin segfaulted within seconds under 16 concurrent clients: one thread force-reloaded USD layers while another composed the stage. Now request threads never touch USD; one writer thread owns the stage and HTTP serves a cached scene. A stress run afterwards: 5,825 of 5,825 requests OK.
  • Two services opened the same accelerator and starved each other. Inference moved into one service, and the other became a health watchdog: one owner per device, enforced by the service layout. The same rule runs the Modbus link, where the I/O unit’s own watchdog returns every output to a safe state if Argus crashes.
  • At one write a second, layer files often change within one timestamp tick, so a plain reload skipped them and the twin froze. Layers now force-reload, and writes go through atomic rename so no reader sees half a stage.
  • Bay doors were first guessed at 3.66 m; the CAD said 2.44 m. Every dimension still unmeasured is a commented default in the config, and each camera prim records where its pose came from, so an estimate never passes for a measurement.
Status
Running around the clock as services with health checks: both cameras, detection, tracking, floor mapping, history, the 3D and 2D twins, layout editor and calibration tool. In progress: the custom damage detector (damage alerts stay muted until it ships, so today the cameras track people only) and the second camera’s calibration. The Kit extension’s layer hot-swap is verified in plain OpenUSD but hasn’t yet run inside Kit on the RTX workstation. Next: Omniverse Replicator on the same stage to synthesize labeled frames of damage the real footage rarely shows.
The Argus 3D twin: a three.js render of the whole warehouse from the OpenUSD stage, racks, workstations and bay doors, with a side panel of 2,440 tracks in 24 hours and 3.5 million floor samples over 102 days.
3D twin · whole warehouse
Top view of the 3D twin with the 24-hour occupancy heatmap glowing orange over the receiving area by the bay doors.
Occupancy heatmap · 24 h
The 2D plan: rack rows, production floor, shipping, RMA and receiving zones, with both bay doors shown closed and the camera positions marked.
2D plan · live door state
Live view from the receiving camera: pallets and boxes by the roll-up doors, a timestamp, and green Bay 1 and Bay 2 CLOSED tags from the door detector.
Receiving camera · live

YOLOv8 · MemryX · ONNX Runtime · OpenCV · OpenUSD · three.js · Omniverse Kit · Flask · SQLite · systemd · Label Studio · Modbus Internal Contec project.

Contec Americas2026

A CCTV inference server built to a price

A rack-mount AI server that watches dealership CCTV in real time for vehicles and people, designed for a video-analytics partner under a fixed per-unit cost ceiling.

Method
Constraints first, in order: chassis, then GPU class, then power budget, then cooling. Each open item tracked as either a blocker or an optimization, in a workbook with a live-formula BOM, three configurations compared, site infrastructure, and power and thermal budgets.
What the constraints decided
  • Consumer GPU licenses forbid commercial fleet use, so only professional data-center GPUs qualify: a passive, slot-powered card.
  • A Contec motherboard as the anchor, with an integrated GPU kept for decoding many video streams and the CPU power-capped to stay within its temperature limit in a 2U chassis with the chosen cooler.
  • Surveillance-rated drives and a pure sine-wave UPS, which the server’s active-PFC power supply needs.
Status
The BOM is within 1% of the target. Two blockers remain before any purchase order: the camera count and frame rate, which decide whether a GPU is needed at all, and written confirmation from the board vendor that the x16 slot delivers its full 75 W.

Trade studies · BOM · Power & thermal budgets · NVIDIA data-center GPUs · Ubuntu Proprietary work; the customer isn’t named.

Contec Americas2025 – present

Other Contec work

  • Seismic sensor node Prototype

    A full-stack sensor node for a government customer that locates sources of ground vibration: geophone or accelerometer into a 24-bit ADC, GNSS-disciplined timing so an array of nodes can locate sources by time difference of arrival, STA/LTA event triggering, LTE Cat-M1 backhaul, and LiFePO4 with solar power, for Florida heat, humidity and a high water table.

  • AI-ready small-form-factor desktops

    I lead a three-tier line of compact AI desktops (Standard, Pro, Max), managed in Arena PLM.

  • AI over KVM In progress

    KVM-over-IP on a Raspberry Pi CM4 or CM5 with an HDMI-to-CSI capture board, built around an agent loop: it captures the screen as JPEG frames, an AI model decides, and the device types and clicks.

  • Isolated engineering lab

    A private-subnet lab for CI/CD, embedded and IoT work, self-hosted services and network R&D, with its own internal DNS zone, subdomain routing behind a reverse proxy, and an 18U rolling rack laid out unit by unit.

  • Embedded World North America 2026

    The two kiosk screens on Contec’s booth in Anaheim, plus a site for the team. Each kiosk is one self-contained HTML page that needs no network, because show Wi-Fi can’t be trusted. The two run at different speeds and start 4.2 seconds apart, so they never show their call to action at the same moment.

Contec’s booth at Embedded World North America 2026 in Anaheim: a central promo screen flanked by the two kiosk monitors, under banners for hardware expertise and custom system design.
EWNA 2026 booth · Anaheim
One kiosk frame: “The part you qualify today is the part you can still buy in five years,” on lifecycle management, in large white type on dark navy.
Kiosk A · long-life by design

Proprietary work, described in general terms.

E4Phoenix Motors · Founder2022 – 2024

Electric powertrains for legacy vehicles

A small business I started after college, converting vehicles from many manufacturers and decades to road-legal electric powertrains.

Problem
Each platform was a different integration problem: a different manufacturer, a different decade, and the same requirement to be road-legal when finished.
Platforms
  • 1990 Honda Transalp, a dual-sport motorcycle
  • 1992 Jeep
  • 2011 Volvo XC60
  • Electric office trailer: a working office built into a trailer, with the battery bank under the floor, inverters, HVAC, and a generator to back it up
What I did
Defined the electrical architecture, powertrain interface specifications and compliance requirements. Integrated battery systems, motor controllers and the vehicle CAN networks.
Verification
Wrote the powertrain validation test procedures and coordinated field testing for performance, safety and compliance.
Why I started it
To pay off my student loans after graduating, using what my degrees taught me on real vehicles. It became my most hands-on integration work.

Electrical architecture · Interface specs · CAN · Battery & motor control · Inverters & HVAC · Test procedures · Compliance

E9Personal project2000 Kawasaki ZR-750F

From ashes: an electric motorcycle

My 2000 Kawasaki ZR-750F caught fire and burned down to the frame. Instead of scrapping it, I stripped what was left and rebuilt it as an electric motorcycle. It's now registered, insured and road-legal.

Problem
Turn a fire-gutted motorcycle into a road-legal electric one, with every electronic system on it new.
What I built
A 30 kW-peak BLDC hub motor on a 96 V-class controller, fed by an approximately 10 kWh pack of large prismatic lithium-ion cells in a 24S1P configuration (about 86 V nominal, 100.8 V full). An earlier pack of 18650 cells, 20S20P and about 3.6 kWh, was good for about 12 miles. The first version, my college proof of concept, ran a brushed DC motor on a bought controller and a 20S pack. After graduation I rebuilt it and designed the motor controller, battery management system, charger, CAN network and speedometer myself. It charges over J1772 and DC fast-charges over CCS1: DC fast chargers can't go as low as the pack's voltage, so an isolated step-down stage takes the station's output (up to 400 V) down to the pack's 100.8 V. A full CCS1 charge has worked at a public ChargePoint station.
Outcome
Measured top speed around 180 km/h (about 110 mph) and roughly 60 miles of range, depending on riding. Registered, insured and road-legal. Since an EV has no use for an exhaust pipe, mine blows bubbles instead: a bubble machine I designed, now patent pending.
Why it burned
A fuel leak on the original gasoline engine, most likely ignited at a cracked intake manifold. The fire had nothing to do with the conversion, which came after.
Verification

The bike’s requirements are under change control in Doorstop, each with a verification method and traced to its evidence. Closed and open, as they stand:

  • Top speed and range, measured on the road: about 180 km/h against a 113 km/h (70 mph) requirement, and about 60 miles against 50.
  • BMS balance resistors read 114.5 °C on a thermal camera against an 85 °C limit. I logged it as a nonconformance, reworked the board and re-tested it at 69 °C.
  • A load test into a finned resistor bank with an E-stop in the loop, on the earlier 18650 pack.
  • Open: the dash takes 28 s from key-on to live speed against a 3 s requirement, so it stays an open nonconformance until it’s reworked.
  • Open: the move to the 24S1P pack means its balancing and load tests have to be re-run, and the CCS1 charge needs a filed record before it counts as verified.
The motorcycle burning in the road at dusk, with thick smoke rising.
The fire
The burned motorcycle on its side that night: melted wiring, scorched tank, wheels intact.
That night
The fire-damaged frame, engine and wheels upright in a driveway, with the burned fuel tank on the ground.
Stripped to the frame
The fuel tank the day after the fire, lying on the driveway: paint burned off, metal scorched and discoloured.
What the fire left of the tank
Two layers of green 18650 lithium-ion cells seated in black plastic holders on a workbench.
Building an earlier 18650 pack
A finished battery module wrapped in amber insulating tape and blue heat-shrink, with the heat gun and balance leads beside it.
Insulating a module
The same fuel tank stripped, filled and primed grey, ready for paint.
Tank stripped and primed
The motorcycle running without its tank: the blue battery module, controller and wiring exposed in the frame behind a round LED headlight.
Before the bodywork went on
The rebuilt electric motorcycle in side profile: blue bodywork, black frame, the controller and wiring in the bay where the engine was, and the hub motor housing below.
Rebuilt
The motorcycle from the rear right: orange high-voltage cables along the swingarm, purple brake calipers and the cooling fan behind the battery.
High-voltage run
The motorcycle plugged into a public J1772 charging station, the cable running into the old fuel filler.
Public charging
Me sitting on the first version of the motorcycle at the Florida Tech Student Design Showcase, in front of the project poster, “Evie’s EV Motorcycle: EV ONE”.
College proof of concept, Florida Tech showcase

College build, 2018–2022: design work

Block diagram of my first speedometer: three Arduino Pro Mini boards for the display, wheel-speed sensing, and CAN with an EEPROM odometer.
Speedometer v1: 3× Pro Mini
Block diagram of my second speedometer: two Raspberry Pi Pico (RP2040) boards, an optical wheel encoder, MCP2515 CAN interface, EEPROM odometer, isolated 12 V inputs and a Nextion display.
Speedometer v2: 2× RP2040
My engineering drawing of the charge port, October 2020: a J1772 inlet with an RGB charge-indicator ring in a hinged housing that replaces the fuel cap.
Charge port drawing
Four cut steel and aluminum mounting plates laid on my hand-drawn wiring diagram, January 2020, with a battery module and a braided harness at the bottom.
Jan 2020: mounting plates on the wiring diagram
Thermal image of the BMS board while balancing: two hot spots at the balance resistors, reading 114.5 °C.
BMS balancing: 114.5 °C
Thermal image of the same BMS board after my fix, the hot spots down to about 69 °C.
After my fix: 69 °C
A custom dark-blue circuit board in hand, with a bodge wire added during rework.
Reworking a PCB
A clear enclosure on the bike holding Arduino Nano boards on screw-terminal breakouts, an OLED display and CAN wiring.
Controller box
Close-up of the small dash display reading 85% charge and 77.38 V.
Charge display

College build: how the pack evolved, 2019–2022

An early battery block coated in black with small cooling fans on its side and the top wrapped in blue heat-shrink.
2019: first pack, fan-cooled
Four 18650 battery modules side by side on a clear tray, with green cell-tap strips hand-numbered 0 to 20.
2021: 20S, numbered sense taps
A long battery wrapped in blue heat-shrink with orange straps and a black 3D-printed end cap, cables leaving through corrugated conduit.
2021: wrapped, printed end caps
The blue battery pack held between black end plates by threaded rods, mounted in the motorcycle frame and marked Danger High Voltage.
2021: clamped and installed
A blue-wrapped battery pack labeled 72 VDC, 600 Wh, 20S4P lithium-ion, with an XT60 connector and a braided balance lead.
2022: 20S4P, 72 V, 600 Wh
A battery pack wired to a finned load resistor in a plastic tub, with a panel meter and a red emergency-stop button.
Load test with E-stop
Thermal image of the load resistor’s heat sink during the test, hottest point 89.5 °C.
Load resistor at 89.5 °C
A terminal showing the BMS reading 20 cells with a mean of 3.905 V and a standard deviation of 0.002 V, from two LTC monitor chips.
BMS: 20 cells within 0.002 V

Electronics, harness and busbars

PCB layout of the ZR-7e speedometer board with footprints for an Arduino Nano, a CAN bus module, a display header and opto-isolated light and turn-signal inputs.
Speedometer board layout
The assembled black ZR-7e speedometer interface board with an Arduino Nano, two buck converters, a row of optocouplers and green screw terminals.
Assembled board
The back of the board, silkscreened “Speedometer Interface Board by Evangeline Minet (2021) V0.1” with an open-source hardware logo.
Signed, open-source hardware
Close-up of a purple circuit board where one large surface-mount resistor has cracked and scorched.
Failure analysis: cracked resistor
Wiring-harness branches laid out on the floor with tape labels, a wiring-diagram notebook, crimp tools and parts boxes.
Laying out the harness
A battery pack with a bundle of white cell-sense wires, each tagged with a printed label and tied down along the top.
Labeled sense harness
A hand holding a grey sealed multi-pin connector with colored wires seated in its seal.
Pinning a sealed connector
Copper on a pegboard: a flat waterjet-cut plate, a triangular busbar blank and a finished busbar with an orange coating and tinned ends.
Waterjet-cut copper busbars

On the road, and the bubble exhaust (patent pending)

Me sitting on the finished electric motorcycle in a parking lot, my helmet resting on the mirror.
On the finished bike
A clear acrylic bubble machine on a stool next to the motorcycle, bubbles floating past the front wheel.
Bubble exhaust, first prototype
The second-generation bubble mechanism: a white 3D-printed assembly with a servo, bearings and a bubble ring.
Second generation
A Rigol electronic load in battery-test mode reading 5997 mAh and 21.6 Wh after a 1 A discharge.
Later: cell capacity testing
Speedometer booting on the bench (28 s)
Bubble exhaust running (5 s)

E3Open source · AGPL-3.02026

Shell:B, a local-first multi-agent workstation

A multi-agent AI environment that runs on your own hardware: local models through Ollama, code in a sealed sandbox, and a memory the owner can audit. Cloud models are opt-in, never the default.

ShellB-App/Shell-Bpublic-release · AGPL-3.0
commits
265
days
19
tests
1063
agents
18
tools
100
apps
30

Commits per day, Oct 5–23, 2026

Languages

  • Python 51%
  • TypeScript 46%
  • CSS 3%
  • Other <1%

Commits with an AI author or co-author

249 of 265 (94%). I direct and review; the agents, Shell:B included, write most of the code.

From the public git history, updated Oct 24, 2026. Work started a few days before the first public commit.
Problem
Agents that write and run code and read untrusted web pages are a containment problem. The goal: a capable workstation where nothing leaves the machine unless the owner turns it on.
Containment
  • Code runs in a Docker container with no network, every Linux capability dropped, a read-only root, resource limits and a hard time limit. Each conversation gets its own working folder.
  • Text from web pages, email, feeds and webhooks is fenced off as untrusted data, and web fetches can’t reach local or private addresses, checked again on every redirect.
  • Agents use stored secrets by name without ever seeing them: encrypted, limited to allowed hosts, approved per use and logged.
  • The scouting agent that scrapes pages can’t search past conversations, so an injected prompt has less to reach.
Reversible by design
  • Shell:B can change its own code, but only on a copy: checks run, I approve the diff, and a failed restart rolls back automatically.
  • Memory learns only from the owner’s own words, can wait for review, and a correction retires the old entry instead of deleting it. Long chats get summarized, but nothing is deleted.
  • Risky actions wait on an approval card; plan mode is read-only, enforced at the tool level.
Sharing safely
  • Each guest gets their own network-isolated container behind a separate gateway, signing in with a password plus TOTP or a passkey.
  • A public API and MCP server use hashed keys with per-key rate limits and daily quotas, and token use is metered per agent and model.
  • Model calls can overflow to other machines I own; incognito and guest traffic stays local.
How it’s built
Python 3.12 and FastAPI on the back end, React 19 and TypeScript on the front, SQLite with full-text search over past chats and embeddings for memory. Written largely with AI coding agents, including Shell:B’s own; I review and verify what they produce.
Why it’s here
It’s where I practice AI-assisted engineering in public, and the design follows the same ideas as a hazard control: contain what can fail, give each part only the access it needs, keep changes reversible.
Shell:B architectureThree ways in: the owner through a private tunnel with sign-in, scripts and MCP clients through API keys, and guests through a separate gateway into their own containers. All reach the FastAPI core, which runs the agents and tools and talks to local models, a network-less code sandbox, local media and search services, SQLite storage and encrypted secrets.WHOHOW THEY GET INCORESAME MACHINEOwnerbrowser, PWA, mobileScripts & MCPAPI clientsGuestsinvited peoplePrivate tunnelaccess policy, sign-inTOTP, passkeysAPI keyshashed, scopedrate limits, quotasGuest gatewayown port, own sign-inno owner routesFastAPI coreagent loop16 agents · ~90 toolsapproval inboxself-modificationwith owner reviewGuest cellscontainer per guesthost brokerModelslocal; cloud opt-inCode sandboxDocker, no networkLocal servicessearch, speech, mediaSQLitechats, memorySecretsencrypted, by name
How the parts connect. Everything on the right runs on the same machine.
Shell:B’s new-chat screen in the Synthfield theme: a greeting, four starter prompts, and the message box with agent, Think and Plan controls.
Chat · Synthfield
The Studio home in the light Ghibli Autumn theme, “Design with Daedalus”: tiles for websites, slide decks, flyers, apps, design systems, logos, motion, games, 3D and audio.
Studio · Ghibli Autumn
The Code home in the Deep Sea theme, “Code with Hephaestus”, with Shell:B’s own source as a workspace whose changes reach the live app only through an owner-approved deploy.
Code · Deep Sea
The Models page in the light Normandy theme: a bar of what is holding GPU memory right now, the loaded models with unload buttons, and a box to download new ones.
Models · Normandy
Shell:B FM in the Synthwave theme, a procedural radio and DJ workstation with genre channels, a visualizer and two decks with EQ and tempo controls.
Radio · Synthwave
The Kitchen app in the light Arrakis theme: a recipe box with search, tags and two recipe cards, plus meal plan, groceries and guide tabs.
Kitchen · Arrakis

Python · FastAPI · TypeScript · React · Vite · Tailwind · Docker · Ollama · SQLite Source on GitHub ↗

E5Florida Institute of Technology

Two Best in Show competition entries

Two student team projects, each named Best in Show for Aerospace Engineering at Florida Tech’s Northrop Grumman Engineering & Science Student Design Showcase.

  • RotoCop Best in Show 2018

    Northrop Grumman RotoCop Counter-Criminal Design Competition. Our entry was a hexacopter for aerial surveillance, powered from the ground through a tether so its flight time wasn’t limited by a battery. I was the team’s automation lead and built the entire ground station: it fed power up the tether, received the video feed, and ran the drone’s automation. One small part of it is public on GitHub: the touchscreen controller, Arduino firmware that turns a TFT touch panel into a USB keyboard with configurable on-screen buttons, a small graphics library for it (C/C++), and a C# desktop editor for the button layouts.

    Framed certificate: Best in Show 2018, Aerospace Engineering, Northrop Grumman Engineering & Science Student Design Showcase at Florida Tech, awarded to the RotoCop team.
    Best in Show 2018
  • NASA Robotic Mining Competition Best in Show 2019

    Florida Tech’s entry in NASA’s Robotic Mining Competition: PHRED, an excavation robot that digs regolith simulant with a bucket ladder and carries it in a hopper. I was the project manager for the 12-person team and ran the project end to end. PHRED was built for the 2020 competition, which NASA cancelled because of COVID-19.

    The aluminium mining robot in a sand pit, its bucket-ladder digging arm lowered into the sand, buckets full.
    PHRED digging
    The robot’s electronics box: a clear acrylic case engraved “NASA RMC at Florida Tech, PHRED”, with motor controllers, wiring and labelled circular connectors.
    Electronics box
    Certificate: Best in Show 2019, Aerospace Engineering, Northrop Grumman Engineering & Science Student Design Showcase, NASA Robotic Mining Competition team.
    Best in Show 2019
  • Location-aware E-ink parking decal

    A 4.2-inch e-paper parking decal that changes what it shows based on my location. An ESP32 reads a GPS/GNSS receiver and switches the display to the permit for wherever the car is parked. The permit shown is expired.

    A 4.2-inch e-paper module showing an expired Florida Tech parking decal marked experimental.
    E-ink decal prototype
  • Earlier embedded tools

    A .NET library for writing Arduino code in C#, and a Raspberry Pi equipment logger in Python built for Florida Tech Video Productions.

Personal project2026 · In design

QP-1: a VTOL drone run as a vehicle program

A QuadPlane (vertical takeoff, fixed-wing cruise) on a Holybro Pixhawk 4 Mini, with cellular command and control for flights beyond radio range and FAA Remote ID. I’m running it as a miniature flight-vehicle program with a public digital thread: concept of operations, system model, requirements, simulation, safety analysis, readiness review, then flight test. It is in design and build. Nothing here has flown yet, and every figure says whether its numbers come from analysis or simulation.

What exists
  • A concept of operations in INCOSE / NASA SE Handbook style: mission phases with entry and exit conditions, operating limits under FAA Part 107 and the airspace around the Space Coast (Melbourne’s Class C, the Cape’s restricted areas, launch TFRs), nine off-nominal scenarios each mapped to the ArduPilot failsafe parameters that implement it, 15 top-level requirements with a verification method each, and 18 recorded baseline decisions.
  • ArduPilot software-in-the-loop on a DGX Spark flying the reference mission end to end: VTOL takeoff to 30 m, transition, a 500 m box, return and a vertical landing. Transition takes 9.5 s, the aircraft lands 6 to 8 cm from the pad, and repeat runs agree to within 0.5 s.
  • A simulated recovery in the shape of a New Glenn booster landing: launch from the shore, fly 1.2 km out to sea, then land on a 10 m deck on a moving uncrewed ship. It uses ArduPilot SITL’s ship simulator and the stock plane_ship_landing Lua applet, flown with ArduPilot’s generic built-in QuadPlane model, not QP-1’s own parameters. In a 62-run Monte Carlo sweep (wind 0 to 10 m/s from any direction, turbulence up to 2 m/s, ship speed 2 to 6 m/s, a different noise seed each run), all 62 landed on the deck (95 % confidence interval 94 to 100 %), and 95 % of them touched down within 1.15 m of the landing point. This is simulation only: the deck doesn’t pitch, roll or heave, and there is no ship airwake.
  • A design point sized before buying parts: 4.35 kg estimated against a 4.5 kg target, about 580 W to hover against 155 W to cruise, and about 50 minutes of estimated fixed-wing endurance.
What the analysis turned up
  • ArduPilot sets one action for both RC loss and ground-station loss. Beyond RC range the aircraft has to ignore a lost RC link, but it has to come home if every link is gone, and parameters alone can’t say both. A short Lua check on the flight controller does it, so it still works if the companion computer or the modem is what failed.
  • The first simulated landing overshot the pad because the final approach was too short, and it cost 57 % more hover time. Hover is 70 % of the reference mission’s energy, so approach length became a planning rule: at least 1.5× the stopping distance.
  • Ten more ship runs outside that envelope found a failure mode. Every run with the ship faster than the VTOL speed limit (Q_WP_SPD, 7 m/s) failed, six out of six. The aircraft either hovered behind the ship indefinitely or kept descending and landed in the sea astern, because the landing descent is cleared once and never re-checked. Raising the limit to 12 m/s landed all six on the deck. The rule is a speed limit above the fastest deck the mission allows, plus an abort-and-climb check that the stock landing script doesn’t have.
  • The Pixhawk 4 Mini’s serial ports are all taken by the companion computer, GPS and RC receiver. Remote ID went on the CAN bus, and a second GPS and ADS-B In are deferred until they can go there too.
Status
In design and build; no flights. Next: a SysML model of the vehicle, the requirements in a requirements-management tool, SITL re-flown with QP-1’s own parameters over an emulated cellular link, STPA and FMECA, and a flight-readiness review before the first hover.
Altitude against time for the simulated reference mission, colored by VTOL, transition and fixed-wing flight, with phases P1 to P6 marked and a timeline below showing the RC link switched off for two legs while the cellular link and Remote ID stay on.
Mission profile · C2 plan
Simulated landing on a moving ship, plotted in the ship's frame: a top view of the aircraft closing from 250 m astern onto the 10 m deck, with a zoomed inset of the touchdown, and a side view of height above the deck against distance from the landing point, for a calm run and a 7 m/s wind run.
Ship landing · SITL, deck frame
Monte Carlo sweep of the simulated ship landing: 62 of 62 touchdowns clustered inside a 1.15 m circle on the 10 m deck, touchdown error against wind speed, success rate by wind and ship speed, and a map of conditions flown in which every failed run beyond the envelope has the ship faster than the 7 m/s VTOL speed limit.
Ship landings · SITL sweep
System context diagram: the air vehicle's flight controller, companion computer, LTE modem, RC receiver, GNSS, airspeed sensor and Remote ID module, connected to the ground station, RC transmitter, operator, tailnet, LTE network, FAA and Remote ID receivers, each line labeled with its interface.
System context · interfaces
A two-by-two table of RC link up or lost against cellular link up or lost: continue in three cells, return home and land vertically when both are lost, next to the flow of the Lua check that triggers the return.
Lost-link logic
Matrix of nine off-nominal scenarios, from lost RC link to a crewed aircraft nearby, against six flight phases, each cell giving the designed response: continue, return and land vertically, land now, VTOL assist, or pilot action.
Failsafes by phase
Estimated weight budget by component totalling 4.35 kg, a bar chart of 580 W hover power against 155 W cruise power, and estimates of 50 minutes endurance, 17 Wh for the reference mission and 11 to 12 m/s stall speed.
Design point · estimates
Table of requirements QP-SYS-01 to 15 with verification method, trace and evidence: three with SITL evidence, two with an analysis estimate, ten open.
Requirements · evidence

ArduPilot QuadPlane · SITL · MAVLink · Lua · ExpressLRS · LTE · Tailscale · Remote ID · Part 107 · Python · matplotlib Personal project. Figures show analysis and simulation, not flight data.

Personal projectsIn progress

Current builds

  • Field-engineering cyberdeck

    A handheld built around a Raspberry Pi CM5, with three displays (a 4-inch OLED, an e-ink strip and an OLED activity strip), a split ortholinear keyboard, two isolated CAN FD ports, a battery tester using electrochemical impedance spectroscopy, and swappable expansion cartridges. Designed in EasyEDA Pro, boards made by JLCPCB.

  • VTOL drone

    An ArduPilot QuadPlane (vertical takeoff, fixed-wing cruise) on a Holybro Pixhawk 4 Mini, with a cellular command link for flights beyond radio range, FAA Remote ID, and MAVLink routed between the flight controller, a companion computer and the ground. Details

  • BARK, a quadruped robot

    A dog-sized four-legged robot built from scratch for dynamic-locomotion research, on off-the-shelf quasi-direct-drive actuators and a parts budget under $3,000. Early stage.

03

Experience

Integrated Solutions Engineer (Embedded Systems)

Contec Americas Inc.

  • Digital twin development. Develop Python-based digital twin models that connect system architecture, CAD geometry, and operational telemetry in a single traceable engineering repository.
  • Automation & APIs. Build automated data pipelines and REST API connectors linking engineering repositories, test data, and configuration management systems, replacing manual data reconciliation.
  • Requirements & traceability. Decompose system-level requirements into sub-system interfaces and verification criteria; maintain traceability matrices from requirements to design decisions, test cases, and acceptance evidence.
  • Cross-disciplinary integration. Work with mechanical, electrical, and software teams to define data contracts and interface specifications, and coordinate V&V planning across system boundaries.
  • Regulated release control. Designed, built and run the master control platform for hubs in seven countries that provision 200 to 1,000 medical-scanner laptops a month: releases, sync, monitoring, vulnerability scanning, and a change-control portal, shared with the customer, that blocks any release a country’s regulator hasn’t approved. Details
  • SBOM & security. Software bills of materials reconciled against customer change orders (CycloneDX 1.5), and daily vulnerability scans that report only new findings, for EU Cyber Resilience Act obligations.
  • Product security. Run the company’s PSIRT: wrote the operating policy (IEC 62443-4-1, CVSS/CWE ranking), registered on ENISA’s reporting platform for EU Cyber Resilience Act Article 14, and built a USB field kit that captures CycloneDX SBOMs from Contec products. Details
  • Edge AI products. Argus, edge AI dock monitoring and an OpenUSD digital twin of the company’s own warehouse; a CCTV inference server designed to a per-unit cost ceiling; a three-tier AI desktop line in Arena PLM; a seismic sensor node; KVM-over-IP with an AI agent. Details
  • AI engineering. Full-stack AI development, much of it research and development, from early prototypes to working software.
  • Configuration management. Manage engineering documentation, material submittals, and design revisions under configuration control.

Founder & Electromotive Engineer

Phoenix Motors

  • Vehicle conversion engineering. Started a small business after graduation converting legacy vehicles to electric powertrains, across platforms from multiple manufacturers and decades: a 1990 Honda Transalp, a 1992 Jeep and a 2011 Volvo XC60.
  • Off-grid office trailer. Built an office into a trailer that runs on its own power: an under-floor battery bank, inverters, HVAC and a backup generator.
  • Systems integration. Defined electrical architecture, powertrain interface specifications, and compliance requirements for road-legal conversions; integrated battery systems, motor controllers, and vehicle CAN networks.
  • Test & verification. Wrote test procedures for powertrain validation and coordinated field testing to verify performance, safety, and compliance.

Director of Technical Services

Florida Tech Video Productions

  • Set up, operated, and maintained audiovisual systems for campus events and classes; coordinated technical requirements with faculty, staff, and organizers.
  • Equipment check-out kiosk. Built pilog, a Raspberry Pi station in Python where members scanned their ID and then an item’s barcode to sign gear in or out, with automatic sign-out after inactivity.
  • Florida Tech Student Life named FITV Organization of the Year in 2017–2018 and 2019–2020.

Aeronautical Rotorcraft Engineer (Intern)

Airbus Helicopters

  • Supported the rotorcraft engineering team during a five-month internship: component testing, technical documentation, and an introduction to aerospace design and certification practice.
04

Capabilities

Systems engineering
Requirements management (Altium 365 Requirements & Systems Portal) · Requirements decomposition · Interface specifications & data contracts · Traceability · Verification & validation · Configuration management · Regulated change control (ISO 13485) · SBOMs & vulnerability handling (EU CRA) · Trade studies
Digital engineering
Digital twin models · Digital thread · OpenUSD · Real-time 3D (three.js) · PLM systems · Familiar: Dassault Cameo, NVIDIA Omniverse
CAD / CAE
PTC Creo Parametric Certified · SolidWorks Certified · Autodesk Inventor · AutoCAD · Altium Designer · 10+ years of CAD across platforms
Software
Python (APIs, data pipelines, automation) · C/C++ · C# · TypeScript · MATLAB · PostgreSQL · Git · Docker · Ansible · Grafana
Hardware & test
EV powertrain integration · Battery systems & motor controllers · CAN networks · Test procedures
AI-assisted engineering
Claude Code, Codex, local models through Ollama: used to speed up automation and tooling, with outputs independently verified

How I work, with the evidence

Root cause
A fleet-wide outage traced from a drop in sync run time, 33 s to 1.4 s, to a boot race that overwrote DNS, then fixed for good (release control). A digital twin that segfaulted under load, traced to two threads touching the USD stage and fixed by design: 5,825 of 5,825 requests OK afterwards (Argus). A BMS balancing at 114.5 °C brought down to 69 °C, and a cracked power resistor turned into a derating rule for every power resistor in the charge path (motorcycle).
Candor
Checking a 5.5 GB customer release package found a web page shipped in place of a 3.27 GB installer, and the automated scan showed that the hand-built SBOM had undercounted. Both went into the report. A damage scorer that fired 678,044 false-positive incidents was muted rather than shipped (Argus). Every case on this page says what is built and what is not switched on yet.
Ownership
Ran a 12-person NASA Robotic Mining Competition team end to end (PHRED). Designed, built and run the release-control platform, and took the company’s product security from no policy to a released one with a registered reporting channel (PSIRT).
Builder
A fire-gutted motorcycle rebuilt into a registered EV with my own motor controller, BMS, charger and CAN network, down to the waterjet-cut busbars and labeled harness (motorcycle). A rocket firing stand and its controller, built with the students I mentor (mentoring).
05

Education & recognition

Education

  • B.S. Aerospace Engineering
    B.S. Aeronautical Engineering Florida Institute of Technology · May 2022 Cheerleader and Pete the Panther, the university mascot
  • Baccalauréat Général, Scientifique Lycée Français International de Bangkok · 2013 Vice-president of the student council; head of the student representatives, elected to the school board

Awards

  • Best in Show 2019, Aerospace Engineering Northrop Grumman Student Design Showcase · NASA Robotic Mining Competition, project manager
  • Best in Show 2018, Aerospace Engineering Northrop Grumman Student Design Showcase · RotoCop, automation lead, built the ground station
  • Student of the Year, 2013 Lycée Français International de Bangkok · awarded to one graduating student, comparable to valedictorian
  • Organization of the Year, 2017–2018 & 2019–2020 Florida Tech Student Life honors for Florida Tech Video Productions (FITV), where I was Director of Technical Services
  • Olympiades académiques de mathématiques, 2012 Honorable participation, Asia zone, French schools abroad (AEFE)
  • World champions, 2020 ICU University World Cup Florida Tech cheer, chosen by USA Cheer to represent the U.S.; 1st in Elite Small Coed Team Cheer · Florida Tech News ↗
  • Volunteer mentor, senior design Florida Tech L3Harris Student Design Center (HSDC), after graduating. I taught students to weld and to build electronics and custom PCBs, and together we built a rocket firing stand and its firing controller. Most of the students I mentored now work at SpaceX and Blue Origin. Teams thanked me with certificates, including Lunar Landing Pad (2023), who credited me with “taking us under your wing,” and M.A.R.S. (Martian Atmospheric Rover Simulation, 2024).
  • The Order of the Engineer Took the Obligation · Florida Tech, Link 281 · April 2021

“Evangeline has a command of analytic reasoning that places her in the top 1% of the students I have encountered here at Florida Institute of Technology. Her enthusiasm and energy are matched with a discipline that is remarkable.”

Juan C. Avendano, Director of Student Projects, Harris Student Design Center, recommendation letter, 2019
In the welding shop, me with my helmet up next to a student in a welding helmet and gloves, steel plates for the stand laid out on the table.
Teaching welding
The finished rocket firing stand: a black steel plate on a bolted base rail, with a handwritten sign reading “Do not touch tile, IDC who u are”.
The firing stand
Close-up of the stand’s heat-shield tile after a firing, scorched in a ring around the opening.
Scorched after a firing
The stand’s firing controller, built with the students on perfboard in a red 3D-printed enclosure: an Arduino Nano, metal-can transistors and a surface-mount module hand-wired onto an adapter.
Firing controller
Lunar Landing Pad Awards certificate of excellence to Evangeline, for saving the team more times than they could count and taking them under her wing, with one word blurred. The team patch shows an astronaut dog on the Moon.
Lunar Landing Pad team, 2023
Certificate of Appreciation from the M.A.R.S. senior design team to Evie, “for your help and dedication to the team”, dated April 19, 2024, with the team’s mission sticker.
M.A.R.S. team, 2024
Pete the Panther, my submission to UCA Mascot Nationals, 2017 (2 min)

Certifications

  • PTC Creo Parametric Certified User
  • Dassault Systèmes SolidWorks Certified User
  • High Power Rocketry, Level 1 National Association of Rocketry (NAR)
  • Private Pilot Licence In training
A light aircraft’s instrument panel with Garmin avionics, seen from the left seat on a sunny ramp, tail number blurred.
PPL training

Languages

EnglishNative
FrenchNative
SerbianNative
CroatianFull professional
BosnianFull professional
SpanishProfessional working
ThaiLimited working
GaelicElementary
06

Contact

Open to systems engineering roles in launch, in-space and lunar programs. Based on Florida's Space Coast.

Email
[email protected]