Proudly Canadian · Ottawa

Custom software development
& systems integration

Telecom-scale load, control plane, and packet steering.

Contact

  • Competence
  • Transparency
  • Dedication

What we do

  • Performance testing

    We put systems under real load, find the bottlenecks, and show what will hold in production. When the problem is compute at scale, that includes high-performance computing.

    • Java
    • Kafka
    • Redis
  • Big data and analytics

    High-volume data: ingest, transform, store, and query — including streaming when it has to be real-time.

    • Kafka
    • ClickHouse
    • Redis
    • Elasticsearch
  • Software-defined networks

    Programmable packet paths: custom aggregation and load balancing, overlay handling (VLAN, MPLS, GTP), and stateful flow inspection.

    • P4
    • Tofino
    • DPDK

Recent work

  • IP-flow load generation

    A generator for an IP-flow processing pipeline: on the order of 10 million flow events per second, representing about 1 million concurrent mobile subscribers with realistic device identifiers, cell movements and applications. Kafka, Redis, Java.

  • Kafka to ClickHouse

    The customer moved data as CSV and was barely handling 100 thousand events per second. Replaced with Kafka, Protobuf, Kafka Streams, and ClickHouse: a sustained 10 million events per second, with less hardware and storage. Each record can be enriched in real time from the control plane — for example subscriber location and device identity on an IP-flow record. Shipped with a performance-testing framework and OpenTelemetry monitoring.

  • Diameter Gx/Gy

    Control plane for a PCEF-style system: policy and quota, next to an existing data plane. Includes a Gx/Gy server for testing and integration. Designed for high availability; 50 thousand control messages per second.

  • Packet broker

    On 100G Edgecore switches: both directions of a flow are steered to the same DPI engine, then returned to the correct port.

How we work

We work in Agile iterations, building applications block by block, so technical and business decisions can be judged in a working system.

  1. Discover

    Break the project into iterations that cover the required functionality.

  2. Design

    Architecture first: the simplest and safest structure that will keep cost down.

  3. Develop

    Code to agreed standards, pair programmed, continuously integrated.

  4. Test

    Prove the features work, and that they hold under load.

  5. Release

    Keep improving and refactoring toward a stable, well-performing system.

Contact

  • We will respond within 24 hours.
  • We will sign an NDA if you ask.
  • You will talk to product and tech people — not account managers.

office@altostech.ca