Skip to content
View MK0B3's full-sized avatar

Block or report MK0B3

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
MK0B3/README.md

Mohammad Kobeissi

I build systems where the interesting part is a constraint you have to design around, rather than a feature you have to add — a server that must not be able to cheat, a pipeline that must survive being run twice, a tool that has to be honest about what it doesn't know.


Projects

Encrypt a message that nobody can open until a chosen time — not the recipient, not the server, not me.

Messages are encrypted to a future drand round number using Identity-Based Encryption on the BLS12-381 curve. That round's threshold signature doesn't exist yet and can't be forged, so the ciphertext stays sealed until the network publishes it. The server never holds a key that could open a capsule early — there's no secret to leak and no admin override to abuse.

Every beacon is verified with a BLS pairing check at the boundary where it enters the system, so signatures bound to a different round are rejected — the case a well-formedness check can't catch. Hybrid encryption lifts the 32-byte plaintext ceiling that naive IBE imposes.

Go · Gin · drand · tlock · BLS12-381 · Docker


A serverless AWS pipeline that reads arXiv every week and emails you a personalised digest — summarised by Bedrock, narrated by Polly.

An event-driven Lambda pipeline does the data work, a containerised React + Express app serves the UI, and the entire stack is defined in Terraform: VPC, private subnets, NAT, ALB, auto-scaling group, CloudFront.

The design decisions are the point. Compute sits in private subnets with no public IPs and no SSH — administrative access goes through SSM Session Manager. AWS service traffic uses VPC endpoints rather than routing out to the internet and back. Scraping is idempotent via conditional puts, so a retry is a no-op instead of a duplicate. Scraping and inference are decoupled by SQS, because arXiv answers in seconds and Bedrock takes minutes.

Terraform · AWS Lambda · Bedrock · DynamoDB · SQS · SES · React · Node.js


A protein evidence workbench that runs entirely in your browser. One HTML file, no backend, no build step.

Answering a basic question about a protein normally means opening UniProt, STRING, and QuickGO in separate tabs and mentally joining the results. ProVisual fans out those queries in parallel, computes sequence-based predictions locally, and renders everything on one shared coordinate system — so you can see which annotated regions actually overlap.

The part no existing database shows visually: each natural variant is classified by what it lands on. A substitution on a catalytic residue and one in a disordered loop are not the same event, and the report says so.

Vanilla JS · Inline SVG · UniProt REST · STRING · Gene Ontology · Groq


Working with

Languages — Go, JavaScript, Python, Bash

Cloud & infrastructure — AWS (Lambda, DynamoDB, SQS, SES, Bedrock, S3, EC2, VPC), Terraform, Docker, GitHub Actions

Web — React, Node.js, Express, Nginx

Interests — Cloud computing, Linux, Computer Networks, Devops, applied cryptography, event-driven architecture


Every project above ships a documented list of what it doesn't do well. I think that's the more useful half of a README.

Pinned Loading

  1. MK0B3 MK0B3 Public

    Profile README

  2. Cloud-AKH Cloud-AKH Public

    Serverless AWS pipeline that scrapes arXiv weekly, summarises each paper with Bedrock, narrates it with Polly, and emails subscribers a digest. Provisioned end-to-end with Terraform.

    JavaScript

  3. TimeBased-LockEncryption TimeBased-LockEncryption Public

    Timelock encryption in Go — messages that cannot be decrypted until a chosen time, enforced by drand beacons and BLS12-381 IBE, not by a server.

    Go

  4. ProVisual ProVisual Public

    Protein evidence workbench — joins UniProt, STRING & Gene Ontology into one annotated report, with in-browser Kyte-Doolittle prediction and an LLM assistant. Single HTML file, no backend.

    HTML