Ikanos Systems

Work

We build our own products as well as our clients'. It is the most honest way to show what we do, and the fastest way to learn what a platform will and will not permit.

Photo App — a private, searchable photo library

An in-house product, currently in development and running against a real library of more than five thousand photographs. It backs up the photographs on your phone to a server you control, and then makes them findable.

The premise is that storage is not the interesting problem. Everybody sells storage. What people actually want is to find the photograph they are thinking of — the dog on the beach, a particular person at a particular birthday — across a decade of files nobody has ever labelled.

What it does

  • Search by description. "At the beach", "a birthday cake", "snow" — matched against what the photographs look like, not against filenames or tags.
  • Search by person and by pet. Faces and animals are detected, grouped by identity, and named once. After that they are searchable by name, including "this person at the beach", which combines both.
  • Automatic backup from the phone. Android and iOS apps upload new photographs in the background, continuing after the app is closed and resuming after a failed connection.
  • Recoverable deletion and offsite backups. Nothing is destroyed immediately, and a second copy lives with a different provider from the server.

How it is built

Applications
React Native and TypeScript for iOS and Android, with the upload engine written natively on each platform — Kotlin against WorkManager, Swift against background URLSession. A web client with no build step.
Service
Python and FastAPI, PostgreSQL with pgvector for vector search, Redis for the processing queue, and S3-compatible object storage. Docker Compose on a rented server.
Models
CLIP for image and text embeddings, ArcFace for face identity, served as quantised ONNX rather than a full deep-learning framework — the difference between running on a small server and needing a large one.
Operations
TLS, nightly database dumps and hourly object replication to a separate provider, and a production configuration that refuses to start when it is misconfigured rather than failing quietly later.

Why it is on this page

Every hard part of this product is a hard part of somebody else's: background upload that survives the operating system closing your app, search that understands intent, recognition that declines to guess, and backups that have actually been restored. That is the work we are offering.