Verified today
Software Engineer II
About the role
Software Engineer II on the EnCore ERP platform, owning discrete features and workstreams from specification to production. You will write testable C#/.NET code with dependency injection, develop efficient SQL with transaction safety, design and run unit/integration tests, lead code reviews, and mentor Associate Engineers. The role bridges individual contribution and technical leadership, with increasing accountability for system quality, performance, and knowledge transfer. Based in India.
What you’ll do
- 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 across UI, business logic, and data access
- Develop efficient SQL queries with correct transaction handling, execution plan understanding, 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 through onboarding, pair programming, and knowledge building
What you’ll bring
- Advanced C# and .NET proficiency, including async/await, Task-based APIs, dependency injection, interface-driven design, LINQ, and modern C# features
- SQL competence with complex queries (CTEs, window functions, advanced joins), execution plans, scans vs. seeks, transactions, isolation levels, and safe rerunnable migration scripts
- Deep understanding of data safety and transaction design, including atomic business operations, rollback design, and database constraints as final safeguards
- Ability to write isolated, repeatable unit tests using fixtures, mocks, and fakes, with familiarity in TDD or test-first workflows
- Systematic debugging and investigation skills using debuggers, profilers, logs, and execution plans to reproduce and diagnose production issues
- Independent delivery from specification to production with minimal hand-holding, knowing when to seek guidance
- Strong communication to explain design decisions, articulate trade-offs, and discuss business implications
- Collaborative ownership mindset, contributing to code review, pair programming, and mentoring without ego
Nice to have
- Experience with enterprise systems such as 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
- Knowledge of SDLC best practices, secure coding, and threat modeling