~/moise.kenge
| --:--:--
[ ~/whoami ] · Ottawa, ON · Canada · Open for Summer 2027 · AI / Software Engineering roles

Moïse Kenge

$ specialty >

I build production AI systems — currently shipping LLM-powered internal tools at Jonas Software (Constellation). Security DNA from a year of web3 audits; founding chops from co-building two startups end-to-end.

Seeking: Summer 2027 internships — AI Engineering or Software Engineering roles. Ship clean, ship calm, ship often.

04/04
shipped projects
2 active · 2 in production
100+
web3 audits
20+ risk indicators surfaced
05-eng
team led
co-founder · technical lead
02
internships
Jonas (current) · Webacy
// 02_about  ·  last_modified: 2026-05-23T14:32Z

about

i'm a software engineer studying at the university of ottawa. by day i ship internal ai tooling at jonas software (constellation). by night, i co-found and build — a healthcare marketplace, a fleet management platform, an ai-driven security scanner.

i'm fluent in the full stack but i care most about systems that work end-to-end: clean architecture, automated tests, calm deploys. less hype, more shipped.

previously i did security research on web3 protocols. that sharpened how i build — assume hostile, document everything, never trust client input.

$cat ~/.config/me.toml utf-8 · 18 lines
[identity] name="moïse kenge" location="ottawa, on · ca" languages=["english", "french"] edu="uottawa b.a.sc se · '27" [currently] shipping="ai tooling @ jonas software" building=["otonmi", "mobisoins"] learning=["rust", "llm internals"] [off_hours] sports=["lifting", "basketball"] reading=["mangas", "engineering blogs"] currently="the pragmatic programmer" [interests] fields=["ai_infra", "web_security", "founding"] stack=["ts", "py", "aws", "react"]
$cat ~/principles.md
  1. 01ship clean, ship calm, ship often — the cadence is the product
  2. 02assume hostile input. read the source — security comes from defaults, not patches
  3. 03automate the boring; document the rest — future-you is the user
  4. 04measure before optimizing — gut feelings are unreliable benchmarks
  5. 05own the deploy; own the rollback — if you can't undo it, don't ship it
// 03_experience  ·  4 records · sorted: desc

experience

[04/04] may 2026 — present markham, on [ CURRENT ]

jonas software · constellation

ai engineer intern
  • building internal ai-powered tooling using typescript, react, node.js, and python — integrating llm apis into enterprise workflows across constellation's 100+ subsidiary companies.
  • shipping ai proofs-of-concept end-to-end: architecture through cloud deployment with automated testing and ci/cd pipelines.
  • translating ambiguous business problems into shippable technical solutions on tight iteration cycles with product, design, and ops stakeholders.
[03/04] oct 2024 — present quebec, ca [ CURRENT ]

mobisoins

CTO / AI Engineer
  • leading full-stack development of a mobile-first healthcare marketplace connecting patients with certified nurses — owning the lifecycle from architecture through production deployment.
  • building cross-platform mobile apps using react native (expo) and typescript, backed by a nestjs api and postgresql — stripe connect for split payments, clerk for auth.
  • built ci/cd pipelines with github actions and law 25 / pipeda-compliant data handling; rigorous unit and integration tests support frequent, safe deploys.
[02/04] jan 2025 — apr 2026 remote [ PAST ]

kyeto logistics group · klg

technical co-founder
  • architected a cloud-native gps fleet management platform on aws (ec2, elb, rds, s3, vpc, route53) — custom subnets, security groups, and iam roles for least-privilege access.
  • led a 5-person engineering team using agile/scrum, ran code reviews via pull requests, enforced git/github branching strategies to ship features at high frequency.
  • built scalable restful apis and microservices in node.js and postgresql for real-time vehicle tracking and payment processing, backed by automated tests.
[01/04] jun 2024 — aug 2024 remote [ PAST ]

webacy

security research intern
  • conducted security research on 100+ web3 projects, identifying 20+ risk indicators including suspicious contract patterns and liquidity vulnerabilities relevant to financial product trust.
  • built risk assessment frameworks and authored technical reports that fed directly into platform trust scoring used by end clients.
// 04_featured_projects  ·  click any card to expand · scan for metadata

featured projects

project_01 · [ ACTIVE ] · otonmi.com

otonmi

ai-powered cybersecurity platform · dec 2024 — present
commit a4f2b9c · lang python · status active

Cloud-native GenAI security platform that scans repos using the Claude API with a RAG-powered chatbot for OWASP Top 10 vulnerability analysis. Built on Flask + PostgreSQL with vector embeddings, deployed to AWS with JWT auth and rate limiting.

pythonflaskclaude api ragembeddings postgresqldockeransibleaws
visit otonmi.com →
rolesolo · architecture + build + deploy
infraaws ec2, s3, rds, route53, elb · vpc w/ custom subnets + security groups + iam
// architecture

Single-tenant Flask API fronting a job queue that scans repos asynchronously. The RAG-powered chatbot ingests scanned code into vector embeddings, then retrieves relevant chunks per query and feeds them to Claude for OWASP-grounded responses. PostgreSQL stores scan results, embeddings, JWT issuance, and rate-limit counters. Served by gunicorn on AWS EC2, fronted by an ELB with Route53 DNS and least-privilege IAM roles per service.

// stack rationale
  • Python / Flask — AI libs are Python-first; Flask's small surface kept the security audit minimal.
  • Claude API — better structured-code reasoning than alternatives; lower false-positive rate on security claims.
  • RAG over vector embeddings — instead of stuffing the full repo into context, the chatbot retrieves only relevant code chunks per question. Cheaper, more accurate.
  • PostgreSQL + pgvector — one database for transactional state AND vector search. Fewer moving parts than a dedicated vector DB.
  • AWS EC2 over ECS — cost-efficient at low scale; Ansible playbooks already covered config drift.
  • JWT + rate limiting — opted out of OAuth complexity for v1; revisiting in v0.5.
// tradeoffs
  • flask isn't async-native — streaming claude responses required custom workarounds. v0.5 migrates to fastapi for sse.
  • ansible served well for 1-3 instances; past 10+ i'd switch to terraform + k8s.
  • jwt-only auth means manual revocation list maintenance — fine at this scale, painful past 10k users.
// impact
  • p95 < 200ms on scan requests under realistic load.
  • zero-downtime deploys via blue/green on ec2.
  • maps 100+ owasp top 10 patterns to severity ratings with claude-generated rationale.
  • ansible-provisioned infra reproducible from scratch in < 15 min.
https://otonmi.com
loading preview · click to visit
otonmi.com preview live
project_02 · [ SHIPPED ] · kengeconsulting.com

kenge consulting

secure backend api & site · jul 2024 — aug 2024
commit 1f0e8a3 · lang node.js · status shipped

secure backend api in express.js with rate limiting, input sanitization, and parameterized queries against sql injection. tuned for sub-200ms response times under realistic load.

node.jsexpresssqliteowasp
rolesolo · contract build
// architecture

classic 3-tier: express api + sqlite + static site. minimal surface — every endpoint locked behind rate limits and parameterized queries. designed to pass an audit, not to scale to millions.

// stack rationale
  • node.js / express — fastest path to a small, auditable api surface.
  • sqlite over postgres — single-file db, zero ops, perfect for a low-traffic consulting site.
  • no frontend framework — fewer dependencies = smaller attack surface, faster ttfb.
  • parameterized queries only — no orm, no string concatenation, no surprises.
// tradeoffs
  • sqlite caps near 100k concurrent reads — acceptable here, would migrate to postgres past that.
  • no orm meant more hand-written sql but tighter control over query plans and exposure.
  • vanilla js frontend means no spa-style navigation — fine for a 5-page site, painful at 50.
// impact
  • sub-200ms p95 response time under realistic load.
  • zero sql injection vectors — verified by manual review + automated owasp scan.
  • shipped solo in 4 weeks with full ci/cd.
https://kengeconsulting.com
loading preview · click to visit
kengeconsulting.com preview live
project_03 · [ ACTIVE ] · mobisoins.com

mobisoins

on-demand healthcare marketplace · Oct 2024 — present
commit d8e1c44 · lang typescript · status active

Mobile-first marketplace connecting patients with OIIQ-licensed nurses for at-home care. Dual-app product (patient + nurse), real-time dispatch, split payments via Stripe Connect, Law 25 / PIPEDA-compliant data handling.

react nativeexpotypescript nestjspostgresql stripe connectclerkgithub actions
roleCTO / AI Engineer · full lifecycle
// architecture

Dual-client mobile architecture (patient + nurse apps) on a shared NestJS backend. Real-time dispatch via websockets. Stripe Connect handles split payments, platform fees, and tax remittance. Clerk provides auth across both apps. PostgreSQL stores profiles, service requests, transactions, and audit trails for compliance.

// stack rationale
  • React Native + Expo — one codebase, two apps, fast OTA updates across both clients.
  • NestJS — module + DI patterns kept the medium-large API codebase organized from day one.
  • PostgreSQL — relational integrity for transactional payments; row-level controls for PHI.
  • Stripe Connect — split payments, KYC, and tax handling out of the box. Days vs weeks of custom work.
  • Clerk — pre-built phone/email auth flows saved roughly a month of dev time.
// tradeoffs
  • React Native means occasional custom native modules (e.g., background location for the nurse app).
  • Stripe Connect platform fees eat margin — accepted for speed-to-market; revisit at scale.
  • Law 25 compliance added ~2 weeks for PHI encryption, audit trails, and consent flows — mandatory, not optional.
// impact
  • Patient + nurse apps shipped to private beta.
  • Law 25 / PIPEDA compliant from day one.
  • Stripe Connect split-payments + tax handling live.
  • CI/CD on every push via GitHub Actions; rigorous unit + integration coverage.
https://mobisoins.com
loading preview · click to visit
mobisoins.com preview live
// also shipped · experiments
webacy_audit :: 100+ web3 protocols audited for risk indicators
[ RESEARCH ]
trust_scoring_framework :: risk assessment models feeding into client trust scores
[ RESEARCH ]
repo_scanner_cli :: claude-powered owasp checker (otonmi component)
[ ACTIVE ]
$ git log --all --oneline -8 // ~/repos/*
tracking · 4 repos live
a4f2b9c 3h ago otonmi feat(api): stream llm summary chunks via sse +184 -22
d8e1c44 yesterday mobisoins fix(payments): idempotency on stripe webhook retries +47 -15
7b2a01e 2d ago klg docs(infra): postmortem for v2.1 cutover · runbooks updated +312 -8
1f0e8a3 4d ago otonmi refactor: extract jwt middleware into shared lib +98 -126
ce71b22 6d ago portfolio feat(ui): command palette + boot sequence + decryption reveal +612 -44
9a3d014 1w ago mobisoins test: add coverage for rate limiter · 92% line coverage +204 -3
b4e2911 1w ago otonmi chore(deps): bump @anthropic-ai/sdk to latest +12 -12
e0c89a1 2w ago klg feat(track): sub-second gps polling on premium tier +267 -41
showing 8 of 142 · selected highlights across active repos moise@portfolio:~$
// 05_stack  ·  resource_monitor :: htop -d 5

skills & tech stack

// languages06
typescript92%
javascript90%
python84%
sql78%
java / kotlin62%
c / c++48%
// frameworks07
react90%
node.js / express88%
next.js80%
react native78%
nestjs72%
flask / rails60%
graphql / grpc50%
// ai / genai07
llm api integration86%
prompt engineering82%
rag pipelines76%
function calling / structured outputs76%
agentic workflows70%
vector embeddings / pgvector68%
llm evals58%
// cloud / devops07
aws (ec2/rds/s3)86%
docker80%
github actions82%
linux76%
ansible62%
kubernetes / k8s42%
// data / messaging06
postgresql88%
mysql / sqlite72%
dynamodb / aurora60%
redis (caching)55%
kafka52%
sqs / sns58%
// security04
owasp top 1084%
jwt / oauth 2.082%
secure api design78%
web3 audit64%
// practices05
restful apis90%
microservices78%
automated testing80%
code review85%
agile / scrum80%
// 06_education  ·  certifications: 0 (ship logs > certs)

education

university of ottawa

b.a.sc., software engineering · co-op
relevant_coursework = [
  data structures & algorithms,
  software construction,
  database management systems,
  object-oriented programming
]
expected may 2027 ottawa, on
// 07_contact  ·  open channel · response < 24h

contact

Engineer first.
Ship second.
Deploy together.

currently open for Summer 2027 internships — AI Engineering or Software Engineering roles. Also up for sharp contract work in between.
Fastest path is email. I reply within a day.

$ connect --via email moisekenge03@gmail.com $ connect --via github github.com/Moisekenge $ connect --via linkedin linkedin.com/in/moise-kenge $ connect --via phone 613-415-5325
moise.kenge © | handcrafted · no template | ↑↑↓↓←→←→ b a
⌁ end of file ⌁