Full-Stack Software Engineer

Tyler Technologies
United States
5 days ago
Apply on startup.jobs
Prepare application

Role details

Contract type
Permanent contract
Employment type
Full-time (> 32 hours)
Experience level
Expert
Experience required
5 years minimum
Working hours
Regular working hours
Job source

Tech stack

JavaScript (Programming Language) .NET Framework Microsoft Windows Artificial Intelligence Amazon Web Services Amazon S3 C Sharp (Programming Language) Cloud Computing Code Generation Code Review Command-Query Responsibility Segregation (Software Development) Amazon DynamoDB
+34 more
Elasticsearch Middleware Federal Information Processing Standards (FIPS) Github Identity and Access Management Node.Js OAuth OpenID Operational Databases Query Optimization E2e Testing Cloud Services Systems Integration TypeScript Web Applications Wireless Networks Eslint Datadog AWS Cdk Large Language Models Claude Code Rendering Engine AWS Lambda Xunit Moq AI Platforms AngularJS Playwright PowerTools (Software) Functional Programming JestJS Terraform Serverless Computing OpenSearch

Job description

Report Writing is how officers write incident, arrest, field interview, and case reports in the field. The product spans three codebases that one team owns end to end:

  • Client: an Angular 21 web app, also packaged as an Android WebView wrapper, that officers use on unreliable mobile networks. Offline resilience is a product requirement, not a feature.
  • Cloud services: AWS serverless back end in GovCloud, built in TypeScript with CDK, Lambda, DynamoDB, OpenSearch, and Cognito. Includes an AI services layer that generates report summaries and extracts people and vehicles from narratives.
  • Agent: an on-premise .NET 10 service that translates cloud reports into Tyler’s Enterprise Records Management System (RMS) and runs the submission, approval, and print workflows at each agency., This is a backfill for a senior engineer who shipped in all three tiers, with the heaviest footprint in the client’s page-rendering engine and the cloud report-writing service. We need someone who can move between a strict Angular/NgRx front end, a CDK-defined serverless back end, and a .NET integration layer, and who works fluently with Claude Code as part of daily engineering. Our repos carry agent guides, custom skills, subagents, and MCP servers, and most commits in the last year were produced with Claude Code as a pair., * Build and maintain the client’s generic page-rendering and dynamic-form layers (NgFormly, NgRx effects, offline queueing) while keeping them agnostic of report type and agency configuration.
  • Design Lambda handlers, DynamoDB access patterns, and OpenSearch queries in the cloud report-writing service, and define the infrastructure for them in CDK.
  • Extend the AI services layer: async job patterns for summary generation, prompt and payload shaping for token budgets, and IAM for worker invocation.
  • Build features in the .NET agent’s RMS integration layer: field translation, entity resolvers, duplicate checking, background polling services.
  • Write unit, integration, and end-to-end tests with every change across Vitest, Jest, xUnit, and Playwright.
  • Triage production issues using logs, traces, and the team’s support MCP tooling, and ship hotfixes through the release-branch process across all three repos.
  • Use Claude Code daily: follow and improve repo agent guides, write and maintain skills and subagents, wire MCP servers, and review AI-generated code to the same standard as human-written code.
  • Maintain shared GitHub Actions workflows, CalVer release tooling, and Terraform Cloud secrets plumbing.
  • Review pull requests and mentor mid-level engineers., * Framework: Angular 21, strict TypeScript 5.9, RxJS 7, Angular CDK, moving to zoneless change detection with signals
  • State: NgRx store, effects, entity, router-store
  • Forms and UI: NgFormly dynamic forms, Tyler Forge design system, Forge AI components, CKEditor 5, ngx-translate
  • Offline and resilience: Service worker / PWA, IndexedDB via idb, custom retry operator, optimistic updates with offline queue
  • Testing: Vitest via Analog with jsdom, Playwright end-to-end suites (smoke, extended, case-counter)
  • Quality gates: ESLint with custom rules, Prettier, cspell, strict typecheck in CI
  • Observability: Datadog RUM and browser logs, * Runtime: Node.js and TypeScript Lambda handlers, esbuild, Middy middleware, Lambda Powertools (logger, tracer, metrics, parameters)
  • Infrastructure: AWS CDK with RW-prefixed custom constructs and a configuration loader, cdk-nag, Terraform Cloud for account-level infra and secrets
  • Data: DynamoDB, OpenSearch (dashboard search and audit indexes), S3, Secrets Manager, SSM, * Runtime: C# 13, .NET 10, ASP.NET Core hosted as a Windows Service on-prem
  • Architecture: CQRS with a mediator library, layered solution, Scrutor DI, validated Options
  • Integration: HttpClientFactory, Polly, AutoMapper, System.Text.Json
  • Auth: OAuth2 / OIDC, JWT bearer, Duende access token management, Cognito
  • Testing: xUnit, Moq, AutoFixture, FluentAssertions, coverlet, WebApplicationFactory
  • Quality gates: Roslyn analyzers, dotnet format, CodeQL, gitleaks

Requirements

  • 5+ years building production software with substantial depth in at least two of: Angular (w/ strict TypeScript habits) with NgRx, TypeScript on AWS Lambda with CDK, C# / .NET back-end services. Willingness and demonstrated ability to work in the third.
  • Experience building front ends for unreliable networks: retry, optimistic update, offline queueing, and conflict handling.
  • Serverless design skills: DynamoDB access patterns, idempotent handlers, async job patterns, IAM least privilege, and infrastructure defined in code.
  • Integration experience with systems you do not own over HTTP, including retries, token lifecycle, and defensive handling of partial data.
  • Strong testing discipline across unit, integration, and end-to-end layers, and the ability to write asynchronous tests that do not flake.
  • Claude Code proficiency. Daily use of Claude Code or an equivalent agentic coding tool for implementation, test repair, and code review. Able to write and maintain repository agent guides, skills, and subagents; configure MCP servers; and critically review AI-generated changes against blocking review rules rather than accept them.
  • Production support experience: diagnosing from structured logs and traces, shipping hotfixes through release branches, and communicating risk.
  • Clear written communication in PRs, ticket updates, and architecture docs.

Strongly preferred

  • Public safety or records management domain (incident, arrest, and case data, NIBRS/IBR, ORI handling).
  • NgFormly or another dynamic-forms engine at scale, and Angular signals / zoneless migration experience.
  • OpenSearch or Elasticsearch query optimization and index migration.
  • Building LLM-backed product features: prompt and payload shaping for token budgets, async generation jobs, evaluation of outputs, and handling of PII.
  • Authoring MCP servers or tools that give agents safe read access to production data.
  • Terraform Cloud, shared GitHub Actions workflows.
  • GovCloud or other FIPS-constrained environments.

Apply for this position

This job is hosted externally. Click below to view the full posting and apply.

Apply on startup.jobs
Prepare application

Good distractions

Talks and stories from around this role — technically off-topic, practically not.

2:04 min

Creating and configuring the unit test project

Roman Alexis Anastasini · World Congress 2021

2:49 min

Adopting OAuth best practices and removing outdated grants

Alexander Schwartz Alexander Schwartz · World Congress 2026 Europe

1:20 min

Identifying multi-disciplinary talent for developer experience engineering roles

Hazal Mestci +1 · Coffee With Developers

4:37 min

Writing readable test assertions without boilerplate test classes

Florian Bruhin · World Congress 2021

1:26 min

Transitioning to agentic engineering with comprehensive repository context

Dishu Bagga Dishu Bagga · Europe 2026 Virtual

1:34 min

Analyzing vulnerabilities in standard OAuth 2.0 authorization flows

Alexander Schwartz Alexander Schwartz · World Congress 2026 Europe

Videos

See all

Related articles

See all