For all you CTO's, CDO's and technical folks... We're a full-stack digital team who focus mostly on software platforms where mobile is hugely important to the success of the business.
When developing on iOS, we tend to chose Swift for new apps. On Android, we chose Kotlin. We like the idea of Flutter for cross platform, but we always end up doing native.
For simple front-end web interfaces, we'll work with vanilla HTML5. We'll use Vuejs, Nuxt or React for more sophisticated solutions. We use Elixir and Phoenix for most of our business logic.
For PWAs that need an app-like experience, we use ReactJS or VueJS. The back-end can be Elixir and Phoenix. We also have some Ruby on Rails solutions.
We tend to use RESTful API's that exchange JSON. If needed, with some appropriate caching policies. Occasionally we need to use XML and SOAP for certain integrations. We'll use a message brokers for high volume transactions. MQTT for IoT scenarios.
Most of apps build and deploy using Circle CI. For web apps hosted on Heroku, we'll use their build pipeline. This website is on Netlify and uses it's own build pipeline. CI usually runs tests and can deploy to staging or live.
Postgres is our current favourite SQL DB, scaled vertically with a replica for read-heavy use cases. We have experience with CouchDB for distributed databases. For integrating web sites to apps, we like RESTful API's with appropriate caching mechanisms, and are also exploring GraphQL.
"Thre's a lot of cool tech out there, it's easy to get sucked in. The important thing is keeping it simple and picking the right tools for the job."
Matej, Full Stack Developer
When creating any digital product, we use a combination of design-thinking and agile delivery. This is because we believe these globally accepted best practices give you the best shot of creating a product that actually gets results.
Unlike many software houses, we strive for the core principles of agile set out in the agile manifesto, which encourages collaboration, flexible project planning and doing the simplest thing that works.
We think it's important to measure things, and use what you learn to feed back into the product lifecycle. We use AplitudeHQ, Google Analytics and other frameworks for observing user behaviour.