For confidentiality reasons, this page only describes the mechanisms and architecture that were put in place. It does not mention the tool's name or its data.

Stack: Kotlin, Spring Boot, PostgreSQL, React, LangChain4j.


Context

  • Internal career management platform, developed within an agile team.
  • Goal of the redesign: add new processes, statistics and an AI assistant, and steer the user journey towards action rather than simply viewing data.
  • My role: leading the redesign project and full-stack development.

Actions

Intern follow-up

  • End-to-end design of a new type of review meeting: workflow, state machine and permission management.
  • Automatic scheduling of review meetings.

AI assistant

  • AI chat able to retrieve information from the application through an MCP (Model Context Protocol), built with LangChain4j.
  • AI permissions aligned with the user's role: the assistant can only access what the user is allowed to see.
  • Robustness testing with prompt injection.
  • Gradual rollout to users through feature flags and a beta-tester role.
AI assistant architecture: chat interface, LangChain4j backend, LLM, MCP, role-based permission check and application data
Architecture of the AI assistant with role-based permissions

Data migration

Four-step migration from a legacy model to a new table, including migration of historical data and handling of edge cases.

Performance

  • Removal of N+1 queries.
  • Measured gains in the number of queries, loading time and volume of data exchanged.

Google Drive synchronisation

  • Scripts synchronising the application with the Google Drive API.
  • Document permissions updated according to the assigned manager.

UX/UI redesign

  • User journey redesigned to make the platform action-oriented rather than focused on viewing data.

Results

  • Data migration completed with no service interruption.
  • Improved performance, with measured gains in the number of queries, loading time and data exchanged.
  • AI assistant gradually rolled out to beta-tester users.