> Markdown version of [/jobs/ext/3533972-full-stack-software-engineer](https://www.wearedevelopers.com/jobs/ext/3533972-full-stack-software-engineer). Every page supports `.md` or `Accept: text/markdown`. Links point to the HTML versions so they work for humans too. Agent guide: [/agents.md](https://www.wearedevelopers.com/agents.md). --- # Full-Stack Software Engineer - **Company:** Tyler Technologies - **Location:** United States - **Experience:** Expert - **Contract:** Permanent contract - **Skills:** 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, 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 - **Published:** October 1, 2026 - **Apply:** https://startup.jobs/senior-software-engineer-tyler-technologies-10239365 ## About the Role * 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. ## 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 ## Related Videos - [pytest: Simple, rapid and fun testing with Python](https://www.wearedevelopers.com/videos/213-pytest-simple-rapid-and-fun-testing-with-python) - [Keeping applications secure by evolving OAuth 2.0 and OpenID Connect](https://www.wearedevelopers.com/videos/100152-keeping-applications-secure-by-evolving-oauth-2-0-and-openid-connect) - [Build and Deploy a Fullstack App with Open Source Tooling](https://www.wearedevelopers.com/videos/775-build-and-deploy-a-fullstack-app-with-open-source-tooling) - [Using code generation for test automation – the fancy way](https://www.wearedevelopers.com/videos/230-using-code-generation-for-test-automation-the-fancy-way) - [Shipping Faster with Less: Render on Cloud Hosting, AI Workloads, and the Future of DevOps](https://www.wearedevelopers.com/videos/1894-shipping-faster-with-less-render-on-cloud-hosting-ai-workloads-and-the-future-of-devops) - [Delay the AI Overlords: How OAuth and OpenFGA Can Keep Your AI Agents from Going Rogue](https://www.wearedevelopers.com/videos/1637-delay-the-ai-overlords-how-oauth-and-openfga-can-keep-your-ai-agents-from-going-rogue) ## Related Articles - [How We Built a Worry-Free System That Runs for 10+ Years – And What We’d Do Again](https://www.wearedevelopers.com/magazine/751-how-we-built-a-worry-free-system-that-runs-for-10-years-and-what-we-d-do-again) - [Dev Digest 120 - Apple and peers](https://www.wearedevelopers.com/magazine/455-dev-digest-120-apple-and-peers) - [ I Gave a Video Editor More Autonomy Than a Trading Bot. On Purpose.](https://www.wearedevelopers.com/magazine/773-i-gave-a-video-editor-more-autonomy-than-a-trading-bot-on-purpose) - [Dev Digest 138 - Are you secure about this?](https://www.wearedevelopers.com/magazine/486-dev-digest-138-are-you-secure-about-this) - [Dev Digest 121 - AI goes offline](https://www.wearedevelopers.com/magazine/456-dev-digest-121-ai-goes-offline) - [9 Claude Code Skills to Speed Up Your Workflow](https://www.wearedevelopers.com/magazine/740-9-claude-code-skills-to-speed-up-your-workflow)