Software engineer & independent builder

Phạm Kỷ Nguyên

Systems thinking.
Endlessly curious.

I build backend systems, developer tools, and things I want to exist.

Explore selected work
Software Development Engineer
Workday Việt Nam
KN / LÔI LONG
Steel in motion. Thunder within.

Selected work

Curiosity, made real.

A few things I design, build, and keep making better.

LatticeConceptual study

Publishing & connected ideas

A place for thoughts to find each other.

A bilingual home for essays on technology, science, and the examined life. Built to read slowly and follow an idea further.

  • Nuxt
  • Django
  • PostgreSQL
Open Lattice
Under the surface

A Nuxt reading experience backed by a Django API and PostgreSQL. Publishing and presentation are separate, so one content model can support both languages.

That separation adds an API boundary to maintain. In return, the reading surface can evolve without coupling every visual change to the editor.

LumiConceptual study

AI & interaction

An answer, as it takes shape.

An AI workspace where text, reasoning, sources, and artifacts arrive as a conversation unfolds. A system designed around the moments in between.

  • Vue
  • Django
  • SSE
Open Lumi
Under the surface

A per-thread buffer receives server-sent events and renders each part as it arrives. Polling takes over on networks that interrupt the stream.

Streaming improves perceived responsiveness, but introduces partial messages, reconnects, and incomplete Markdown. Those states need their own handling.

CitadelConceptual study

Simulation & coded worlds

Serious systems. Playful consequences.

A hand-drawn tower defense built for the browser. Beneath the ink: branching upgrades, enemy behavior, and a simulation that can run without a screen.

  • Canvas 2D
  • Simulation
  • TypeScript
Open Citadel
Under the surface

The headless simulation is separate from Canvas rendering. Automated bots can play through stages to check balance before visual changes reach the browser.

Maintaining a renderer and a simulation separately takes discipline. It makes the rules testable and leaves room to change the entire art direction.

GõViệtConceptual study

Native tools & language

Familiar keys. Vietnamese, naturally.

An open-source Vietnamese input utility for macOS. Type with Telex or VNI across your apps, switch languages with a shortcut, and keep your familiar input source.

  • Swift
  • Rust
  • macOS
Open GõViệt
Under the surface

A Rust engine handles syllables, accents, and text restoration. A native Swift shell connects it to macOS keyboard events and remembers the input mode for each app.

Typing across apps requires Accessibility permission and different text-injection strategies for browsers and terminals. Keeping the engine separate makes the language rules testable on their own.

KN DriveConceptual study

Storage & protocols

Your Telegram, as a disk.

A Google-Drive-style file manager where every file lives in a private channel on your own Telegram account. Folders, previews, video streaming and share links, with no storage ceiling.

  • Nuxt
  • Django ASGI
  • Telethon
Open KN Drive
Under the surface

The browser sends 8 MiB chunks; an async Django service splits them into 512 KiB MTProto parts and streams them straight to Telegram. Nothing touches the server disk, and Range requests read back only the parts a video player asks for.

Holding each user’s Telegram session makes the server a high-value target, so sessions are encrypted with a key kept apart from the database. A session also cannot be shared between processes, which pins the service to a single worker.

An expanding ecosystem

The rest of my world.

To read. To use. To play. The same curiosity, taking different forms.12 projects

Portrait of Phạm Kỷ Nguyên
Phạm Kỷ NguyênĐà Nẵng, Việt Nam

The person behind the systems.

Born and raised in Đà Nẵng, Việt Nam. Started my career as an Engineer Intern at Paradox in late 2021, learning Python and Django from the ground up.

After nearly four years at Paradox, including a two-month assignment in Scottsdale, Arizona, Paradox was acquired by Workday in 2026, and I'm now part of the Workday team as a Software Development Engineer.

Make it correct. Then make it fast.
Then leave it better than you found it.
2026WorkdaySoftware Development Engineer

2026 / Now · Remote / Đà Nẵng

Workday, one of the largest HCM platforms, acquired Paradox in 2026. I'm now part of the Workday team, continuing to build on what we shipped before.

2022ParadoxSoftware Engineer

2022 / 2026 · Đà Nẵng

Nearly 4 years building HR automation tooling in the Đà Nẵng office. Grew from junior to middle, owning Django services, SQL pipelines, and integration work.

Scottsdale, Arizona
Aug, Sep 2025 · 2 months
Embedded with the US team in person, broadened my engineering toolbox and shipped alongside them.

2021ParadoxEngineer Intern

2021 / 2022 · Đà Nẵng

First role. Five months on-site in Đà Nẵng. Worked on the Vue.js front-end and learned the codebase.

2018Duy Tan UniversityB.Sc., Computer Software Engineering

2018 / 2022 · Đà Nẵng

Four years studying Computer Software Engineering. Graduated with 'Good' classification.

In my toolkit

  • Python

    Backbone of my work, used daily for backend services, scripts, and tooling.

  • Django

    Production web framework. Ship APIs, admin interfaces, and dashboards with it.

  • API Development

    Designing REST and GraphQL APIs. Versioning, authentication, pagination, observability.

  • Integration

    Connecting third-party systems, payment, identity, analytics. Webhooks, retries, idempotency.

  • Algorithmic Thinking

    Profiling, optimizing, and reasoning about correctness under load.

  • AI Agents

    Building agentic systems with LLMs. Tool use, structured outputs, evaluation harnesses.

  • Database Software

    PostgreSQL, MySQL, Redis. Schema design, indexing, query tuning.

  • Code Testing

    Unit, integration, and end-to-end tests. Pytest, mocks, fixtures, CI gating, coverage.

Still figuring things out.

Read on Lattice