Jobs · Engineering · Massachusetts

Full Stack Agentic Developer

Charles River Associates · Boston, MA · 5 days ago
Engineering$150k–$230k/yrFull-time

About the role

Charles River Associates is a leading global consulting firm that provides economic, financial, and business management expertise to major law firms, corporations, and governments around the world. CRA advises clients on economic and financial matters pertaining to litigation and regulatory proceedings, and guides corporations through critical business strategy and performance-related issues. Since 1965, clients have engaged CRA for its combination of industry experience and rigorous, fact-based analysis that provide clients with clear, implementable solutions to complex business concerns.

Responsibilities

  • Build and evolve the React web application across core product surfaces: authentication, session setup, workspace navigation, file review, streaming agent activity, results review, and user-facing administration.
  • Create reusable component patterns for complex, stateful workflows while keeping the application maintainable, accessible, and easy for the team to extend.
  • Maintain Express/TypeScript API endpoints that support the web application, including session orchestration, file management, workspace operations, usage tracking, and new product capabilities.
  • Integrate frontend workflows with backend services for authentication, LLM routing, usage tracking, agent orchestration, cloud storage, and PostgreSQL-backed application data.
  • Translate complex backend and agent states into intuitive interface patterns, including empty states, progress states, error states, review states, and resumable workflows.
  • Implement and improve the real-time streaming interface between the backend, agent runtime, and UI, primarily through server-sent events and related event-driven patterns.
  • Render incremental agent output such as token-by-token text, tool execution cards, plans, task lists, progress indicators, cost and usage indicators, file changes, warnings, and final workflow states.
  • Manage stream connection lifecycle, retries, cancellation, cooperative stop, stop/resume behavior, error recovery, and clear feedback when long-running agent workflows are in progress.
  • Design UX and API patterns that help users understand what the agent is doing, what files it has changed, what outputs are ready for review, and what still requires human judgment.
  • Own and improve parts of the custom multi-turn agent loop where the agent sends messages to model providers, parses streaming responses, executes tools, observes results, and iterates within an isolated cloud container.
  • Develop proprietary tools that expand agent capabilities across file operations, analysis, transformation, visualization, document creation, data processing, validation, and workflow automation.
  • Create reusable patterns for adding new tools so agent capabilities can expand without making the runtime brittle, opaque, or hard to debug.
  • Support multi-model integration across OpenAI, Anthropic, and other frontier or local models, including provider-specific message formats, tool-calling formats, streaming behavior, structured outputs, and error patterns.
  • Build and maintain translation layers that normalize provider differences while preserving access to the strongest capabilities of each model.
  • Design and maintain prompt and context systems that shape agent behavior, including analytical identity, methodology compliance, interaction modes, tool usage policies, quality standards, and escalation patterns.
  • Implement token estimation, usage tracking, context compression, conversation summarization, prompt caching, and model-selection patterns for long-running analytical sessions.
  • Evaluate how agent behavior changes across providers, model families, prompts, tools, and workflows, then adapt the product and runtime to improve quality, cost, speed, reliability, privacy, and user trust.
  • Own the user-facing lifecycle of an AI work session, including creation, configuration, file upload, streaming execution, interruption, resumption, result review, workspace cleanup, and teardown.
  • Implement browser-to-cloud file flows including multi-file upload, progress tracking, validation, workspace browsing, previewing, downloading, and handling of large or mixed file types.
  • Support interfaces and APIs that help users understand the state of remote workspaces, generated outputs, intermediate artifacts, source files, and final deliverables.
  • Improve the connection between workspace state and agent state so users can review work product clearly and engineers can debug session behavior reliably.
  • Implement reliability patterns such as retry logic, rate-limit handling, tool error recovery, cooperative stop, graceful cancellation, resumability, and failure reporting.
  • Add structured logging, tracing, transcript capture, metrics, tests, and debugging tools so agent behavior can be understood at both the engineering and product level.
  • Partner with product, domain experts, backend, infrastructure, and security stakeholders to ensure end-to-end features are reliable across the browser, API layer, cloud services, and agent execution environment.
  • Contribute to delivery discipline by writing clear technical notes, estimating work thoughtfully, supporting sprint planning, and continuously improving development practices.

Qualifications

  • Bachelor's degree in Software Engineering, Engineering, or other relevant discipline with programming/technology experience, advanced degree desirable.
  • 6+ years of professional software engineering experience, with strong hands-on ownership across frontend, backend, and production product systems.
  • Strong TypeScript skills across the stack, including modern React development and Node.js/Express API development.
  • Experience building component-driven React applications with complex state, multiple interconnected views, real-time updates, and user-facing workflows that require careful error handling.
  • Experience building or consuming real-time interfaces using server-sent events, WebSockets, streaming APIs, or similar event-driven patterns.
  • Experience building LLM-powered agentic systems that use tools, execute multi-turn workflows, manage state, and recover from errors, not just experience building static chatbots.
  • Experience with LLM tool calling or function calling, including tool schema design, streaming tool input/output, multi-turn execution, and provider-specific implementation details.
  • Strong prompt engineering ability for structured, multi-step workflows, including prompts that encode policies, methodology, roles, and tool usage expectations.
  • Comfort working in Python for agent tools, data processing, automation, evaluation, and integration with analytical libraries.
  • Good understanding of browser authentication flows, JWT lifecycle, token refresh, CORS, secure cookies, role-based access, and frontend/backend security boundaries.
  • Familiarity with PostgreSQL and API-driven application design, including practical awareness of schema design, queries, migrations, and data access patterns.
  • Experience with Docker or Linux-based execution environments and practical understanding of isolation, filesystem access, dependency management, and runtime troubleshooting.
  • Strong product judgment, debugging instincts, documentation discipline, and ability to reason about AI behavior, software behavior, and user impact at the same time.
  • Experience designing custom agent frameworks, agent runtimes, orchestration loops, tool-extension systems, or evaluation harnesses rather than relying entirely on off-the-shelf frameworks.
  • Experience with OpenAI, Anthropic, and other model provider APIs, including streaming, tool use, structured outputs, usage tracking, rate limits, and provider-specific failures.
  • Experience with file-heavy web applications, including upload progress, large file handling, previewing, workspace navigation, generated-output review, and download flows.
  • Experience rendering markdown, structured outputs, tool activity, logs, transcripts, plans, or other rich incremental content in React.
  • Experience with sandboxed or ephemeral compute patterns, dynamically provisioned containers, secure credential injection, and session-scoped runtime lifecycles.
  • Experience with Azure services such as Static Web Apps, Container Apps, Container Instances, Blob Storage, Azure Database for PostgreSQL, Application Insights, or related cloud services.
  • Experience with Docker, GitHub Actions, CI/CD practices, structured logging, cloud observability, and collaboration in a distributed engineering environment.
  • Experience with headless browser automation, document generation, data analysis, visualization, file conversion, R, LaTeX, or workflow automation tools.
  • Experience working in consulting, professional services, legal, economic, healthcare, life sciences, energy, financial services, or other confidential/high-stakes environments.
  • Familiarity with responsible AI practices, model evaluation, transcript review, quality controls, AI governance, and enterprise AI adoption.

Similar jobs