Software Development Engineer III, Platform Modernization

Innovation Associates, Inc.
2d$116,000 - $185,000

About The Position

Incrementally modernize the NEXiA platform — a customer-deployed pharmacy automation system — by decomposing legacy capabilities into well-modeled domain modules while maintaining a seamless end-user experience. This is strangler fig work: understand the existing system deeply, identify bounded contexts rooted in real pharmacy workflows, and replace components piece by piece so the customer never notices the seam between old and new. This is not a greenfield build. The hard part is operating at the boundary — building anti-corruption layers, maintaining backward compatibility, and ensuring that pharmacists and operators experience continuity, not disruption. Requires someone who thinks in domain models derived from real-world activities, not database schemas or API contracts.

Requirements

  • 6+ years of software development experience, with meaningful time spent modernizing or migrating existing systems (not exclusively greenfield)
  • Demonstrated ability to model software around business domains rather than technical layers — evidence of DDD, bounded context identification, or equivalent domain modeling discipline
  • Experience working at the boundary between legacy and modern systems: anti-corruption layers, facade patterns, incremental migration, feature flags for gradual cutover
  • Strong proficiency in astatically-typed OO language (C#/.NET strongly preferred; Java or similar accepted with willingness to ramp)
  • Experience with modern front-end frameworks (Angular, React, Blazor, or equivalent)
  • Understanding of on-prem deployment constraints: customer-specific configurations, upgrade compatibility, long-lived versions
  • Systems thinking — ability to reason about how changes propagate across module and service boundaries

Nice To Haves

  • Healthcare, pharmacy automation, or regulated-environment experience
  • Experience with event-driven architectures and domain event patterns
  • Familiarity with Azure cloud services and hybrid cloud/on-prem models
  • Active use of AI-assisted development tools with concrete examples of productivity impact — hands-on experience with Claude Code, Opus, or Sonnet is a significant plus
  • Experience with container orchestration (Kubernetes, OpenShift) in on-prem environments

Responsibilities

  • Decompose legacy NEXiA capabilities into bounded contexts modeled on real pharmacy workflows (fulfillment, dispensing, inventory, device load balancing)
  • Design and implement anti-corruption layers and facade patterns that isolate new modules from legacy coupling
  • Execute strangler fig migrations — incrementally routing traffic from legacy paths to new implementations with rollback capability
  • Maintain seamless end-user experience throughout transitions; the pharmacist should be oblivious to what's changing underneath
  • Collaborate with domain experts (pharmacists, operators, support) to validate that domain models reflect real-world activities, not inherited technical artifacts
  • Reason about system behavior across module boundaries — trace failure modes, data consistency, and latency implications before they become production incidents
  • Design for the constraints of on-prem, customer-deployed environments: upgrade paths, backward compatibility, long-lived versions
  • Make deliberate architectural trade-offs between isolation and pragmatism; not every boundary needs a message bus
  • Own technical design within bounded contexts; propose decomposition strategies and defend them in design reviews
  • Build full-stack applications using .NET Core / ASP.NET Core and modern front-end frameworks
  • Write meaningful tests — integration tests that validate domain behavior across the old/new boundary, not just unit test coverage metrics
  • Apply DDD patterns (aggregates, domain events, context mapping) as tools for clarity, not ceremony
  • Contribute to CI/CD pipelines, containerized deployments, and observability — especially at the seams between legacy and modern components
  • Actively adopt AI-assisted development tools (code generation, automated refactoring, test generation) to accelerate modernization work
  • Evaluate and integrate AI tooling into daily workflows — not as novelty but as a force multiplier for understanding legacy code, generating migration scaffolding, and validating domain models
  • Demonstrate willingness to evolve how you work as tooling capabilities change; the best tools in 12 months won't be the same as today
  • Work across engineering, product, QA, and customer-facing teams to ensure modernization priorities align with customer impact
  • Participate in design discussions with intellectual honesty — challenge assumptions, surface risks, and propose alternatives
  • Mentor team members on DDD, migration patterns, and systems thinking

Benefits

  • Generous time off policy that allows you to put your family first
  • Opportunity to work on the cutting edge of pharmacy automation in a high growth tech company
  • Competitive benefits, salary, and talent development opportunities
  • Commitment to professional development and working for a company where your voice is heard
© 2024 Teal Labs, Inc
Privacy PolicyTerms of Service