Opportunity brief
Amtech is hiring for the role of Associate Software Engineer!
Responsibilities of the Candidate:
- Write safe, testable C# code that follows enterprise standards for parameter binding, exception handling, and resource cleanup.
- Develop and maintain SQL queries that correctly handle joins, grouping, null values, and transaction boundaries.
- Debug systematically using logs, breakpoints, and methodical reasoning rather than trial-and-error.
- Participate in code review as both author and reviewer, learning from peers and contributing to team code quality.
- Implement features and bug fixes from specification, with attention to edge cases and test coverage.
- Own your learning curve—ask questions, document unfamiliar patterns, and build mental models of the codebase.
- Collaborate across functional areas—work with QA, product, and customer success to understand business requirements and validate solutions.
Requirements:
- Understanding: Recognize when AI tools (Claude, GitHub Copilot, etc.) can accelerate learning and coding, and when human judgment is required.
- Usage: Ask AI for explanations of unfamiliar code patterns, database concepts, and debugging techniques.
- Validation: Understand that AI can hallucinate or provide incorrect solutions; always verify generated code before committing.
- Policy compliance: Follow team policies on data safety, secrets handling, and appropriate use of AI tools.
- Risk awareness: Recognize basic risks: AI-generated code without understanding, over-reliance on suggestions, accidental data leakage
- C# and .NET Framework fundamentals
- Understanding of value types vs. reference types and when each applies.
- Ability to use LINQ and collections (List, Dictionary).
- Familiarity with async/await patterns.
- Knowledge of exception handling and the using statement for resource cleanup.
- SQL fundamentals
- Ability to write SELECT, INSERT, UPDATE, and DELETE queries.
- Understanding of INNER JOIN, LEFT JOIN, GROUP BY, and WHERE vs. HAVING clauses.
- Correct use of IS NULL / IS NOT NULL instead of equality comparisons with NULL.
- Understanding of transactions and why related operations belong in a single transaction.
- Ability to use parameterized queries to prevent SQL injection.
- Data safety and quality
- Recognition that SQL parameters protect against injection, quoting issues, and data format problems.
- Understanding that UI validation is not sufficient—database constraints and application logic must enforce integrity.
- Knowledge of why catching exceptions without handling them is dangerous.
- Awareness that disabling buttons or showing confirmation dialogs must be paired with database-level uniqueness constraints.
- Debugging discipline
- Ability to step through code with a debugger and inspect variable state.
- Habit of reviewing logs and error messages before guessing at causes.
- Understanding of when to add logging vs. when to set breakpoints.
- Willingness to write small test cases to isolate problems.
- General Competencies
- Communication: Explain unfamiliar code in plain language; ask clarifying questions about business requirements.
- Ownership: Take responsibility for code quality, testing, and correctness rather than shipping and hoping.
- Curiosity: Understand the "why" behind patterns and best practices, not just the syntax.
- Collaboration: Work well with code reviewers, QA, and cross-functional team