Software Engineering · UX · Language Technology

Finite State Transducer Integration

Designing software that connects computational linguistics with modern web applications through thoughtful integration, architecture, and user experience.

FastAPI Python JavaScript HTML & CSS FSTs UX Design
Prototype interface for an interactive finite-state transducer morphology explorer
The Project

Turning a language engine into usable software

Finite-state transducers are powerful computational tools used to analyze and generate word forms. They can provide the linguistic engine behind language analysis systems, but transforming that capability into usable software requires more than running an analyzer.

I contribute to an open-source language technology project that explores how finite-state transducers can become part of a modern web application through thoughtful integration, user experience, and software architecture.

Rather than developing the linguistic models themselves, my role focuses on the engineering challenges that surround them: connecting interfaces, APIs, backend services, analyzer output, and the people who ultimately use the system.

My Perspective

Working at the boundaries between disciplines

This project brings together computational linguistics, web development, API design, UX, and technical communication. My background allows me to move between those areas while keeping both the system and the people using it in view.

Rather than focusing on a single layer of the stack, I am interested in how complete systems come together—from browser interaction to backend services to language analysis and back again.

My role is often connective: translating between technical layers, professional specialties, and different kinds of users so that the complete application remains coherent.

Cross-disciplinary thinking

Connecting software engineering, UX, computational linguistics, and education rather than treating them as isolated concerns.

Systems integration

Following the complete path from user interaction to API request, analyzer execution, structured response, and presentation.

Human-centered design

Making sophisticated information approachable without removing the detail specialists need.

Technical communication

Using diagrams, documentation, interface concepts, and collaborative discussion to make complex ideas easier to evaluate.

The Engineering Challenge

The engine may be the same. The experience should not be.

The application must support people with very different goals and levels of linguistic expertise while drawing from the same underlying language data.

Language Learners
Community Members
Language Teachers
Language Experts
Computational Linguists
Guided, approachable presentation Increasing linguistic and technical detail

A learner may need a clear definition and a simple breakdown. A teacher may need examples and reusable explanations. A linguist may need complete feature bundles, alternate analyses, and raw output. Designing for those differences without fragmenting the platform is one of the project’s central engineering and UX problems.

My Contributions

Engineering, design, analysis, and collaboration

01

Frontend & UX

  • Planning interfaces for language analysis tools
  • Designing workflows around analyzer output
  • Creating wireframes and interaction concepts
  • Exploring information architecture for complex linguistic data
02

Integration & Architecture

  • Planning FastAPI-based integration
  • Exploring REST API design and structured responses
  • Discussing architecture around finite-state services
  • Connecting frontend needs to analyzer capabilities
03

Analysis & Troubleshooting

  • Reviewing analyzer output during testing
  • Investigating unexpected analyses
  • Helping trace possible causes of unusual behavior
  • Documenting observations and implementation ideas
04

Collaboration & Communication

  • Working with software developers and linguists
  • Participating in architecture and workflow discussions
  • Producing diagrams and technical documentation
  • Translating ideas across disciplines
Designing for Multiple Audiences

Precision for experts. Clarity for everyone else.

An experienced linguist and a beginning learner may need access to the same underlying information, but they do not need the same presentation or the same interaction path.

How can one interface present the same computational analysis differently depending on who is using it?
What information should be visible by default?
When should advanced analysis be progressively disclosed?
How should analyzer responses become interface elements?
How can experts reach complete linguistic detail quickly?
How can newcomers avoid unnecessary complexity?
How can one platform support research, teaching, and learning?

These decisions affect much more than visual styling. They influence API response structure, frontend state, terminology, navigation, error handling, and the broader architecture of the platform.

Architecture

From user interaction to morphological analysis—and back again

The browser interface sends a request through FastAPI and the Python integration layer to the finite-state engine. The resulting analysis is converted into structured JSON and returned to the interface for display.

Technologies

Where the layers meet

Frontend

  • HTML
  • CSS
  • JavaScript
  • Figma

Service Layer

  • FastAPI
  • REST APIs
  • JSON

Integration

  • Python
  • Process orchestration
  • Output parsing

Language Technology

  • Finite-State Transducers
  • HFST
  • XFST
  • Foma
Project Gallery

This portfolio entry focuses on diagrams, interface concepts, analyzer output, and planning artifacts rather than unpublished or collaboratively owned source code.

Reflections

Software as a bridge between systems and people

Working on this project has reinforced that successful language technology depends on more than computational models.

It depends on integration.

On communication.

On thoughtful user experience.

On collaboration between disciplines.

Good engineering is not only about making a system function. It is also about designing the relationships between its parts so that sophisticated technology becomes understandable, maintainable, and genuinely useful.

Looking Ahead

Continuing the integration work

As the project evolves, I am continuing to explore frontend development, FastAPI integration, analyzer workflows, and interaction design that can make computational language tools more intuitive, scalable, and useful to a wide range of users.