With a goal in mind, we look for the best possible technical solution with our architectural expertise. Most of the time, effort heavily impacts priority and we choose fast technologies to validate an idea in the market.
90% of the time, we've found Ruby on Rails to be the fastest way to get to market. Backed by a relational database (like PostgreSQL on Heroku), full-stack server-rendered web applications can hit the majority of markets with minimized efforts and expedited development cycles.
If a system has some other code constraints or considerations, we'll often look to Elixir/Phoenix or Go to manage back-end needs. If Single Page Applications or mobile applications are a priority, we recommend React or React-Native on the frontend backed by a REST/JSON or GraphQL API.
Outside of these core technology, we often have need of some unique solutions to a business problem. Be it geolocation, channel-specific communication (like email or SMS), payment processing, heavy analytics, or something else, we've delivered solutions across markets with custom code, heavily vetted 3rd Party Services, and well-maintained Open Source packages.
At this stage, we set up repeatable environments to scale and support future development efforts. With local environments for development and automated testing, we also test custom code with continuous integration, setup a staging environment for acceptance testing, and set up the final production environment with a scalable architecture.