Company: Grosssoft
Location: Russian Federation, remote
Work format: Remote
Salary: Hourly, from 150,000 to 250,000 ₽
Project duration: project-based employment, from 6 months
Workload: Full-time
Industry: Industry
Employment type: agreement with sole proprietorship (you have an open sole proprietorship)
Key tasks
- Design and develop the architecture of a modular solution from scratch.
- Design and implement calculation modules: develop mathematical models and data processing algorithms.
- Develop an object model (ObjectARX-analog) for NanoCAD: create custom user objects (Custom Entities) and their management tools.
- Create user interfaces (tool palettes, dialog boxes, command ribbons) in the NanoCAD environment.
- Integrate with DBMS (MS SQL Server, PostgreSQL) for storing project data, reference books, and calculation results.
- Develop and support the modular testing infrastructure (Unit/Integration tests), address feedback from the Customer's functional testing.
Mandatory skills
- Programming language: C++ (proficient in C++11/14/17 standards, STL, understanding of RAII principles and memory management).
- Databases: Experience with MS SQL Server or PostgreSQL (schema design, writing optimized queries, working with transactions).
- Algorithms: Experience in developing mathematical models and calculation algorithms (computational geometry, linear algebra, optimization).
- CAD development: Experience in creating custom objects (Custom Entities) and interfaces in CAD environments (based on ObjectARX, Teigha or analogs). Understanding of graphic platform architecture, working with the graphic database (GS) and system events.
- Software Architecture: Experience in designing modular solution architectures (SOLID, Clean Architecture, dependency management).
- Code Quality: Experience in writing and supporting modular tests (Google Test, Catch2 or analogs), proficiency in TDD practices.
Desirable skills
- Experience in commercial development for AutoCAD or other CAD platforms based on IntelliCAD/Teigha.
- Experience with multithreaded programming for accelerating calculation modules.
- Low-level knowledge of DWG/DXF format.
- Experience with automated build systems (CMake) and version control systems (Git).
Apply: recruiter contact