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.
If you need to reach an audience on both Android and iOS, Flutter is worth evaluating. Since 2012 we have always used Objective-C, Swift, Kotlin and Java. However, in 2020 we finally felt that Flutter was good enough for professional use. It's not perfect for all situations, so feel free to ask us if it's a good fit for your project.
When developing on iOS, we tend to choose Swift for new apps. On Android, we choose Kotlin. Since 2020, we started developing Flutter apps professionally.
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 go-to SQL DB, scaled vertically with a replica for read-heavy use cases. For integrating web sites to apps, we like RESTful API's with appropriate caching mechanisms, and are also exploring GraphQL.
"There'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.