Deskripsi Pekerjaan
Informasi lengkap tentang posisi dan persyaratan
Ringkasan Yukerja
Lowongan Senior C++ Engineer di Surya Narayana Indonesia kami kurasi dari Glints (kategori Teknologi & IT). Perhatikan lokasi kerja (Buleleng) sebelum melamar. Yukerja.com bukan pemberi kerja — lamaran diproses di situs sumber resmi.
We are hiring a Senior C++ Software Engineer to build and develop reliable, maintainable, and high-performance software components for products based on architectural design / BIM (Building Information Modeling).
In this role, you will contribute to core system implementation, performance improvements, complex debugging, and integration work across a continuously evolving codebase. You will also work closely with established international partners, collaborating on solutions used in real-world professional workflows.
This position is suitable for an engineer who is not only technically strong, but also able to think systematically, take ownership of the components they work on, and help maintain strong engineering quality within the team.
Responsibilities
- Design, implement, and maintain C++ components for production systems, with a focus on Windows environments.
- Build software that is stable, readable, maintainable, and performant.
- Analyze and resolve complex technical issues, including crashes, memory issues, undefined behavior, concurrency bugs, and integration failures.
- Profile and optimize performance pragmatically based on data, covering CPU, memory, I/O, and architectural bottlenecks.
- Work with an existing, growing codebase and be able to understand, improve, and extend existing systems without compromising stability.
- Integrate with other components or services, including file input/output, local processes, APIs, SDKs, or third-party systems.
- Contribute to clean engineering practices, including:
- code reviews
- technical documentation
- build and release discipline
- basic test coverage and regression prevention
- incremental code structure improvements
- Collaborate with internal teams and external overseas partners on development, integration, and deliverable coordination.
- Help guide a small development team by providing technical direction, coordinating implementation work, and supporting engineers in debugging, design decisions, and code quality.
Required Qualifications
- Minimum 5 years of professional experience as a software engineer, with significant experience using C++.
- Proficient in modern C++, preferably C++17 or C++20.
- Strong foundation in:
- data structures and algorithms
- memory management
- object lifetime
- debugging
- profiling
- maintainable software design
- Experience working on large and complex production codebases.
- Able to write robust, understandable code that considers edge cases and failure modes.
- Comfortable working in a Windows development environment, including related debugging tools and workflows.
- Comfortable using Git and working collaboratively through code reviews and structured engineering workflows.
- Able to work independently, break down ambiguous problems, and turn technical requirements into concrete implementation plans.
- Strong communication skills, especially in explaining technical tradeoffs to both engineering teams and non-C++ stakeholders.
Nice to Have
One or more of the following would be a strong plus:
- Experience building software based on SDKs/plugins, especially involving third-party APIs, versioning, compatibility, and packaging.
- Experience with design, CAD, BIM, geometry, visualization, or engineering software.
- Comfortable reasoning about 2D/3D geometry, coordinates, transformations, simple topology, and numerical tolerances.
- A performance mindset: able to profile, identify bottlenecks, and optimize based on evidence rather than assumptions.
- A reliability mindset: accustomed to building software that remains stable when facing bad input, partial failures, or changing requirements.
- Systems thinking: able to reason about interfaces, invariants, ownership, failure modes, and tradeoffs between correctness, performance, and maintainability.
- Experience integrating with ML model outputs, either file-based or through local inference, and turning them into deterministic software behavior.
- Experience mentoring other engineers, reviewing technical designs, or taking ownership of important modules in a production system.