edwardfalk.com

Edward Falk

Electronics engineer · AI systems developer · IT consultant since 2005

I build systems where hardware, software and AI meet: a voice AI living inside a 1991 Macintosh, a wind-plant simulator for the Swedish power grid, and the self-hosted agent tooling I use to run many AI-assisted projects in parallel.

All projects on GitHub → Download CV (PDF)

Edward Falk at his degree presentation, talking into the Ericofon handset with the finished Happy Mac in the foreground
Degree presentation, Yrgo 2026. Happy Mac is on the line.

About

I've run my own IT company, Falk Data, for twenty years: troubleshooting, networks, security and support for companies and private clients. In 2026 I finished a two-year degree as an electronics engineer in embedded systems at Yrgo in Gothenburg, to take that experience somewhere new.

What I bring is the combination: hands-on electronics (oscilloscope, soldering iron, datasheets from the 1980s), embedded Linux and microcontrollers, and a lot of practical experience making AI models do reliable work with tools, memory and review, not just chat.

Featured projects

Happy Mac on the Macintosh Classic II CRT, listening, with the Ericofon handset beside it

Project ScrLk: Happy Mac

Embedded Linux · voice AI · retro hardware · degree project

A Raspberry Pi 5 inside a 1991 Macintosh Classic II drives the original 9" monochrome CRT directly from its GPIO pins. You talk to the AI assistant Happy Mac through a 1950s Swedish Ericofon handset. He runs the apps and games on screen, answers in Swedish or English, and can read live traffic from a passive network tap. He can watch but never interfere.

  • Custom device-tree overlay for the Mac's video timing, every signal checked on an oscilloscope first
  • Carbon-microphone handset through a modified USB sound card, including tracking down a hidden +23.8 dB sidetone inside the chip
  • Voice agent with tools and memory that can be interrupted mid-sentence
  • Built during my internship at EQ2 with classmate Felix Da Silva Gunnarsson

Full write-up and photos →

Our race car SDA close up on the black track by the white wall: a four-wheeled robot chassis with yellow wheels under a tangle of red, orange and black wiring, with another car behind it

Yrgo Grand Prix: autonomous race cars

Arduino · C++ · PID control · I²C · Scrum

Team Edison (classmates Felix Da Silva Gunnarsson, Santiago Bautista Barrera and me) built two self-driving cars for Yrgo's yearly autonomous-car race, working in two-week Scrum sprints. Our car SDA reached the final and finished third. As technical lead I worked mainly on the steering code and its tuning.

  • The kit's ultrasonic sensor on a servo was too slow and the glossy walls fooled it, so we switched to three fixed VL53L0X laser distance sensors in CAD-designed, 3D-printed mounts
  • The sensors share one I²C bus, whose two lines gave the cars their names, SDA and SCL. Each sensor is woken in turn through its shutdown pin and given its own address at boot
  • PID steering on the left–right wall distance, speed scaled by the distance ahead, automatic sensor resets after dropouts, and IR start/stop as the race rules require
  • Crashes debugged from the serial log at the exact crash point, with a logic analyser and oscilloscope on the sensor bus
  • In the final I retuned the PID steering minutes before the start, got it backwards, and watched the car swing wide into the outer wall. Still, I regret nothing. It was a calculated risk for a shot at first place. We had already secured our grades, so we could afford to gamble, and the best car in the race was clearly performing better than ours

WindSim

Python · energy systems · simulation

A deterministic simulation of a small Swedish wind plant. It estimates what the plant would have produced and earned at a real site, and rehearses Svenska kraftnät's mFRR/aFRR prequalification, the test a plant must pass before selling balancing power to the grid. Every number carries an evidence level, from assumed to fitted to real logs.

Private for now

Self-hosted AI agent infrastructure

Claude Code · MCP · Docker · Tailscale

A git-backed memory vault shared by every AI coding session. A nightly "librarian" agent files and links new notes, and an MCP connector on my own VPS makes it reachable from anywhere. Plans get a second-model critique and code gets blind parallel reviews before every push. Earlier work: RAG with Qdrant and Redis, knowledge graphs, and custom MCP servers.

Private: personal data

Say Color

Android · Kotlin · computer vision · accessibility

Says the colour of a garment out loud, built for a visually impaired client. It turns on the flashlight, classifies three frames and reconciles them before speaking, because one frame under household light isn't reliable enough to tell someone who can't check.

In testing

Glider

TypeScript · physics · procedural terrain

A browser gliding game with real aerodynamics, procedurally generated terrain and thermals to find. The flight model is parameterised so it can fly on other worlds. It's also my testbed for fully AI-generated code.

Play it →

Cosmic Vibe

JavaScript · p5.js

A rhythm-driven space shooter, made as an experiment in how far AI coding can go without my writing a line of code myself. The code, graphics and animation are all AI-generated.

Play it →

A VGA monitor showing a Gosper glider gun as green 8×8-pixel cells on black, firing a stream of gliders towards the lower right

Conway's Game of Life on an FPGA

VHDL · Cyclone V · VGA · block RAM · GHDL

Conway's Game of Life in VHDL on a DE0-CV board, drawn on a VGA monitor: 80×60 cells at 60 Hz, double-buffered in block RAM. Switches pick one of eight classic patterns, the speed and the edge mode; buttons pause and step.

The core modules have GHDL testbenches. A read-timing off-by-one passed the blinker test, whose symmetry hides it, but made gliders drift sideways. The first grid design needed 169 % of the chip's logic; rewritten for block RAM, the whole design uses 4 %.

Watch the glider gun (13 s) → · Repo →

Digital Electronics course

The drum machine on a classroom table: a blue Meccano frame holding two servos, a pencil-and-paintbrush beater over a white cardboard-box bass drum, and a paper-cup snare topped with foil

Servo drum machine

C · ATmega328P · timers · PWM · ADC

A classmate decided a drum machine was impossible with the hardware our course allowed. I took that as a challenge and started building a mechanical one the day before the presentation: two servos left over from the race car, on a frame of old Meccano, beating a cardboard-box bass drum and a paper-cup snare with a tinfoil head. Underneath it's register-level C on the Arduino's ATmega328P: hardware PWM drives the servos, a 1 ms timer interrupt keeps the beat, and a potentiometer sets the tempo.

Watch it play (14 s) →

Embedded Systems 1 · passed with distinction (VG)

Experience

2005 – present

Falk Data AB: founder, IT consultant

IT support, troubleshooting, networks, security and training for companies and private clients, and more recently AI automation. Sole trader until 2023, then a limited company. The job is problem-solving: understanding what the customer actually needs, then making it work.

2025 – 2026

EQ2, Gothenburg: internship (LIA)

Built Project ScrLk, from first prototype to the degree-presentation demo.

Education

2024 – 2026

Yrgo, Gothenburg: Electronics Engineer, Embedded Systems

Two-year higher vocational degree. Analog and digital electronics, VHDL/FPGA, embedded C/C++, signal processing, test automation, embedded Linux, agile project work.

Other degree projects: an Arduino that offloads 7-segment display driving to an FPGA over SPI; a multimeter on a PCB I designed in KiCad, then soldered, programmed and debugged; a digital guitar filter on FPGA; a servo-driven drum machine; and, with Felix, a Raspberry Pi weather station on MQTT.

Earlier

University studies

Informatics, databases, psychology, theoretical philosophy, business.

Skills

Languages
C, C++, Python, TypeScript/JavaScript, Rust, VHDL, Kotlin
Embedded
Raspberry Pi, Arduino, ESP32, AVR, embedded Linux (device tree, KMS/DRM, PipeWire), MQTT
Electronics
Analog and digital design, signal processing, PCB design (KiCad), soldering, oscilloscope, logic and spectrum analysers
AI
LLM agents and tool use, MCP servers, RAG and vector databases, voice AI, Claude Code, Codex
Infrastructure
Linux, Docker, Ansible, Tailscale, VPS hosting, networking, Microsoft 365, Google Workspace
Languages spoken
Swedish (native), English (fluent)

Outside work

I play guitar and synth in the Gothenburg band the Blindness and I'm building my own synthesizer.

Fun fact: I was on my way to becoming an artist when I took an internship at a computer shop. Two years later I bought the shop, for almost exactly what I'd won playing online poker.