When Milliseconds Matter

Authors: Shayon Javadizadeh, Ishjot Walia Background Quota Minder is a microservice written in Elixir that enforces API Rate Limits on our third party integrators and internal applications. It is built with knowledge of the Procore domain which enables us to construct rate limits that make sense for Procore specifically, as opposed to an off-the-shelf rate limiting solution. Quota Minder also has the concept of “tiered buckets” which allow for several different types of rate limits to be counted against a client at any given time. We are then able to enforce both “spikes” and “count” rate limits, which protect against... Read More

Procore speakers share highlights from RailsConf 2019

A few weeks ago, Procore sponsored and attended RailsConf 2019, one of the world’s largest gatherings of Rails developers and Ruby enthusiasts. Procore’s application is built on Ruby on Rails, which is why being a part of RailsConf is valuable from both a business and employee perspective. This year, 20 Procore employees traveled to RailsConf in Minneapolis to learn about the current and future status of Rails and hear from leading voices in the community. At Procore, we encourage and sponsor employee conference attendance as a part of our continuous learning and development program. This year, we were... Read More

Hackathon by the Sea - Girls Edition

Procore recently helped host and run Hackathon by the Sea for girls in the Santa Barbara community--an event hosted for young women who are interested in exploring computer engineering and learning more about the technology industry. Below are a few of the key takeaways from the mentors who attended. This weekend, November 30th & December 1st, another hackathon event will take place. Are you interested in mentoring at this next event? Sign-up here Kerry Diehl - Procore Software Engineer This was my first opportunity to participate in a hackathon as a mentor and it was one of the coolest experiences... Read More

Introducing Blueprinter

A new way to format and serialize APIs. Blueprinter is a declarative and fast Ruby object to JSON serializer, an alternative to solutions like Active Model Serializers. Why build another serializer? When we began writing Blueprinter, existing options at the time of writing were few, most suffered from poor performance and hard to read code. Procore has a very large API, with hundreds of endpoints representing hundreds more data structures. We needed a fast, simple option that we could use across our gamut of different needs. We noticed an opportunity to solve our needs as well as something we could... Read More

Twisted Tales

Making Redux Saga scalable with TDD, SOLID principles and the Narrator Design Pattern There and Back Again... Asynchronous code is hard. Talking to a server is one of the most critical parts of a modern web application, and being able to write tests around this communication layer is imperative. The JavaScript ecosystem has some excellent state management solutions, with Redux being probably the most popular flavor. This simple and intuitive library provides the best solution we've seen to a longstanding problem, and is built with testability in mind. However, we've found that the asynchronous libraries commonly used with Redux can... Read More