About this role
Principal Engineer – Software Architecture and Modernization
What You’ll Do
-
Lead software architecture and modernization: Shape the evolution of legacy applications into well-structured, domain-oriented software. Define target architecture, module and service boundaries, migration seams, compatibility strategies, and incremental paths that teams can implement safely.
-
Stay deeply hands-on in code: Contribute directly to critical implementations, prototypes, refactoring, code reviews, and production fixes. Work comfortably in backend code and frameworks such as Java/Springboot, Golang, Node/TypeScript, or similar backend ecosystems, and help teams improve application structure, runtime behavior, and maintainability.
-
Design strong domain models and APIs: Create clear domain abstractions, ownership boundaries, service contracts, and APIs. Improve how business rules are represented in code and keep consumers insulated from legacy storage and implementation details.
-
Modernize application foundations: Guide framework and runtime upgrades, dependency modernization, concurrency and lifecycle improvements, and the decomposition of tightly coupled code. Use practical refactoring strategies that keep large systems releasable throughout the work.
-
Engineer for correctness, performance, and reliability: Diagnose difficult behavior through code, runtime evidence, database interactions, and dependency flows. Fix root causes in implementation and design, including concurrency defects, inefficient data access, resource contention, failure propagation, and recovery behavior.
-
Improve data access and integration design: Move business logic out of database-centric implementations and into testable application code. Design effective persistence, transaction, caching, messaging, and event-consumer patterns while preserving historical, reporting, and audit needs.
-
Raise the bar for code quality and testing: Establish strong practices for unit, integration, contract, and functional testing. Improve code review, static analysis, dependency management, feature controls, and validation so teams can change complex software with confidence.
-
Create reusable engineering patterns: Turn successful designs into clear patterns, reference implementations, libraries, and architecture decisions that help teams solve recurring software problems consistently.
-
Turn technical strategy into cross-team execution: Translate architectural risk into clear code-level priorities, decisions, ownership, and sequenced implementation plans. Partner with engineering, product, security, and data teams to move complex software initiatives from design through working code.
-
What This Is Not
-
This is not a people-management or architecture-only role. The engineer is expected to contribute directly to implementation and production outcomes.
-
This is not limited to greenfield design or modernization for its own sake. Decisions must balance long-term software quality with migration safety, business value, and the realities of changing production applications.
-
What You Bring
-
Deep backend and distributed-systems engineering
-
Credible hands-on implementation depth
-
Service transformation and architecture judgment
-
Production reliability and performance expertise
-
Software design and refactoring depth
-
Data and integration depth
-
Strong testing and code-quality discipline
-
Principal-level technical leadership
-
An opportunity-focused approach to AI-assisted engineering
-
Bonus Points
-
Experience modernizing large complex software systems, including runtime and framework upgrades.
-
Experience decomposing monoliths, extracting services, or establishing modular boundaries within large existing applications.
-
Experience with Oracle or other enterprise relational databases, Kafka or similar messaging systems, and complex data migration or reporting dependencies.
-
Experience with profiling, runtime instrumentation, concurrency analysis, database-performance diagnosis, or tuning.
-
Experience applying AI coding agents for codebase analysis, implementation, testing, and software modernization.
-
What Success Looks Like
-
Modernization advances without destabilizing the business
-
Critical software becomes easier to change
-
Architecture decisions become executable
-
Engineering quality improves across the lifecycle
-
AI expands engineering leverage
-
Why This Matters
-
ABC Fitness depends on critical software and data flows that must evolve without compromising the businesses and members they support. Strong architecture is valuable only when it produces clearer code, better behavior, and software that teams can continue to change.
-
This role connects long-term technical direction with hands-on software engineering. Done well, it will help teams reduce codebase complexity, modernize with confidence, resolve production problems at their source, and build a stronger foundation for future product development.
WHAT’S IN IT FOR YOU:
-
Purpose led company with a Values focused culture – Best Life, One Team, Growth Mindset
-
Time Off – competitive PTO plans with 15 Earned accrued leave, 12 days Sick leave, and 12 days