Software Engineer, Pulley
Pulley’s technical architecture was composed of a Postgres database, a backend written in Go, and a web front end using React. As they iterated quickly in the beginning they needed to find the balance between rapidly making changes, adding features, while also making sure the solution kept very sensitive financial data secure.
Other challenges included:
• Creating a universal data access layer for over 50 database tables
• Making frequent database changes without having to rewrite significant amounts of data access, backend, and frontend code
Pulley helps founders managed their cap table and stock options to optimize their equity.
Early in the development process, the Pulley team decided GraphQL would offer the benefits of easily transporting data between the different layers of their application - from the Postgres database to their Go backend, and React frontend. They adopted Hasura after discovering it met and exceeded their expectations.
Pulley architecture diagram
Hasura’s intuitive tools and documentation made it easy to set up and connect to their Postgres database, instantly auto-generating GraphQL schemas and resolvers based on the tables and views in their database. This saved them development and maintenance time not having to author any more of their data access APIs themselves and modifying the code every time they made a database change.
Hasura provided “GraphQL out of the box” with its ability to auto-generate GraphQLschemas and resolvers of their Postgres database, saving Pulley months of development time - especially in their early stages when changes to features and the underlying database happened frequently.
Pulley utilizes Hasura for nearly all queries and updates of over 50 database tables.
Hasura’s migrations feature was also essential during the early phases of Pulley’s product development, tracking Postgres database schema changes in metadata, allowing them to keep their database consistent between development and production.
Subscriptions simplified their frontend development, utilizing React components to dynamically update their web frontend as new data arrived. This eased the burden of having to write their own notification framework to provide real-time updates.
To protect its customer’s sensitive financial and personal data, Pulley relied on Hasura’s granular authorization features, which can be applied down to the row and column level. To ensure the security of their system, Pulley regularly performs penetration testing to make sure that their entire system, including Hasura, is hardened from external attack.
Pulley also relies on Hasura’s built-in auditing capabilities to track changes in user permissions, providing them a history log of changes they can refer back to.
Hasura’s console also increased the developer’s productivity by making it easy to perform GraphQL schema generation tasks, perform GraphQL queries, and perform traces to identify any performance bottlenecks.
Software Engineer, Pulley
Pulley cut development time in half by using Hasura. They were able to build their product in 3 months. This was in large part due to the Hasura engine accelerating Pulley’s development time by auto-generating and securing GraphQL for over 50 database tables as well as the auto-generating of GraphQL schemas and resolvers to their Postgres database.
Besides all this, the fast performance of Hasura resulted in an excellent overall user experience that Pulley were super happy with. Pulley was also able to leverage other Hasura features like data migrations when database changes occurred, and the security & permissions model to keep sensitive data safe.
Thank you to Pulley and Mark Erdmann - Software Engineer for sharing their story with us!