Principal Software Engineer (Golang)
Procore Technologies Austin, Texas, United States · $198K–$273K/yr
Software Development · 1,001-5,000 employees
About the role
The Principal Software Engineer will lead the technical strategy for the Directory domain, overseeing the migration from legacy Ruby systems to a Go-based architecture. They will also drive the evolution of GraphQL APIs and event-driven streaming services to ensure a scalable and reliable foundation for the company.
What they look for
Requirements
Candidates must have 10+ years of experience in architecting complex distributed backend systems and strong proficiency in Go. A bachelor's or master's degree in Computer Science or equivalent experience is required, along with eligibility to work on FedRAMP-compliant projects.
Benefits
Full description
We're looking for a Principal Software Engineer to join Procore's Directory team, part of our Product & Technology organization. The Directory team owns the user and company management experience within a construction workspace — the systems that manage collaborators at the company level and per-project level, as well as the account entities that each company operates within. This is foundational, high-leverage infrastructure: nearly every workflow in Procore touches the accounts, companies and people this team owns.
In this Principal Software Engineer role, you'll set the technical direction for the Directory domain across our Go-based backend, built on a CQRS/Event Sourcing architecture, and our React/TypeScript frontend and legacy Ruby/Typescript systems. You'll partner with Product, Design, and adjacent platform teams to translate business needs around identity, access, and organizational structure into resilient, scalable systems. Use your deep experience in distributed backend systems, event-driven architecture, and modern frontend engineering to keep the Directory domain a dependable foundation for the rest of Procore.
This position reports into the Sr. Engineering Manager, Directory and 2 days per week hybrid role in our Austin office. We’re looking for someone to join us immediately.
This position requires US citizenship to work on FedRAMP-compliant projects. Candidates must be eligible to work on federal government projects requiring FedRAMP authorization.
What you'll do:
- At Procore, AI isn't a specialized tool, it's a core competency. We expect every team member to be AI-literate, leveraging generative tools and agentic workflows to move faster and work smarter. You won't just use AI; you'll be building the agentic future of construction.
- Own the technical strategy for the Directory domain, helping to drive architectural direction across our backend and frontend services and ensuring the domain remains a first-class citizen within Procore's broader Service-Oriented Architecture.
- Guide the Ruby-to-Go migration, overseeing the Change Data Capture (CDC) pipeline that keeps our backend in sync with the legacy Ruby monolith, and help chart the path to eventually retiring that dependency.
- Lead GraphQL API design and evolution, ensuring our schema is well-modeled, performant, and cleanly federated through Procore's GraphQL gateway.
- Champion event-driven architecture, using Kafka-based streaming to ensure the Directory domain's events are reliable, well-observed, and easy for other teams to consume.
- Establish operational excellence across both services — strong observability practices, solid automated test coverage (unit, integration, and end-to-end), and reliable, containerized deployment pipelines.
- Collaborate across boundaries with Infrastructure, Security, and Product leadership, and with other domain teams consuming Directory's data and events, to keep the Directory domain a dependable foundation for the rest of Procore.
- Support maintenance of existing Ruby on Rails and NestJS servce
Who We're Looking For:
- Bachelor's or Master's degree in Computer Science or a related field, or equivalent experience.
- 10+ years of experience architecting, scaling, and maintaining complex, distributed backend systems, ideally including production experience with CQRS and/or Event Sourcing patterns.
- Strong proficiency in Go; experience designing services around domain-driven boundaries (accounts, organizations, users, permissions, or similar entities) is a strong plus.
- Hands-on experience with GraphQL, including schema design and working within a federated gateway architecture.
- Experience with event streaming systems such as Kafka, and familiarity with Change Data Capture (CDC) patterns for syncing data across services or off a legacy system.
- Comfort with relational databases (e.g., PostgreSQL) and modern ORM patterns, and with building systems that must maintain strong data consistency guarantees.
- Solid frontend experience with TypeScript and React (18+), and familiarity with modern data-fetching and routing patterns in single-page applications.
- Strong communication skills, with a track record of influencing technical direction across multiple teams and stakeholders.
Additional Information
Base Pay Range:
198,240.00 - 272,580.00 USD 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.
This position requires access to technology, software, and data that is controlled or restricted under U.S. law, regulation, executive order, or government contract.
For Los Angeles County (unincorporated) Candidates:
Procore will consider for employment all qualified applicants, including those with arrest or conviction records, in accordance with the requirements of applicable federal, state, and local laws, including the City of Los Angeles’ Fair Chance Initiative for Hiring Ordinance, the Los Angeles County Fair Chance Ordinance for Employers, and the California Fair Chance Act.
A criminal history may have a direct, adverse, and negative relationship on the following job duties, potentially resulting in the withdrawal of the conditional offer of employment: 1. appropriately managing, accessing, and handling confidential information including proprietary and trade secret information, as well as accessing Procore's information technology systems and platforms; 2. interacting with and occasionally having unsupervised contact with internal/external customers, stakeholders, and/or colleagues; and 3. exercising sound judgment.
Similar roles
-
Software Engineer- Backend (Golang, Python)
Cisco Bengaluru, Karnataka, India
-
Lead Software Engineer (Java, Golang, AWS)
Capital One Plano, Texas, United States · $179K–$205K/yr
-
Software Engineer - Kubernetes (K8s) Go (Golang) Python Microservices Linux Docker / Containers Distributed Systems CI/CD - 4 to 8 years
Cisco Bengaluru, Karnataka, India
-
Senior Software Developer (Golang )
NetApp, Inc. Bangalore, Karnataka, India
-
Staff Software Engineer, Golang
RapidAI Bengaluru, Karnataka, India
-
Senior GoLang Developer
Jobgether United States