AI at Work
The first thing I needed for automation was not a chatbot. It was a place where the information about my own work actually lived together.
Answering an ordinary question at work — why a decision was made, what the customer actually asked for, what state a feature is in — meant checking mail, then Teams, then a meeting I half-remember, then JIRA, then Confluence. Five systems that do not talk to each other, with the context spread thin across all of them.
So I built a retrieval layer over them: a RAG store with a knowledge graph on top. The retrieval was the easy half. The work was ingestion, and it still is: getting data in continuously from systems that were never designed to hand it over.
Mail into JIRA
The single biggest contributor. Decisions made over mail used to live only in someone’s inbox, while the ticket they concerned said nothing about them.
- Parses mail threads and attaches the relevant content to the JIRA issue it belongs to, so a ticket carries its own decision history
- Traceability stops depending on whether the right person remembers to paste something in
It is not perfect. It runs, and it is reliable enough to work from.
Teams conversations
The same problem in a different system. A lot of the actual reasoning happens in team chat, and then it evaporates.
- Team conversations are ingested into the same store, so chat sits next to the mail and the tickets instead of staying in its own silo
Meetings
- A Whisper-based speech-to-text pipeline transcribes recordings, and the transcripts are managed as part of the same body of information rather than as someone’s private notes
- Meetings across Korea, Vietnam and client sites stop being the one source that leaves no record
Confluence and JIRA history
- Crawls what already exists in Confluence and JIRA and brings it into the same store, so historic context is searchable next to what arrived this morning
JIRA reporting
Built on the same access, and the most visible day to day:
- Pulls the board through the JIRA REST API with JQL queries and generates the sprint report as both Markdown and HTML
- Detects stale tickets and posts an automatic comment, so the nudge lands on the ticket rather than in a meeting
- Publishes to a small web dashboard the team opens directly
Two things I would keep in any rewrite: a DRY_RUN mode, because the first version of anything that
writes comments onto other people’s tickets should not actually write them, and pagination handled
properly from the start, because the board outgrew the first page much sooner than expected.
Rescuing a legacy build environment
Alongside the main product OS, my team owns FactoryOS: a separate, factory-only system that comes up from the dual-boot partition on the production line. It has its own build system, and that build system is ours to maintain.
At some point it had quietly stopped being buildable. Nobody had built it in a long time, and by the time I traced why, the working environment survived on exactly one aging machine. If that machine died, the ability to rebuild died with it.
Reconstructing an undocumented legacy toolchain is normally slow, specialist work. I used AI to take an impression of the environment as it actually was, reading what was genuinely installed and depended upon rather than what any document claimed, and rebuilt it as a container image. Once it was reproducible in a container, covering the other build variants was mostly duplication.
The build environment is no longer one disk failure away from being gone.
AI-assisted development
For writing code I work inside what the company sanctions: approved AI tooling (VS Code Copilot) with a server-hosted opencode setup integrated into it. Making an agent workflow genuinely useful under enterprise constraints is its own engineering problem, separate from the choice of model.
This site
A personal project rather than work, but the artifact is in front of you, so it needs no description from me.
Rebuilt with an agent-driven workflow in a single working session: the copy rewritten and kept consistent across this site and LinkedIn, the landing page and print-ready resume built, and a self-hosted analytics stack deployed alongside it in Docker.
The internal tech talk covering the reporting and transcription pieces in depth, with architecture and data-flow diagrams: AI-Powered Work Automation.