As an outcome of Moore’s law, the evolution of software development and programming frameworks is moving very rapidly. During a decade of our work, we saw tech trends come and go. We started from HTML 4, CSS, vanilla JS and PHP 4 in the early 2000s. Then we switched to very advance and scalable frameworks such as Phoenix written in Elixir and Nitrogen written in Erlang.
We have our favourite tools, but we are always trying to find the most reliable, suitable and cost-efficient solution for a particular project.
Elixir and Phoenix Web Framework
This is our favourite backend stack for now. It combines BEAM virtual machine from Erlang which allows creating modern real-time scalable applications with easy to go syntax from Ruby on Rails.
We suggest it for most startup applications with mobile API, public web and IoT data collecting because it allows quick and easy creating of web sockets, real-time data processing streams, third-party API integrations and a lot more.
We’ve used elixir for more than 3 years, but before that, we’ve widely used Erlang and we are still using it in some projects so we have a deep understanding of how BEAM architecture works.
Erlang and Nitrogen Web Framework
Erlang and Open Telecom Platform (OTP) was firstly designed by Ericsson for telecom applications. BEAM virtual machine used by Elixir was originally developed for Erlang runtime. This language first introduced the actor model for concurrency that is based on lightweight processes that are created and scheduled by BEAM machine itself and communicates through messages. This allows creating and maintaining truly asynchronous applications with ease.
Together with the Nitrogen Web Framework, it helps to create enterprise-level web applications with scalable functional code.
Elm and other frontend technologies
During more than a decade of our work, we have been using different frontend technologies and frameworks. We started with HTML 4, CSS and vanilla JS. Then we moved to jQuery, Bootstrap, BackboneJS, Angular and React.
Now we prefer Elm for new projects as it combines reactive web framework with clean and testable ML-based functional programming language. It helps to write error-free production-ready code without an army of QAs.
We use such modern technologies as SASS, Bootstrap, Google Material Design Light and others.
We started to use python about 9 years ago for backend, data analysis and system utils. Since that time we widely used such frameworks and libraries as Flask, SQLAlchemy, Django, Pandas, NumPy / SciPy, PyPlot / Matplotlib, Grab, Scrappy, Tornado and others.
Our favourite DBAs now are PostgreSQL, Mnesia and Amazon DynamoDB, but we have experience with all widely used DB engines such as MySQL / MarinaDB, CouchDB, Mongo and others.
We are widely using Amazon Web Services (AWS) in our work as the most progressive and cost-efficient cloud platform from our point, but we have chances to work with Google App Engine (GAE) and IBM Softlayer as well. In earlier times we were even maintaining our own hardware.
We mostly use Swift for iOS and Kotlin for Android trying to maintain the best user experience. But for some cases when tight deadlines or budgets should be kept we suggest modern Progressive Web Applications that combine web interface and mobile-friendly app in one codebase.
At the begging of our journey to the embedded world we used an assembler programming language with Microchip PIC controllers, but time is going forward and hardware progresses and now we can use such tools as MicroPython, Buildroot and Nerves.
We love learning and we are always behind
We are not statues in a museum, so we are always learning new technologies, but we are never arguing with using something old and gold.