Solving problems with relational databases is a core area of our expertise (e.g. modeling business domains, reporting, warehouse design), and durable data storage is almost always a prerequisite to the projects we take on. As we choose languages, we evaluate storage solutions on a per-engagement basis. We have production experience running PostgreSQL, Microsoft SQL Server, MySQL, along with a handful of NoSQL alternatives such as Redis and DynamoDB.
As a complement to our UX process, Green River’s design team utilizes a suite of prototyping tools for creating rich and interactive UI experiences that are used for client discovery, user testing, and guiding development processes. Our toolkit includes Figma and the Adobe Creative Suite (specifically XD) as well as ProtoPie, Condens, FlowMapp, and Hotjar.
We love building richly interactive and robust interfaces for the web using a combination of React, TypeScript, and GraphQL. This stack is highly flexible and benefits from the strong communities surrounding these technologies. For UI libraries, we typically turn to MUI and Bootstrap, and when it’s time for data visualizations, we like Highcharts and D3.
We are also at home building interfaces with Ruby on Rails. Leveraging our deep knowledge of Rails, our team has built complex data entry forms, sophisticated workflows, and high-performance websites, all while keeping costs low.
With all of our interfaces we place a high value on accessibility. We strive to build interfaces that are not only beautiful, but usable to all audiences and meet current accessibility standards.
Great software is elegant, but not fragile. Our development process includes internal code reviews, quality assurance passes, and automated testing. We use a continuous integration pipeline to let our team move quickly while ensuring our code adheres to best practices and security standards. In production, our applications are closely monitored for runtime errors, performance problems, and emergent security vulnerabilities.
We provide managed, high-availability hosting. Our typical stack involves Docker orchestration on top of Amazon Web Services (AWS). Amazon accounts are generally owned by our clients, and we're granted admin access for management. We also provide deployment support for clients who wish to host applications in-house, or use other hosting services.
In cases where we provide "work-for-hire," we ensure all code is available on Github in either a private or public repository, depending on the engagement. We also believe software is successful if it gets used and grows, regardless of who ultimately maintains it, so we provide support, documentation, and transition assistance when it makes sense to move a project in-house or elsewhere.