Base Career helps you apply smarter for this job.
Key skills for this role
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.
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.
Skip the repetitive application forms
Install the Base Career Chrome Extension and autofill job applications across major job boards with your profile.
Trusted by over 500,000 job seekers on Base Career
More from this employer
Bengaluru, IND
Bengaluru, IND
Bengaluru, IND
Bengaluru, IND
Bengaluru, IND
, USA
, USA
Bengaluru, IND
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.
Use Claude to generate unit test scaffolding while you write test logic.
Ask AI for SQL query optimization suggestions, then verify with execution plans.
Generate documentation and README content with AI, then edit for accuracy.
Use Copilot for boilerplate code, but always review and understand.
Escalate complex architectural decisions or security concerns to senior engineers.
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.
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.
Private enterprise software company providing ERP, MES, CRM, and automation software to packaging manufacturers.
Visit company websiteJobs and hiring trendsFull-time
Mid
Onsite
Apply faster on company sites with our extension.