Application Developer
Role details
Job location
Tech stack
Job description
We are seeking a software engineering contractor to harden and evolve FLIK, DDSI''s NLP-based analytics application. This is not a data science role; the contractor will partner with a data science team that owns modeling logic and analytical methods.
Primary responsibilities include:
- Separate core modeling workflows from the Streamlit application into a
reusable Python package
- Improve code structure, testing, and CI/CD reliability in alignment with
- department standards
- Enable programmatic (non-UI) access to FLIK capabilities
- Develop architecture documentation and contributor guidance, including support for AI-assisted development
- This role adds dedicated software engineering capacity to a data science-led team,
- enabling separation of responsibilities between modeling and engineering concerns.
The contractor will:
- Reduce operational risk by improving testability, reliability, and CI/CD
- practices.
- Make FLIK maintainable by introducing clear architecture, documentation and coding conventions.
- Enable reuse by decoupling modeling workflows from the Streamlit UI and
- supporting non-UI access.
- This allows the data science team to focus on evolving methods and delivering
value to users, while ensuring the underlying system is robust, extensible, and aligned with department standards, * Heavily used Python libraries: pandas, NumPy, scikit-learn, spaCy,NLTK, Gensim, Transformers / ONNX Runtime / Optimum, LangChain,
- LangGraph, LangChain OpenAI, Plotly matplotlib, pyLDAvis, Pydantic /pydandic-settings (comfort reading and integrating these libraries issufficient; our data science team owns the modeling and NLP methodology)
- Dev tooling: pre-commit, Black, Ruff, mypy, docformatter, Sphinx Bonus
- Python packaging; streamlit ecosystem; infrastructure & deployment; AI-
- assisted development; documentation & quality
Can you give us an example of the types of questions you''d ask during an interview?
- Technical questions on Python programming; Streamlit; Docker; Git; Unit Testing and other skills listed above.
Requirements
- Python software architecture & refactoring: Experience separating reusable
- domain logic from UI/framework layers in complex applications, especially in data
- science contexts.
- Testing, CI/CD, and operational hardening: Strong experience with pytest,
- integration testing, and CI/CD pipelines (GitLab, Docker); ability to improvereliability in existing systems.
- Python packaging and interface design: Experience designing installable
- Python packages and defining clear programmatic interfaces (e.g., scriptable, API-friendly, or tool-compatible access)
- Streamlit at production scale: Experience working with Streamlit applications(multi-page apps, session state, callbacks), with a focus on maintainability and testing.
- Developer experience for humans and AI-assisted tools: Ability to write clear documentation, architecture guidance, and coding conventions that enable both developers and AI coding assistants to work effectively in the codebase
Required Skills
- Languages: Python, R (bonus)
- Core application stack: Streamlit (multi-page app, session state