Skip to content
View SajalDevX's full-sized avatar

Highlights

  • Pro

Block or report SajalDevX

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.

Content in all repositories owned by your account will be closed.
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
SajalDevX/README.md

Sajal Kumar Jana — Android & backend engineer

linkedin  ·  kakalijana1254@gmail.com  ·  prepairo on play store  ·  all pull requests

I build mobile apps and the backends they lean on — Flutter and Compose on the client, Spring Boot, Postgres and Kafka behind it. The part I like most is the unglamorous middle: making a real-time system survive a pod restart, making analytics events survive a phone reboot, making a benchmark an agent can't shortcut. Most of my open-source work is the same instinct pointed at other people's codebases.

now Benchmark task author — AfterQuery (Kepler) and Handshake (Dynamo, Seal). Containerized Terminal-Bench-style tasks, reference solutions, isolated verifiers, adversarial validation against no-op and shortcut paths.
prev Founding engineer — PrepAiro (Oct 2024 – Mar 2026). Flutter app to 150K+ / 20K+ installs; Centrifugo + Spring Boot real-time backend; Kafka clickstream pipeline processing 2M+ events a month; attribution microservice handling 1M+ clicks.
won 1st of 2,000+ teams, eRaksha Hackathon (IIT Delhi × CyberPeace Foundation), 2026 — with RAKSHAK. Demoed live at the Global AI Summit 2026, Bharat Mandapam.
school B.E. Information Technology, Army Institute of Technology, Pune — class of 2027.

Open source

Merged upstream

Project Pull request
OneBusAway/maglev
OneBusAway Maglev · transit REST API (Go)
#1493 Return parent station in stops-for-location
OneBusAway/maglev
OneBusAway Maglev · transit REST API (Go)
#1490 Reject NaN and Inf in float query parameters
ohcnetwork/care
CARE · hospital & patient management (Django)
#3770 Fix token numbers being reused after a token is deleted
The-OpenROAD-Project/OpenROAD
OpenROAD · open-source RTL-to-GDS EDA
#11523 bazel: enable layering_check on the dft and dst tests
The-OpenROAD-Project/OpenROAD
OpenROAD · open-source RTL-to-GDS EDA
#11410 odb: keep LEF SPACING on OBS POLYGON geometry
ankidroid/Anki-Android
AnkiDroid · spaced-repetition Android app
#21374 fix(filtered-deck): preserve error message for InvalidSearchException
TeamAmaze/AmazeFileManager
Amaze File Manager · Android
#4669 Notify user when renaming a file/folder to its original name

In review

31 open pull requests across 21 projects — click to expand

arxlang/arx · Arx · compiler front-end (LLVM)

  • #119 fix(irx): lower unary minus and plus
  • #120 fix(aix): lower ¬ to IRx's ! operator
  • #121 fix(aix): reject ^ until IRx can lower exponentiation

ohcnetwork/care · CARE · hospital & patient management (Django)

  • #3772 Fix availability exception overlap check for existing slots
  • #3774 Fix schedule creation rejecting today and timezone-aware dates
  • #3776 Fix 500 when listing appointments filtered by organization_ids

The-OpenROAD-Project/OpenROAD · OpenROAD · open-source RTL-to-GDS EDA

  • #11522 dbSta: check Liberty transition tables and input capacitance in check_ip
  • #11540 grt: keep the folded child's fixed layers in CUGR getSteinerTree
  • #11541 web: drop heat map bins outside a polygon die area

dora-rs/dora-hub · dora-rs · robotics dataflow nodes

  • #90 fix(dora-parquet-recorder): record string values instead of their offsets
  • #91 fix(dora-pyaudio): clip float audio before casting to int16

fossasia/eventyay · FOSSASIA eventyay · event ticketing

  • #5913 fix(base): send the current usage fields from record_usage
  • #5944 fix(control): limit how many voucher codes one request can generate

OneBusAway/maglev · OneBusAway Maglev · transit REST API (Go)

  • #1495 Resolve stop route IDs in schedule-for-route
  • #1496 Allow spaces in IDs

theochem/grid · theochem/grid · numerical integration

  • #335 Fix 1D Cartesian orders in generate_orders_horton_order
  • #337 Include the last term in the Fejer quadrature weights

ankidroid/Anki-Android · AnkiDroid · spaced-repetition Android app

  • #21383 fix(reviewer): replace AlphaAnimation with ViewPropertyanimator in AnswerFeedbackView

CCExtractor/ccextractor · CCExtractor · subtitle extraction (C)

  • #2356 [FIX] Keep per-page teletext state when extracting multiple pages

CCExtractor/sample-platform · CCExtractor sample platform (Flask)

  • #1214 [FIX] Reject malformed or unexpected webhook signatures instead of raising

CircuitVerse/cv-frontend-vue · CircuitVerse · digital logic simulator (Vue)

  • #1334 fix(vuesim): use 2 ** bitWidth for Stepper and RAM range limits

hermetoproject/hermeto · Hermeto · hermetic build dependency fetcher

  • #1788 fix(generic): map the java-source Maven type to a jar

JdeRobot/PerceptionMetrics · JdeRobot PerceptionMetrics · CV evaluation

  • #643 Keep dots in sample names for YOLO and COCO datasets

kubeflow/kale · Kubeflow Kale · notebooks → pipelines

  • #976 fix(backend): keep and escape annotation/label values that contain ':' or quotes

mesa/mesa · Mesa · agent-based modelling (Python)

  • #3882 Don't run an EventGenerator whose first run is after schedule.end

mlflow/mlflow · MLflow · ML lifecycle platform

  • #26190 Make set_mcp_server_alias safe against concurrent delete_mcp_server_version

neuroinformatics-unit/movement · movement · animal pose-tracking analysis

  • #1122 Round frame numbers when exporting VIA tracks with time in seconds

omegaup/omegaup · omegaUp · competitive programming platform

  • #10255 fix: escape every quote and quote line breaks in CSV cells

openfoodfacts/open-prices · Open Food Facts · Open Prices (Django)

  • #1460 fix(Prices): reset duplicate_of when an edited price no longer matches

OpenMS/pyopenms_viz · OpenMS · pyopenms_viz (mass-spec plotting)

  • #183 Let pyopenms_viz import without matplotlib or Pillow

Submitty/Submitty · Submitty · course management & autograding

  • #13384 [Bugfix:System] Quote DB URL credentials

Contributed to

CCExtractor/ccextractor CCExtractor/sample-platform CircuitVerse/cv-frontend-vue JdeRobot/PerceptionMetrics OneBusAway/maglev OpenMS/pyopenms_viz Submitty/Submitty TeamAmaze/AmazeFileManager The-OpenROAD-Project/OpenROAD ankidroid/Anki-Android arxlang/arx dora-rs/dora-hub foss42/apidash fossasia/eventyay hermetoproject/hermeto kubeflow/kale mesa/mesa mlflow/mlflow neuroinformatics-unit/movement ohcnetwork/care omegaup/omegaup openfoodfacts/open-prices openwisp/netjsonconfig theochem/grid

Regenerated nightly by a small script from the public PR search API.


Selected work

UPSC prep app, 150K+ Play Store installs. Founding engineer across the Flutter client and the Spring Boot backend: real-time 1v1 and multiplayer duel rooms that stay consistent across pods (Postgres advisory locks, owning-pod heartbeats, orphan sweeper), Kafka → Parquet → DuckDB analytics, in-house install attribution.

Flutter · Spring Boot · PostgreSQL · Centrifugo · Kafka · DuckDB · AWS S3

RAKSHAK 1st place, eRaksha 2026

Agentic cyber guardian for home IoT on a Raspberry Pi 5. A Dueling DQN agent chooses threat responses autonomously, while TinyLlama-1.1B-powered honeypots impersonate real IoT devices to stall and fingerprint attackers.

Python · PyTorch · TinyLlama · Flask · Scapy · nmap

Public emergency surveillance. RTSP frames go through YOLOv8 and a temporal scorer; a sustained score triggers Gemini 2.5 Flash verification to kill false alarms, then Vapi voice agents phone the fire brigade and the camera owner over Twilio, answering questions strictly from incident facts.

YOLOv8 · OpenCV · Gemini · Vapi · Twilio · ElevenLabs

Long-term memory for AI chat. Hybrid retrieval over Qdrant vectors, BM25, entity lookup and recency-aware selection; async pipeline with query analysis, token-budgeted context assembly and SSE-streamed responses.

Python · Qdrant · RAG · SSE

AI plant-care app. Clean Architecture + MVVM across five Compose modules with Koin DI; an expert-picker routes scans to 5+ specialised agents for disease detection and growth analysis; WebSocket chat, S3 uploads, Room + Flow offline layer.

Kotlin · Jetpack Compose · Koin · Retrofit · Room

College dining app serving 1,000+ students during the 10 PM – 2 AM night-canteen window. Compose + MVVM frontend, Firebase/Supabase backend, Minis payments, real-time order tracking with Realtime Database and FCM.

Kotlin · Jetpack Compose · Firebase · Supabase

all repositories →

Toolbox

languages

mobile & frontend

backend & data

ai & edge

Contact

Open to Android and backend roles, and to interesting bugs. LinkedIn · kakalijana1254@gmail.com

Pinned Loading

  1. ai_chat_bot_cli ai_chat_bot_cli Public

    Python

  2. dx_ed dx_ed Public

    TypeScript

  3. BlitzUnstake BlitzUnstake Public

    Solidity

  4. stock-market stock-market Public

  5. ai-butler-app ai-butler-app Public

    Dart