Software Engineer | Backend & AI | Open-Source Contributor
I'm a Data Science graduate interested in backend engineering, AI/ML, and building reliable software. I enjoy solving problems, improving existing codebases, writing tests, and contributing to open-source projects.
- Languages: Python, C++, Java, JavaScript, TypeScript, PHP, Rust
- Backend & APIs: FastAPI, REST APIs, microservices, gRPC
- Databases: PostgreSQL, SQL, DuckDB, Firebase
- AI/ML: Machine Learning, RAG, LLM applications, embeddings, AI agents
- Frontend: React, TypeScript, Vue
- DevOps & Systems: Docker, Linux, Git, GitHub Actions, CI/CD
- Testing & Code Quality: pytest, GoogleTest, regression testing, static analysis
- Protocols & Integration: MCP, A2A, WebAssembly (WASM)
- π΅ Contributing to Canonical and Ubuntu projects
- π΅ Working on Docling and document-processing pipelines
- π΅ Contributing to projects across IBM, Google, and other open-source communities
- π΅ Working with SoftTrack
- π€ Building Notescape, an AI-powered learning workspace
- π§ Exploring Linux, containers, distributed systems, and systems programming
I contribute to bug fixes, regression tests, performance improvements, dependency updates, protocol compatibility, CI/CD, and infrastructure.
26 merged and 43 open pull requests across 18 open-source projects, plus contributions merged through maintainer PRs in html-to-markdown and gRPC, and 32 merged Β· 2 open PRs in my own project Notescape. (Status as of October 19, 2026.)
π All my merged PRs Β· All my open PRs
| Organization | Project | Status | β Merged PRs | π Open PRs | Contributions |
|---|---|---|---|---|---|
| Docling Project | Docling | 7 merged Β· 2 open | #4727, #4826, #4827, #4828, #4863, #4869, #4870 | #4704, #4864 | DOCX linked-style numbering, JATS sub-articles, AsciiDoc list parsing, email HTML escaping, DOCX/iWork sub-lists, ODP speaker notes, empty Markdown headings; layout section headers, video diarization |
| Canonical | LXD | 5 merged Β· 4 open | #19272, #19274, #19275, #19303, #19307 | #19301, #19302, #19314, #19315 | VM lxd_cpu_effective_total metric, snap LVM metadata under SNAP_COMMON (with stable-6 backport), concise out-of-space backup errors, ISO/tarball import checks; GPU resources, UEFI vars on stopped VMs, volume import, cluster joins |
| SoftTrack | SoftTrack | 5 merged Β· 1 open | #109, #120, #165, #208, #353 | #380 | Team archiving and deletion, filtered CSV export, issue-key auto-linking, documentation; quality & releases module |
| Docling Project | Docling Pipelines | 4 merged Β· 1 open | #140, #141, #164, #183 | #184 | Chunker import performance, per-PR coverage thresholds, lazy logging, DCO workflow migration, entity storage operator |
| Canonical | Multipass | 1 merged Β· 4 open | #5339 | #5345, #5411, #5421, #5422 | Hyper-V time synchronization; update notices on stderr, instance start errors, QEMU tap device and image handling |
| Style Guide | 1 merged Β· 4 open | #1038 | #1040, #1041, #1042, #1043 | Vim help tag fix; Emacs C-style indentation, Python, Java and HTML guide clarifications | |
| OpenMetadata | OpenMetadata | 1 merged Β· 3 open | #35366 | #35371, #35752, #35760 | Pipeline trigger response parsing; Classification alerts, profiler ORM for nested array columns, multi-column foreign keys |
| Guava | 1 merged Β· 1 open | #8741 (via Copybara) | #8740 | SimpleStatsCounter.snapshot() concurrency documentation; ClassPath handling of $ in class names |
|
| Ubuntu | ubuntu-lint | 1 merged | #38 | β | Source format 1.0 support in the dput checks |
| gRPC | gRPC Python | 4 open Β· 1 contribution incorporated | #43126 (assertion incorporated) | #43677, #43678, #43679, #43680 | grpc.aio off the deprecated asyncio policy API, OpenTelemetry export without holding the census mutex, health-check List RPC, Bazel .proto path validation; a regression assertion for context.abort() merged as part of #43126 |
| Canonical | cloud-init | 3 open | β | #7084, #7152, #7153 | NoCloud seed-URL platform variables, invalid cached network-config recovery, netplan DHCPv6 for SLAAC |
| Docling Project | Docling Core | 3 open | β | #883, #884, #885 | Markdown sub-list nesting, DocLang page-break sentinel, attribute-only custom fields and table metadata |
| IBM | MCP Context Forge | 3 open | β | #7123, #7124, #7127 | A2A v0.3 task states, file-part normalization, Parlor.sh catalog server |
| QwenLM | Qwen Code | 3 open | β | #13169, #14094, #14113 | Vulnerable dependency updates, qwen mcp reconnect server names, 429 fallback handling |
| DOMjudge | DOMjudge | 3 open | β | #3782, #3858, #3859 | Resolver delete events, open-to-all contest counts, jury toggle state on reload |
| React | React DevTools | 2 open | β | #37847, #37848 | Releasing deleted host instances, content-script polling |
| Canonical | Snapcraft | 1 open | β | #6477 | Added the snapd-info project key |
| GoogleTest | 1 open | β | #5095 | Visual Studio header files for gtest | |
| Xberg.io | html-to-markdown | 5 Commits merged via maintainer PRs | #581, #717, #726, #727, #733 | β | My PRs #652, #701, #703, #720 and #721: table-cell block separation, WASM visitor handle ownership, <br> hard breaks, task-item blockquotes (details below) |
| NotescapeAi | Notescape (private repo) | 32 merged Β· 2 open | β | β | Login and sign-up pages, Firebase and GitHub authentication, landing, pricing, support, terms and privacy pages, Docker images, database schema, subscriptions, dashboard; flashcards |
Rust-based HTML β Markdown converter with WebAssembly bindings. My work was reviewed by the project maintainer and code owner, then landed through follow-up PRs with my commits and authorship preserved.
- #720 β Preserve block separation in table cells Β· fixes #692
Block-level elements inside table cells no longer join the surrounding text. Added<center>,<dialog>,<hgroup>and<search>as block-level elements, with regression tests for the Tier 1 and Tier 2 converters and different table configurations. Integrated through #733. - #721 β Preserve WASM visitor handle ownership Β· fixes #517
Assigning aWasmVisitorHandleno longer consumes the JavaScript handle, so it can be reused. Updated the Alef-generated bindings and added regression tests for visitor reuse andclearVisitor(). Split into #726 (Alef upgrade and regenerated bindings) and #727 (tests and WASM coverage). - #652 β Preserve blockquotes in task items
Initial fix and regression tests for a blockquote at the start of a task item being rendered on the checkbox line. The underlying bug was fixed on the integration branch by another PR; the maintainer kept my tests with me as commit author, and they reachedmainthrough #581. - #701 / #703 β Keep a
<br>on its own line as a hard break
Original fix for a<br>on its own source line becoming a paragraph break, plus regression tests for block elements, comments, whitespace, inline wrappers and newline styles. Carried forward into #717, where the maintainer extended it to the fast converter and more edge cases; merged with my authorship preserved.
Technologies: Rust Β· WebAssembly Β· HTML/Markdown conversion Β· Automated testing
- Languages: Python, Rust, C++, JavaScript, TypeScript, PHP
- Backend & Databases: FastAPI, PostgreSQL, SQL, DuckDB
- Testing & Quality: pytest, GoogleTest, Ruff, regression testing, coverage enforcement
- AI & Document Processing: Docling, entity extraction, document parsing, RAG
- Protocols & Integration: gRPC, AsyncIO, MCP, A2A, WebAssembly
- DevOps & Systems: Docker, Linux, Git, GitHub Actions, Multipass, Hyper-V, cloud-init, Snapcraft
- Performance & Security: Lazy imports, logging optimization, dependency updates, large-graph performance
Notescape β AI-Powered Learning Workspace
An AI learning platform designed to help learners understand study material, identify weak topics, and plan revision.
- π Document ingestion with OCR and support for multiple file formats
- π§ Retrieval-Augmented Generation (RAG), embeddings, and LLM-powered assistance
- π Flashcards, quizzes and spaced repetition
- βοΈ Stack: React, TypeScript, FastAPI, PostgreSQL, pgvector, Redis, Docker
- Competitive programming and algorithmic problem solving
- Codeforces and LeetCode practice
- Experience as a teaching assistant and competitive-programming mentor
- 100+ contributions in the last year (previously tracked; see GitHub for the current count)
- Open-source work across 19 projects
- Contributions spanning backend development, testing, performance, AI, and systems engineering
- LinkedIn: Lubaba Khalid
Always learning, building, and contributing to open source. π



