Working time: 9am - 6pm VN time (covering from 8am to 12am CET time) (tentatively)
Location: Vietnam, remotely.
Department (Function): Software Engineering
Job Category Individual Contributor
English language capability: Fluently both in written and verbal conversation, can join brainstorming
Organizational Assignment
- Functional Manager (direct): Manager Software Engineering
- Reportees: None
- Peers: Software Engineers, Software Architect
- Stakeholders: Product Managers
Job Summary
The Software Engineer – Licensing owns and evolves the licensing platform and SDK that enable licensing workflows across our product ecosystem. They contribute to the platform’s architecture and implementation, ensuring alignment with the overall technical vision while balancing migration needs, backward compatibility, and long-term maintainability
Key Tasks & Responsibilities
Core Requirements
Strong C# / .NET backend engineer
Core engineering responsibilities
- Design, develop, test, and deploy software applications. Experience designing code that is easy to unit test
- Collaborate with team members to define requirements and specifications.
- Write clean, scalable, and efficient code.
- Comfortable talking about unit tests, test doubles (mocks/fakes), dependency injection, separation of concerns
- Troubleshoot, debug, and resolve software defects.
- Participate in code reviews to maintain code quality and best practices.
- Stay updated with emerging technologies and industry trends.
- Mentions clean / layered / hexagonal architecture or similar in the candidates’ CV or experience
- Used to working with logging and observability in a structured way (not just “we log errors”, but with some thought behind it)
- Strong at desktop software experience (one of major requirements)
Licensing platform ownership
- Lead the evolution of the licensing component, ensuring seamless integration with internal systems (e.g., NetSuite, HubSpot) and external clients.
- Design and implement SDKs (in C#) to enable licensing functionality and guide developers migrating from legacy SDKs.
- Support data migration activities, ensuring data integrity, version compatibility, and minimal disruption.
- Define and implement strategies for NuGet package deployment, versioning, and lifecycle management.
- Implement observability, CI/CD pipelines (Azure DevOps), and security best practices (OAuth2, OIDC, token handling) for the licensing platform.
- Produce clear, customer-centric documentation and developer guides for SDK adoption.
- Act as an internal advocate for SDK usability and adoption best practices
Qualifications, Skills, and Competencies Required
- Bachelor’s degree in Computer Science, Engineering, or a related field.
- Proficient in English (spoken and written).
- Proven experience as a Software Engineer or similar role.
- Proficiency in one or more programming languages (e.g., .NET, Python, TypeScript, Angular).
- Strong understanding of software development principles and methodologies.
- Experience with version control systems (e.g., Azure DevOps).
- Excellent problem-solving skills and attention to detail.
- Strong communication and teamwork abilities.
Success Criteria / KPIs
Software Development
- Delivery of high-quality software that meets requirements and performs reliably (number of features or bug fixes passing QA).
- Code that is clean, scalable, and maintainable (measured through tools like SonarQube).
- SDK adoption rate and successful migration of consuming components.
- Reduction in licensing-related incidents or defects.
- Compliance with security and observability best practices.
- Uptime and reliability metrics for licensing services.
Collaboration and Communication
- Active participation in team discussions to define requirements and specifications (peer feedback score).
- Effective collaboration with team members and stakeholders to achieve project goals (participation in cross-functional meetings and alignment sessions).
Application Confirmation
You're applying for the role below: