Staff Software Engineer - Full Stack

We’re looking for a Staff Backend Engineer (C++) to join Procore’s Product & Technology Team. Procore builds software that improves the lives of everyone in construction, and our Product & Technology organization drives our innovative, global platform at scale.

We are a customer-focused team spanning engineering, product, design, data, security, and business systems. As a Staff Engineer, you will play a critical role in shaping the architecture and backend systems that power Procore’s Building Information Modelling (BIM) and construction management solutions worldwide.

This position reports to a Senior Director of Engineering and is based in our Norway location.

What You’ll Do

  • Lead the design and development of high-performance backend systems written in Rust/C/C++, powering Procore’s BIM and construction technology platform.

  • Architect and build scalable, distributed services aligned with Procore’s service-oriented and microservices architecture.

  • Own complex technical initiatives from concept to production, ensuring reliability, performance, and maintainability.

  • Collaborate closely with Product, Frontend, Infrastructure, and Platform teams to deliver robust APIs and backend services.

  • Establish and promote engineering best practices in system design, code quality, testing, and performance optimization.

  • Drive architectural decisions that support enterprise-scale customers across international markets.

  • Mentor senior and mid-level engineers, providing technical leadership, code reviews, and design guidance.

  • Anticipate scalability, reliability, and performance challenges in large distributed systems and proactively design solutions.

  • Contribute to CI/CD, observability, and operational excellence across backend services.

What We’re Looking For

  • Bachelor’s or Master’s degree in Computer Science or equivalent practical experience.

  • 8+ years of professional experience building production-grade backend systems.

  • Strong expertise in modern C++ (C++17/20 or later), including memory management, concurrency, and performance optimization.

  • Experience designing and building distributed systems and microservices at scale.

  • Deep understanding of multithreading, networking, and asynchronous programming.

  • Experience with service-oriented architecture and API design (REST/gRPC).

  • Familiarity with containerized environments and cloud-native infrastructure.

  • Strong understanding of data structures, algorithms, and system-level design.

  • Experience working with high-throughput, low-latency systems.

  • Experience operating software at scale (thousands of hosts, millions of users).

  • Track record of identifying architectural risks early and driving long-term technical strategy.

  • Experience designing CI/CD pipelines and improving developer productivity.

  • Strong documentation skills and ability to bring clarity to complex technical solutions.

  • Ability to balance short-term delivery needs with long-term architectural vision.

Nice to Have (Bonus)

  • Experience with 3D data processing, geometry engines, or BIM systems.

  • Familiarity with linear algebra, computational geometry, or spatial indexing.

  • Experience with Rust or performance-critical systems programming.

  • Exposure to WebAssembly or cross-platform native modules.

  • Background in graphics pipelines or handling large model datasets.

  • Experience optimizing large-scale data processing pipelines.

Additional Information

Base Pay Range:

880,000.00 - 1,210,000.00 NOK Annual

This role may also be eligible for Equity Compensation and/or Bonus Incentive Compensation. Procore is committed to offering competitive, fair, and commensurate compensation. Actual compensation will be based on a candidate’s job-related skills, experience, education or training, and location.