Welcome to

THE JDANKNEY VAULT

The hardware and software I've built, broken down bit by bit.

$ fastfetch

                   -`
                  .o+`
                 `ooo/
                `+oooo:
               `+oooooo:
               -+oooooo+:
             `/:-:++oooo+:
            `/++++/+++++++:
           `/++++++++++++++:
          `/+++ooooooooooooo/`
         ./ooosssso++osssssso+`
        .oossssso-````/ossssss+`
       -osssssso.      :ssssssso.
      :osssssss/        osssso+++.
     /ossssssss/        +ssssooo/-
   `/ossssso+/:-        -:/+osssso+-
  `+sso+:-`                 `.-/+oso:
 `++:.                           `-/+/
 .`                                 `/

jdankney@vault

-----------------------

OS: Arch Linux x86_64 (btw)

Host: Computer Engineering Student

Kernel: Panic

Uptime: 19 years - No Scheduled Maintenance

Packages: Dreams, regrets, and one working project

CPU: Overclocked, Undervolted

GPU: GTX 1080ti Since 2019 (Still going strong!)

Memory: Leaking, probably

Disk: 5 TiB, project graveyard

Network: Self-Hosted end to end

Locale: San Diego, CA


James Ankney
./jdankney.jpg

▸ on the bench: Teaching a Base Model to Say No (Safety Fine-Tuning)

Who's behind this

I'm James Ankney/JDAnkney, a Computer Engineering student at Palomar College planning to transfer to UC San Diego. This is my project notebook: parts lists, wiring, firmware, and an honest record of the many things that caught fire along the way.

Projects

012 logged
  1. 001 Complete

    Running a 35B LLM on a GPU That Shouldn't

    Getting a 35B model generating at 23 tok/s on a 6GB laptop card: MoE expert offload, Pascal quirks, and learning exactly where the hardware ceiling is.

    LLMllama.cppCUDAPascalSelf-HostingAI
  2. 002 In progress

    Teaching a Base Model to Say No (Safety Fine-Tuning)

    An alignment project: take a model that never learned guardrails and train them in from scratch, then measure the helpfulness/harmlessness tradeoff with real benchmarks.

    AIAlignmentFine-TuningLoRAPyTorchSafety
  3. 003 Complete

    Cloning GLaDOS (Voice Synthesis + Post-Processing)

    Building a GLaDOS voice with local TTS: and learning that GLaDOS isn't a voice, it's a human plus an effects chain.

    AITTSVoice CloningComfyUIAudio
  4. 004 Complete

    Ditching Tailscale for Self-Hosted NetBird

    Replacing the last piece of my stack I didn't control: a self-hosted WireGuard mesh VPN with NetBird.

    LinuxNetBirdWireGuardVPNSelf-HostingHomelabbing
  5. 005 Complete

    Backing up ALL of (English) Wikipedia

    Creating an offline backup of the biggest open source library I know of.

    LinuxKiwixWikipediaHomelabbing
  6. 006 Complete

    DIY BLE Analog RGB Controller (ESP32-C3) V1

    Rebuilding a cheap LED controller from scratch with an ESP32-C3, logic-level MOSFETs, and custom written Bluetooth firmware.

    ESP32-C3BLEPWMMOSFET
  7. 007 Complete

    Self-Hosting my Calendar

    Hosting a CalDAV server to sync my calendar across all my devices.

    LinuxCalDAVRadicaleHomelabbing
  8. 008 Shelved

    Local DNS with Pi-hole (and Why I Ripped It Back Out)

    I set up Pi-hole to give my devices real names instead of IP addresses. It worked: but I still tore it down. Here's why.

    LinuxPi-holeDNSNetworkingHomelabbing
  9. 009 Shelved

    Rolling My Own Serial Protocol (Arduino <-> Pi)

    Building a real framed wire protocol between an Arduino and a Raspberry Pi: checksums, a parser state machine, and the classic serial bugs. Unfinished, on purpose-ish.

    ArduinoRaspberry PiSerialProtocolsPythonC++
  10. 010 Complete

    DIY Meshtastic Base Node (ESP32-S3 + LoRa + Solar + BME680) V1.0

    A solar-powered, always-on Meshtastic base station with environmental telemetry | ESP32-S3, DX-LR30 (SX1262), and a bare BME680 that fought me the whole way.

    ESP32-S3LoRaMeshtasticBME680SolarI2C
  11. 011 Complete

    DIY Meshtastic Mobile Node (nRF52840 + LoRa + GPS) V1.0

    Building a low-current Meshtastic node for my Audi A4 featuring an nRF52840, DX-LR30 (SX1262), and a u-blox NEO-M8N.

    nRF52840LoRaGPSMeshtastic
  12. 012 Complete

    Making a Motion Detector/Tracker Laser Turret

    Building a surprisingly simple robot with two servos, a gutted Bic pen with a laser diode in it, and a can of soup as the base.

    PythonLasersRobotics