Innovation Associates, Inc. is a pharmacy automation company that provides a platform for pharmacy fulfillment solutions. They are seeking a Senior Software Development Engineer to improve their NEXiA platform by delivering features, working with legacy code, and leveraging AI tools to modernize their systems.
Responsibilities:
- Build and ship features across the NEXiA platform — pharmacy workflows, hardware integration, operator interfaces — working within and improving the existing codebase
- Own features end-to-end: understand the domain context, design the approach, implement across the legacy/modern boundary, test, and support through deployment
- Work across the full stack — VB.NET backend, .NET Core services where they exist, front-end interfaces, SQL Server data access, and hardware integration layers
- Write code that moves the codebase forward: when you touch a module, leave it more testable, more maintainable, and closer to modern patterns than you found it
- Navigate and improve a VB.NET codebase that has evolved through multiple technology generations
- Identify opportunities to migrate legacy components to modern .NET/C# — not as a separate initiative, but as part of feature delivery and defect resolution
- Build and maintain the seams between legacy VB.NET code and modern .NET components; manage the coexistence practically
- Apply pragmatic judgment about what to modernize now versus what to isolate and defer — not everything needs to be rewritten, but nothing should be left unexaminable
- Write meaningful tests for the existing codebase, introduce test seams, extract interfaces, break dependencies as needed
- Build automated validation that works across the legacy/modern boundary, catching regressions before they reach customer environments
- Troubleshoot and debug across the full stack(including 32-bit VB.NET components)with a systematic approach; production issues in pharmacy automation have real operational impact
- Improve test infrastructure: create the test coverage that doesn’t exist today so the team can change code with confidence
- Operate as an orchestrator of AI-assisted engineering workflows, not just a developer with an autocomplete plugin. The practical workflow: directAI agents to comprehend a legacy module, generate characterization tests that capture actual behavior, propose migration approaches, review and validate output before shipping. You own the judgment; the AI multiplies your throughput
- Apply AI tooling to the hardest parts of legacy work: mapping undocumented business logic across VB.NET modules, generating test suites for legacy code, identifying coupling patterns and migration risks across a large codebase, and scaffolding modern .NET replacements
- Maintain verification discipline — in a codebase where behavior is undocumented, AI tools will confidently generate plausible-but-wrong characterizations. Knowing when to trust and when to verify is as important as knowing how to prompt
- Develop and share effective AI workflows with the team; this team’s velocity depends on tooling leverage, not just headcount. What you learn about applying agentic tools to legacy modernization makes everyone faster
- Work alongside the engineers driving architectural decomposition (Platform Modernization, Database Modernization) to ensure feature work aligns with the broader migration strategy
- Participate in design discussions with honesty about what the legacy codebase can and can’t support without deeper changes
- Mentor other engineers on navigating legacy code, introducing tests into untested systems, and practical migration patterns
- Communicate trade-offs clearly to product and leadership: what you can build cleanly now, what requires legacy improvement first, and what the cost of deferring improvement looks like
Requirements:
- 6+ years of professional software development experience, with significant time spent in legacy or brownfield codebases (not exclusively greenfield)
- Strong proficiency in .NET — modern .NET/C# preferred, but demonstrated ability to work productively in older .NET technologies (VB.NET, .NET Framework, WinForms)
- Experience improving codebases you inherited: introducing tests where none existed, refactoring without rewriting, migrating incrementally between technology generations
- Hands-on experience building and consuming APIs, with working knowledge of service integration patterns
- Solid SQL Server skills — querying, performance analysis, schema understanding — in a codebase where the database is deeply coupled to application logic
- Pragmatic engineering judgment: knowing when to improve, when to isolate, and when to leave something alone
- Active engagement with AI-assisted development tools in your daily workflow — not autocomplete-level usage, but using AI for code comprehension, test generation, refactoring, or migration work. Existing agentic workflow experience (Claude Code, Cursor, etc.) is ideal; demonstrated rapid adoption and concrete experimentation is acceptable
- Comfort working in a regulated, on-prem environment where deployments are customer-specific and rollbacks are expensive
- Direct experience migrating VB.NET or VB6 applications to modern .NET/C#
- Experience with pharmacy automation, healthcare, or other regulated environments where software controls physical processes
- Familiarity with DDD concepts — bounded contexts, aggregates, domain events — even at a working level
- Experience with CI/CD pipelines (Azure DevOps, GitHub Actions) and containerization
- Experience with front-end frameworks (Angular, React, Blazor)
- Exposure to event-driven or message-based architectures