The Software Engineer (C#, Language Server & Extensions) will lead our initiative to relaunch BimlExpress as a VSCode extension backed by a new C# Language Server. This includes implementing robust IntelliSense features, autocompletion, and quick info for BimlScript, as well as developing a corresponding Visual Studio add-in. A significant portion of the existing BimlExpress codebase can be adapted, but the front-end extension/add-in code will need to be largely rewritten from scratch. The current Visual Studio BimlExpress add-in will also be refactored to use this new Language Server. The position will be based in Sri Lanka and will collaborate closely with the US-based product team
Responsibilities:
Language Server Development:
Design, develop, and maintain a new C# Language Server powering code autocompletion, hover information, syntax checks, and other IntelliSense features for BimlScript
Integrate existing BimlExpress logic where possible while refactoring and improving code performance and maintainability
Collaborate with product managers and domain experts to define requirements for advanced code analysis and completion rules
VSCode Extension Creation:
Develop a new VSCode extension in TypeScript to interface with the C# Language Server
Implement user-friendly UI/UX components such as code snippets, hover tooltips, and inline documentation
Ensure seamless integration, testing, and debugging within the VSCode environment
Visual Studio Add-In Development:
Create a Visual Studio add-in that leverages the same Language Server functionality, maintaining a unified codebase
Adapt and reuse existing BimlExpress logic where possible while building new components and interfaces
Maintain consistency in user experience across both VSCode and Visual Studio
Code Review & Best Practices:
Conduct peer code reviews, enforce coding standards, and optimize existing code for performance and security
Assist in maintaining a clean, maintainable code structure that supports both the extension and add-in development tracks
Testing and Debugging:
Implement and maintain unit tests, integration tests, and end-to-end tests to ensure reliability
Debug and resolve issues related to language server communication, IDE-specific functionalities, and overall software performance
Projects:
Collaborate with cross-functional teams (product management, QA, design) to meet project requirements and deadlines
Contribute to continuous integration and continuous delivery (CI/CD) pipelines as part of an agile development process
To be successful in this role, you will have:
Essential:
Systems/Software:
C#/.NET with a strong background in modern .NET frameworks
TypeScript experience, especially for VSCode extensions or similar
Language Server Protocol (LSP) knowledge for IntelliSense/auto-completion functionality
Visual Studio extension or add-in development, or other IDE extension experience
Version control (Git) and familiarity with CI/CD (Azure DevOps, GitHub Actions, or similar)
Experience:
A minimum of 3–5 years of professional software development experience
Proven experience designing, implementing, debugging, profiling, and tuning high-performance developer tools or similar software
Ability to write clean, maintainable code and review contributions from peers thoroughly
Excellent communication skills for an international, distributed team
Nice to Have:
Familiarity with Biml, SSIS, ADF, or data warehousing concepts
DevOps experience (Azure, Docker) for hosting or containerizing solutions
Tertiary degree in Computer Science, Engineering, or related field
How strong is your resume?
Upload your resume and get feedback from our expert to help land this job
How strong is your resume?
Upload your resume and get feedback from our expert to help land this job