Software Engineer II
With Vista’s investment and strategic guidance, we combine the agility of a growing technology organization with the scale, stability, and career mobility of a global software ecosystem.
Our Employee Value Proposition
At Amtech, our people are our greatest differentiator. We create an environment where you can:
Purpose
Shape the future of manufacturing and supply chain operations by delivering mission-critical enterprise software used by industry-leading organizations.
Growth
Access continuous learning, leadership development, and cross-portfolio opportunities through Vista’s global network — accelerating both technical and managerial career paths.
Culture
Work in a collaborative, transparent, and people-first environment where values, accountability, and integrity guide every decision.
Innovation
Engage with cutting-edge technologies, including AI-driven automation, and contribute to modernizing financial systems and operational processes across the business.
Position Overview
We are seeking a Software Engineer II to take ownership of discrete features and workstreams on the EnCore ERP platform. You will work independently on familiar domains while collaborating with the team to deliver predictable, high-quality output. At this level, you bridge the gap between individual contributor and technical leader—you own end-to-end implementation, including testing, code review, and knowledge transfer.
This role emphasizes independent delivery, testable code, transaction safety, and SQL efficiency. You will mentor newer engineers, contribute to architectural discussions, and take increasing accountability for system quality and performance.
Key Responsibilities
Own discrete features and bug fixes from specification to production, including design, implementation, testing, and documentation.
Write testable, maintainable C# using dependency injection, appropriate abstractions, and separation of concerns (UI, business logic, data access).
Develop efficient SQL queries with correct transaction handling, understanding of execution plans, and performance optimization.
Design and implement unit and integration tests that catch real problems and remain reliable across code changes and environments.
Lead code review of peer submissions, providing constructive feedback on correctness, testability, security, and performance.
Investigate performance issues in stored procedures and queries using execution plans, statistics, and production diagnostics.
Participate in database schema design and write safe, rerunnable migration scripts.
Support and mentor Associate Engineers, contributing to onboarding, pair programming, and knowledge building.
Propose improvements to team processes, tooling, and codebase consistency.
AI Proficiency (L2: AI Practitioner)
Scope: Personal productivity and routine task automation
Understanding: Understand when AI is appropriate for your work; recognize its strengths (code generation, documentation, explanation) and limitations (complex logic, business rules, data accuracy).
Validation discipline: Verify AI-generated code independently; understand the logic before merging; validate SQL queries against schema and business rules.
Routine tasks: Use AI confidently for boilerplate code, test scaffolding, documentation, and refactoring within your understanding.
Escalation: Recognize when a problem requires human judgment (security, architecture, business logic) and discuss with peers or leads.
Team standards: Follow established patterns for AI usage; don't use AI to bypass security or code review.
Required Qualifications
Technical Foundation
Advanced C# and .NET:
Proficiency with async/await, Task-based APIs, and understanding of completion vs. performance.
Ability to identify and fix issues with fire-and-forget async calls.
Knowledge of dependency injection and constructor-based dependency patterns.
Understanding of interface-driven design for testability.
Comfortable with LINQ, collections, and modern C# features.
Experience with exception handling, logging, and graceful degradation.
SQL competence:
Ability to write complex queries using CTEs, window functions (ROW_NUMBER, RANK, etc.), and advanced joins.
Understanding of execution plans and how to identify scans vs. seeks.
Knowledge of when to apply functions in WHERE clauses impacts performance.
Proficiency with transactions, isolation levels, and transaction safety across multiple statements.
Ability to write safe, rerunnable database migration scripts that check current state.
SQL parameterization as a standard, not an afterthought.
Data safety and transaction design:
Deep understanding of why business operations (e.g., "complete alert and insert history") must be atomic.
Recognition that UI validation and application logic are not sufficient safeguards—database constraints and transactions provide the final guarantee.
Ability to identify partial-failure scenarios and design for rollback.
Verification of row counts and state before/after operations.
Testing and quality:
Ability to write unit tests that are isolated, repeatable, and do not depend on execution date, static state, or file system artifacts.
Understanding of test fixtures, mocks, and fakes.
Familiarity with test-driven development (TDD) or test-first workflows.
Recognition that tests must be maintained and refactored as code evolves.
Debugging and investigation:
Systematic approach to identifying root causes in production issues.
Proficiency with debuggers, profilers, logs, and execution plans.
Ability to reproduce issues reliably and document findings.
Understanding of when to add instrumentation vs. when a problem is already well-understood.
General Competencies
Independent delivery: Complete tasks from specification to production with minimal hand-holding; know when to ask for guidance.
Communication: Explain design decisions, articulate trade-offs, and discuss business implications clearly.
Collaboration: Contribute to code review, pair programming, and mentoring without ego.
Ownership: Take responsibility for code quality, performance, and correctness; avoid blaming frameworks or "legacy code."
Continuous improvement: Identify and propose fixes for process gaps, inconsistencies, and inefficiencies.
Preferred Qualifications
Experience with enterprise systems (ERP, financial software, or complex multi-tenant applications).
Exposure to real-world performance tuning and debugging in production systems.
Familiarity with event-driven or message-based architectures.
Experience with reporting systems or analytics.
Understanding of database scaling, replication, or backup/recovery strategies.
Contribution to open-source projects or active GitHub presence.
Experience mentoring junior engineers or contributing to hiring and onboarding.
Knowledge of SDLC best practices, secure coding, and threat modeling.
Work Environment & Culture
Mature, large codebase: 13,000+ C# files across 50+ modules. You will navigate, improve, and extend existing systems.
Production responsibility: Your code directly impacts manufacturing operations, financial transactions, and customer success. Rigor is rewarded.
Collaborative technical culture: Architecture and design decisions are discussed; peer review is thorough and constructive.
Growth-oriented: You'll learn from senior engineers while mentoring newer ones.
Continuous learning: Unfamiliar frameworks (WiseJ, PPJ) are learned on the job through hands-on work and pair programming.
Growth Path
Within 18 months, a successful Software Engineer II will:
Ship 10–15 features and bug fixes independently with minimal rework.
Mentor or pair-program with 2–3 Associate Engineers on significant features.
Lead architectural discussions on assigned modules or cross-module concerns.
Identify and fix a performance issue that improves production throughput or latency.
Contribute 1–2 process improvements (tooling, testing, deployment, or documentation).
Beyond SE II, growth leads to Software Engineer III (senior architect), Technical Lead, or Staff Engineer roles, with responsibility for system design, strategic initiatives, and broad technical influence.
Why Join Amtech
At Amtech, you will drive meaningful financial impact in a growing enterprise software organization while benefiting from Vista’s world-class ecosystem. You’ll collaborate with talented peers, leverage cross-portfolio learning programs, and help shape the future of Amtech’s financial operations and systems. Build your career with Amtech — backed by the strength, scale, and innovation culture of Vista.