Claude's Corner: Kyten Technologies - Fixing the Battery Bottleneck Slowing Defense Tech

Kyten Technologies (YC W2026) compresses the 12-18 month aerospace battery pack supply chain to three weeks. Built by ex-SpaceX and Starlink founders who put 5,000+ packs into space. A StartupHub.ai deep-dive.

9 min read
Kyten Technologies homepage screenshot with Claude's Corner badge

TL;DR

Kyten Technologies builds custom aerospace-grade battery packs for drones, submarines, and satellites, compressing a 12-18 month procurement nightmare into three weeks via software-defined manufacturing and adaptive pack architecture. The moat is process knowledge earned putting 5,000 battery packs into space at Starlink, not anything you can learn from a spec sheet.

4.8
F

Build difficulty

TL;DR: Kyten Technologies builds custom aerospace-grade battery packs for drones, submarines, and satellites, compressing a 12-18 month procurement nightmare into three weeks via software-defined manufacturing and adaptive pack architecture. The moat is process knowledge you can only earn by putting 5,000 battery packs into space at Starlink, not by reading a spec sheet.

The Battery Bottleneck Nobody Talks About

There is a quiet crisis running through American defense manufacturing. The US is currently building drones, autonomous submarines, and small satellites at a scale the country has never attempted before. Programs like Replicator are pushing for thousands of autonomous systems. Defense primes are scrambling to qualify hardware faster than their procurement cycles allow. And then almost every single one of them hits the same wall: batteries.

Not because batteries don't exist. Because the supply chain for custom aerospace-grade battery packs is still operating on timelines from a different era. You spec a custom pack, then you wait six to twelve months for design and qualification. Then you wait another six to twelve months to ramp production. By the time your batteries show up, your program has slipped a year.

Kyten Technologies, out of Y Combinator's W2026 batch, was built to kill that timeline. Their pitch is blunt: one week to design, one week to qualify, one week to volume production. Founders Cooper McBride and Lucas Maddox spent six years at Starlink putting over 5,000 battery packs into space. They know firsthand what a broken aerospace battery supply chain looks like from the inside, because they lived it. Now they're building the alternative.

What Kyten Actually Does

Kyten's product is turn-key custom battery pack design, qualification, and manufacturing for autonomous vehicles operating in air, sea, and space environments. The target customers are OEMs building drones, underwater autonomous vehicles (AUVs), small satellites, and similar systems that need custom pack geometries and aerospace-grade reliability, but don't want to build a battery division in-house.

The company handles the full stack: custom pack geometry, all major cell chemistries (lithium-ion, lithium polymer, lithium iron phosphate depending on the application), integrated battery management systems, resettable fusing, and thermal control. This is not commodity 18650 cells in a box. These are purpose-built assemblies designed to meet DO-160, MIL-STD-810, and relevant space-rating standards depending on the program.

The business model is B2B manufacturing and supply. Kyten positions itself as the rapid-turnaround option that makes vertical integration unnecessary. If an OEM's only alternative to Kyten is building an internal battery engineering team, that's a very compelling sales pitch.

Based in Seattle, the company is currently two people, which makes the ambition either inspiring or audacious depending on your priors about hardware startups.

How the Three-Week Pipeline Works

The core technical claim: three weeks from requirements document to production-ready units shipping. This is approximately 10-20x faster than the legacy aerospace supply chain. Breaking down how that's actually achievable:

Week 1 - Adaptive Architecture

Rather than designing every pack from a blank slate, Kyten uses what they call adaptive architecture. The concept is modular: a library of pre-validated structural configurations, thermal management patterns, cell arrangements, and BMS building blocks that can be rapidly assembled and parameterized to match a customer's form factor and power requirements. Think of it as design templates backed by first-principles validation, not just cookie-cutter products. The output is a pack design that already carries proven sub-component history, dramatically reducing the unknowns at qualification.

Week 2 - Automated Qualification

This is where the real engineering leverage lives. Aerospace qualification traditionally drags because it's labor-intensive: technicians running vibration tables, thermal chambers, short-circuit tests, and charge-discharge cycling by hand, logging results into spreadsheets. Kyten is building automated in-house qualification infrastructure: hardware test fixtures that can run battery profiles autonomously and a software stack that collects, analyzes, and generates compliance documentation from the data stream. The goal is to eliminate the human bottleneck from testing without cutting corners on the underlying protocol.

Week 3 - Software-Defined Manufacturing

Volume production at aerospace tolerances normally requires extensive line setup and process validation. Kyten's approach is to make the manufacturing line itself configurable via software, reducing the changeover time between product variants. This is borrowed from concepts in semiconductor fabs and modern EV battery gigafactories, applied to the lower volumes and higher variety of aerospace custom work. The target capacity is thousands of units per year per product, which hits the sweet spot for defense drone programs that aren't production at automotive scale but aren't one-off prototypes either.

The Competitive Landscape

Kyten is entering a market long dominated by incumbents that have no urgency to move fast. EaglePicher, Saft, and a handful of other legacy aerospace battery suppliers have DoD relationships and years of qualification history. They're slow by design, built for programs where the requirements were written five years before the first unit shipped.

Newer entrants like Amprius (silicon anode technology) and Electrovaya come at the problem from the chemistry side, optimizing energy density. Kyten's angle is different: they're not selling a better cell chemistry, they're selling a better supply chain. The cells are sourced; the value is in the rapid design, qualification, and production system wrapped around them.

StartupHub.ai data shows that of the 359 defense hardware and aerospace manufacturing startups we track, only 11 score above 70 on our composite signal, reflecting just how rarely early-stage hardware companies reach meaningful scale. The companies that do, like Epirus (74) and Hermeus (78), share one trait with Kyten: they're built by operators who did the thing before at another company, not researchers transitioning to commercial work.

Difficulty Score

ML / AI
3/10

Automated anomaly detection in qualification testing, thermal modeling, and cell degradation prediction are the primary ML surfaces. All valuable, none are the core differentiator.

Data
5/10

Qualification test data management is the critical layer: time-series sensor streams from test fixtures, compliance documentation generation, cell chemistry performance databases per application environment. The data moat grows with every program run through the system.

Backend
6/10

BMS firmware development, manufacturing execution system (MES) integration, automated compliance documentation pipeline, qualification data ingestion APIs, and order management. Standard enterprise patterns on paper, but aerospace requirements add correctness constraints you don't encounter in typical SaaS.

Frontend
3/10

B2B configuration portal and order management UI. Functional over beautiful. Not the place Kyten wins or loses.

DevOps / Infra
7/10

Factory automation infrastructure, hardware-in-loop test systems, embedded firmware CI/CD pipelines, and production monitoring are the operational complexity layer that most software engineers never encounter. Getting this right is a genuine engineering challenge.

Overall difficulty: 4.8/10. The software stack is advanced but not AI-research-hard. The real difficulty is physical: building the test fixtures, sourcing aerospace-grade cells, standing up a production line, and earning DoD qualification history on actual programs. Code you can hire. A qualified manufacturing line with an active program history takes years.

The Moat: What's Hard vs. What's Easy

Hard to replicate:

  • Process knowledge from 5,000+ packs at Starlink. This is embodied expertise in what actually fails in aerospace battery packs at scale, the kind of knowledge you can't get from a textbook or a datasheet. McBride and Maddox carry this in their heads and it will compound into their designs and test protocols.
  • Automated qualification infrastructure. The test fixtures, the data pipeline, the compliance documentation generation system. This is capital-intensive to build and time-consuming to validate against actual standards.
  • Supplier relationships for aerospace-grade cells. The raw materials side of aerospace battery manufacturing has its own gating factors. Good relationships with cell suppliers who will prioritize your orders and provide cell-level performance data are not available to a company that showed up last week.
  • Qualification history. Once Kyten has run several programs through their process and those products have passed program acceptance testing, that history is a reference. New customers care deeply about whether anyone else trusted you with their flight hardware.

Easier to replicate:

  • The B2B customer portal and order management tooling. Standard web development.
  • The basic BMS firmware architecture. Open-source BMS projects exist; the differentiation is in the application-specific configuration and testing, not the underlying firmware pattern.
  • The concept of modular pack design. Any experienced battery engineer will design in building blocks. Kyten's edge is the execution speed and the automation layer, not the modular concept itself.

The real moat for Kyten is operational, not technological. It's the flywheel of earned qualification history, process knowledge, and customer trust that makes each new program cheaper and faster to run through the system. A well-funded competitor could probably match their software stack in 18 months. Matching their operational depth would take longer, and by then Kyten will have more programs under their belt.

The Build Challenge

The honest constraint for Kyten is the gap between software ambition and hardware reality. Software-defined manufacturing and adaptive architecture are real engineering innovations. But a two-person team has a finite amount of time to build automated test fixtures, stand up a production line, manage supplier relationships, run programs, and close sales simultaneously. This is the classic hardware startup trap: the system only proves itself once you've built it, and building it requires customers who trust you before you've proven it.

The YC network helps bridge that trust gap early. But at some point Kyten will need capital to build the physical infrastructure the concept requires. The question isn't whether the idea is right (it clearly is), it's whether the team can execute the physical build fast enough to get to the self-reinforcing phase before the runway runs out.

If they thread that needle, the prize is significant. The DoD drone scale-up isn't slowing down. Every drone OEM, every satellite integrator, every AUV manufacturer in the US eventually needs a battery supplier who can move fast. Kyten is building to be that supplier.

Replicability Score: 68/100

Kyten sits in the zone where the idea is replicable but the execution is not. Any experienced battery engineer could sketch the same approach on a whiteboard. But building the automated qualification infrastructure, earning the process knowledge, standing up the supply chain, and surviving long enough to accumulate program history is a 3-5 year head start that money alone can't close. The software platform could be cloned in a year. The operational moat takes much longer.

© 2026 StartupHub.ai. All rights reserved. Do not enter, scrape, copy, reproduce, or republish this article in whole or in part. Use as input to AI training, fine-tuning, retrieval-augmented generation, or any machine-learning system is prohibited without written license. Substantially-similar derivative works will be pursued to the fullest extent of applicable copyright, database, and computer-misuse laws. See our terms.

Build This Startup with Claude Code

Complete replication guide — install as a slash command or rules file

# How to Build a Kyten Technologies Clone with Claude Code

A step-by-step guide to building the software platform behind a rapid-turnaround aerospace battery pack supplier. This covers the digital side of the business: customer configuration portal, automated qualification data pipeline, BMS firmware CI/CD, and manufacturing execution system. The physical factory is on you.

---

## Step 1: Database Schema

Design a PostgreSQL schema that captures the full program lifecycle.

```sql
-- Core entities
CREATE TABLE programs (
  id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
  customer_id UUID REFERENCES customers(id),
  slug TEXT UNIQUE NOT NULL,
  name TEXT NOT NULL,
  status TEXT CHECK (status IN ('scoping','design','qualification','production','shipped')) DEFAULT 'scoping',
  pack_config JSONB NOT NULL,  -- geometry, chemistry, BMS params, thermal spec
  created_at TIMESTAMPTZ DEFAULT now(),
  updated_at TIMESTAMPTZ DEFAULT now()
);

CREATE TABLE qualification_runs (
  id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
  program_id UUID REFERENCES programs(id),
  test_type TEXT NOT NULL,  -- 'vibration','thermal_shock','short_circuit','cycle_life','altitude'
  standard TEXT NOT NULL,   -- 'DO-160G','MIL-STD-810H','custom'
  status TEXT CHECK (status IN ('queued','running','passed','failed')) DEFAULT 'queued',
  started_at TIMESTAMPTZ,
  completed_at TIMESTAMPTZ,
  result_summary JSONB,
  raw_data_path TEXT,       -- S3/storage path to full time-series CSV
  created_at TIMESTAMPTZ DEFAULT now()
);

CREATE TABLE cells (
  id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
  supplier TEXT NOT NULL,
  part_number TEXT NOT NULL,
  chemistry TEXT NOT NULL,  -- 'NMC','LFP','LiPo','NCA'
  nominal_voltage NUMERIC NOT NULL,
  capacity_mah INTEGER NOT NULL,
  max_temp_c INTEGER NOT NULL,
  certifications TEXT[],
  datasheet_url TEXT,
  created_at TIMESTAMPTZ DEFAULT now()
);

CREATE TABLE pack_designs (
  id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
  program_id UUID REFERENCES programs(id),
  version INTEGER DEFAULT 1,
  cell_id UUID REFERENCES cells(id),
  series_count INTEGER NOT NULL,
  parallel_count INTEGER NOT NULL,
  bms_config JSONB NOT NULL,
  thermal_solution TEXT,     -- 'passive','liquid_cooled','phase_change'
  geometry_mm JSONB,         -- {x, y, z, weight_g}
  schematic_url TEXT,
  approved_at TIMESTAMPTZ,
  created_at TIMESTAMPTZ DEFAULT now()
);
```

**Key insight:** Store `pack_config` as JSONB so the adaptive architecture library can diff new requirements against existing validated designs and flag reuse opportunities without a schema migration.

---

## Step 2: Adaptive Architecture Library

Build a TypeScript library that matches customer requirements to existing validated pack design templates.

```typescript
// lib/adaptive-architecture.ts

interface PackRequirements {
  voltage_nominal: number;
  capacity_wh: number;
  max_continuous_current_a: number;
  max_temp_c: number;
  envelope_mm: { x: number; y: number; z: number };
  environment: 'air' | 'sea' | 'space';
  standard: string;
}

interface DesignTemplate {
  id: string;
  similarity_score: number;
  reuse_percentage: number;  // what % of this design is validated already
  delta_requirements: Partial<PackRequirements>;
}

export async function matchTemplate(
  requirements: PackRequirements,
  db: Database
): Promise<DesignTemplate[]> {
  // Fetch all approved pack designs
  const designs = await db.query(`
    SELECT pd.*, p.pack_config
    FROM pack_designs pd
    JOIN programs p ON p.id = pd.program_id
    WHERE pd.approved_at IS NOT NULL
    ORDER BY pd.created_at DESC
  `);

  return designs
    .map(design => scoreMatch(requirements, design))
    .filter(match => match.similarity_score > 0.6)
    .sort((a, b) => b.similarity_score - a.similarity_score);
}

function scoreMatch(req: PackRequirements, design: any): DesignTemplate {
  // Score based on voltage, capacity, envelope, environment match
  // Penalize hard on environment mismatch (space != air != sea)
  const envMatch = req.environment === design.pack_config.environment ? 1 : 0.2;
  const voltageMatch = 1 - Math.abs(req.voltage_nominal - design.pack_config.voltage_nominal) / req.voltage_nominal;
  const capacityMatch = 1 - Math.abs(req.capacity_wh - design.pack_config.capacity_wh) / req.capacity_wh;
  
  const similarity_score = (envMatch * 0.4) + (voltageMatch * 0.3) + (capacityMatch * 0.3);
  
  return {
    id: design.id,
    similarity_score,
    reuse_percentage: Math.round(similarity_score * 100),
    delta_requirements: computeDelta(req, design.pack_config)
  };
}
```

The library is the core of the "one week to design" claim. Every new program starts by asking: what percentage of an already-qualified design can we carry forward?

---

## Step 3: Qualification Test Automation API

Build a REST API that test fixtures can POST data to in real time, with automated pass/fail evaluation.

```typescript
// api/qualification/ingest.ts

import { z } from 'zod';

const TestDataPointSchema = z.object({
  run_id: z.string().uuid(),
  timestamp_ms: z.number(),
  channel: z.string(),          // 'voltage','current','temp_c1','temp_c2','soc'
  value: z.number(),
  unit: z.string()
});

export async function POST(req: Request) {
  const body = await req.json();
  const datapoints = z.array(TestDataPointSchema).parse(body);

  // Batch insert raw data
  await db.bulkInsert('qualification_datapoints', datapoints);

  // Run real-time limit checks
  const violations = await checkLimits(datapoints);
  if (violations.length > 0) {
    await db.update('qualification_runs', {
      status: 'failed',
      result_summary: { violations, failed_at: Date.now() }
    }, { id: datapoints[0].run_id });

    // Alert engineering via webhook
    await notifySlack(`Qualification run ${datapoints[0].run_id} FAILED: ${violations.map(v => v.channel).join(', ')}`);
  }

  return Response.json({ ok: true, violations });
}

async function checkLimits(points: z.infer<typeof TestDataPointSchema>[]) {
  const run = await db.findOne('qualification_runs', { id: points[0].run_id });
  const limits = getStandardLimits(run.standard);
  
  return points.filter(p => {
    const limit = limits[p.channel];
    return limit && (p.value > limit.max || p.value < limit.min);
  });
}
```

**Key principle:** The test fixtures are dumb data sources. All pass/fail logic lives in the API where you can update it without reflashing hardware. This is what makes the qualification faster: you can tighten or adjust limits centrally, and every test run benefits immediately.

---

## Step 4: Compliance Documentation Generator

Auto-generate the test reports that programs need to submit for acceptance review.

```typescript
// lib/compliance-report.ts

import PDFDocument from 'pdfkit';

export async function generateQualReport(
  programId: string,
  db: Database
): Promise<Buffer> {
  const program = await db.findOne('programs', { id: programId });
  const runs = await db.query(
    'SELECT * FROM qualification_runs WHERE program_id = $1 ORDER BY created_at',
    [programId]
  );

  const doc = new PDFDocument({ margin: 50 });
  const buffers: Buffer[] = [];
  doc.on('data', b => buffers.push(b));

  // Cover page
  doc.fontSize(18).text('Battery Pack Qualification Report', { align: 'center' });
  doc.fontSize(12).text(`Program: ${program.name}`);
  doc.text(`Standard: ${program.pack_config.standard}`);
  doc.text(`Generated: ${new Date().toISOString()}`);

  // Test summary table
  doc.addPage();
  doc.fontSize(14).text('Test Summary');
  for (const run of runs) {
    doc.fontSize(10).text(
      `${run.test_type} (${run.standard}): ${run.status.toUpperCase()} - ${run.completed_at}`
    );
  }

  // Signature block
  doc.addPage();
  doc.text('Approved by: _______________  Date: ___________');

  doc.end();

  return new Promise(resolve => {
    doc.on('end', () => resolve(Buffer.concat(buffers)));
  });
}
```

Each completed qualification run contributes a section to the report. When all required test types pass, the report auto-generates and is emailed to the customer for submission.

---

## Step 5: BMS Firmware CI/CD Pipeline

Set up automated build, test, and OTA deployment for battery management system firmware.

```yaml
# .github/workflows/bms-firmware.yml
name: BMS Firmware CI

on:
  push:
    paths: ['firmware/**']

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      
      - name: Install ARM toolchain
        run: |
          sudo apt-get install -y gcc-arm-none-eabi
          
      - name: Build firmware
        run: |
          cd firmware
          make BOARD=bms_v2 all
          
      - name: Run unit tests (hardware simulation)
        run: |
          cd firmware/tests
          python3 -m pytest test_cell_balancing.py test_protection_logic.py -v
          
      - name: Static analysis
        run: |
          cppcheck --enable=all firmware/src/
          
      - name: Package artifact
        run: |
          cp firmware/build/bms_v2.bin artifacts/
          sha256sum artifacts/bms_v2.bin > artifacts/bms_v2.sha256
          
  deploy-staging:
    needs: build
    environment: staging
    steps:
      - name: OTA push to staging test bench
        run: |
          curl -X POST ${{ secrets.TEST_BENCH_URL }}/ota \
            -F "firmware=@artifacts/bms_v2.bin" \
            -F "sha256=$(cat artifacts/bms_v2.sha256)" \
            -H "Authorization: Bearer ${{ secrets.TEST_BENCH_TOKEN }}"
```

**Why this matters for speed:** Most aerospace firmware shops deploy by hand, logging changes in Word docs. Automated CI/CD means firmware can be updated, validated against the simulation test suite, and pushed to test benches overnight. One fewer manual bottleneck in the qualification week.

---

## Step 6: Manufacturing Execution System (MES)

Track every unit through the production line with a lightweight MES.

```typescript
// api/production/scan.ts

// Called when an operator scans a barcode at each station
export async function POST(req: Request) {
  const { unit_id, station, operator_id, result } = await req.json();

  const unit = await db.findOne('production_units', { id: unit_id });
  if (!unit) return Response.json({ error: 'Unknown unit' }, { status: 404 });

  // Validate station sequence
  const expected_station = getNextStation(unit.current_station);
  if (station !== expected_station) {
    return Response.json({
      error: `Out of sequence: expected ${expected_station}, got ${station}`
    }, { status: 400 });
  }

  // Log the step
  await db.insert('production_steps', {
    unit_id,
    station,
    operator_id,
    result,                    // 'pass' | 'fail' | 'rework'
    timestamp: new Date()
  });

  // Advance unit status
  if (result === 'pass') {
    const next = getNextStation(station);
    await db.update('production_units', {
      current_station: next,
      updated_at: new Date()
    }, { id: unit_id });
  }

  return Response.json({ ok: true, next_station: getNextStation(station) });
}

function getNextStation(current: string): string {
  const sequence = ['cell_prep','assembly','bms_install','initial_test','final_test','packaging','ship'];
  const idx = sequence.indexOf(current);
  return sequence[idx + 1] ?? 'complete';
}
```

The MES enforces the production sequence, flags out-of-order scans, and gives real-time yield visibility without a $300K enterprise MES license.

---

## Step 7: Customer Portal and Quoting Tool

A Next.js portal where customers configure their pack requirements and get a rough lead time estimate.

```typescript
// app/configure/page.tsx
'use client';

import { useState } from 'react';

export default function ConfigurePage() {
  const [requirements, setRequirements] = useState({
    voltage: 48,
    capacity_wh: 500,
    environment: 'air',
    standard: 'DO-160G',
    quantity: 50
  });
  const [estimate, setEstimate] = useState<null | { weeks: number; price_usd: number }>(null);

  async function getEstimate() {
    const res = await fetch('/api/quote', {
      method: 'POST',
      body: JSON.stringify(requirements)
    });
    const data = await res.json();
    setEstimate(data);
  }

  return (
    <div className="max-w-2xl mx-auto p-8">
      <h1 className="text-2xl font-bold mb-6">Configure Your Pack</h1>

      <label>Nominal Voltage (V)
        <input type="number" value={requirements.voltage}
          onChange={e => setRequirements(r => ({ ...r, voltage: +e.target.value }))} />
      </label>

      <label>Capacity (Wh)
        <input type="number" value={requirements.capacity_wh}
          onChange={e => setRequirements(r => ({ ...r, capacity_wh: +e.target.value }))} />
      </label>

      <label>Environment
        <select value={requirements.environment}
          onChange={e => setRequirements(r => ({ ...r, environment: e.target.value }))}>
          <option value="air">Airborne (DO-160)</option>
          <option value="sea">Marine / Submarine</option>
          <option value="space">Space</option>
        </select>
      </label>

      <button onClick={getEstimate}>Get Lead Time Estimate</button>

      {estimate && (
        <div className="mt-6 p-4 bg-green-50 rounded">
          <p>Estimated lead time: <strong>{estimate.weeks} weeks</strong></p>
          <p>Indicative pricing: <strong>${estimate.price_usd.toLocaleString()}</strong></p>
          <p className="text-sm text-gray-600 mt-2">
            Estimate based on template match score from our validated design library.
            Final pricing confirmed after requirements review.
          </p>
        </div>
      )}
    </div>
  );
}
```

The quoting tool calls the adaptive architecture library on the backend to compute a template match score, which determines the reuse percentage and drives the lead time estimate. Higher reuse = shorter timeline. This is the sales differentiator made concrete.

---

## Deployment Notes

- **Database:** Supabase (PostgreSQL) for relational data plus time-series extension for qualification datapoints
- **Firmware storage:** S3-compatible storage (Supabase Storage or AWS S3) for firmware binaries and test artifacts
- **Test fixture connectivity:** MQTT broker (Mosquitto or AWS IoT Core) for real-time data ingestion from test hardware
- **Portal:** Next.js on Vercel, auth via Clerk for B2B customer accounts
- **Compliance PDF:** Generated on-demand, stored in Supabase Storage, delivered via signed URL

The factory floor software (MES scan stations) runs on ruggedized tablets with a simple PWA that works offline and syncs when connectivity is restored.
claude-code-skills.md