Senior Software Engineer - Procore Technologies
We’re looking for Senior Software Engineer to join our Payments Team in the Financial Division. In this role, you’ll join our highly collaborative Product and Engineering organization to drive the technical direction of our projects.
As a Senior Software Engineer, you are responsible for designing, building, and shipping software using your analytic, pragmatism, and engineering skills to provide solutions adopted by Procore Engineering teams. If you have a passion for solving complex problems unique to running large, highly scalable, resilient systems, we would love for you to join us!
This position reports to Engineering Manager and will be based in our Cairo, Egypt office, but employees can be based remotely. We’re looking for someone to join us immediately.
What you’ll do:
- Evolve our existing codebase from a monolithic Rails application into a modular system with clear, well-enforced domain boundaries and a coherent public interface
- Write a highly performant code that minimizes payload size and deferred scripts while consuming the lowest possible amount of resources
- Participate in designing and building a system that is aligned with Procore’s technical vision of a service-oriented architecture
- Work to ship code for our Rails and Java backend and dive deep into the database layer to handle complex querying needs
- Collaborate with Engineering, Product, and UX to design and build solutions that delight users and solve critical business problems
- Experience with development in Docker, AWS, and microservice environments
- Serve as mentor to junior Engineers on the team
What we’re looking for:
- Bachelor's Degree in Computer Science, a related field, or comparable work experience
- 5+ years experience in software engineering fundamentals, Test Driven Development and Design principles (Ruby on Rails, Java, or similar languages preferred)
- Experience designing and building software in a Service-Oriented Architecture
- Understanding the tradeoffs between short- and long-term goals, balancing immediate needs with strategic initiatives
- Track record of anticipating technical problems that will fall out of major projects and designing solutions to overcome those problems
- Experience working with our stack of Ruby on Rails, Java, and PostgreSQL
- Strong ability to document and bring team clarity to complex solutions
- Time-honed expertise with modern web development across the entire spectrum of development, testing, staging, deploying, and monitoring
- A curious mind that is driven to innovate and solve customer problems