If you liked this article, listen to Dialexa’s VP of Software Engineering, Andrew Turner, on Custom Made talk technology reliability and security and how in today’s current landscape CIOs won’t get promoted if everything works. But they will get fired if anything doesn’t: Listen to all episodes of Custom Made for insights and perspectives from industry disruptors and technology leaders.
When considering engineering partners, it is important to understand what tools they use in order to accomplish the project you are looking for. Not all software companies offer innovative solutions when it comes to building a platform. You need a forward-thinking team capable of not only creating your masterpiece, but also ensuring that your development stack does not become obsolete in a short amount of time.
At Dialexa, we build end-to-end products. We have designed and built scalable IoT platforms, mobile apps and electronic devices. Clients typicially come to us with an idea and will leave with a product; whether it is a software or hardware solution. Our engineers, designers, and developers work together to pick the right technologies to solve the problem and bring an innovative idea to life. Choosing the right technologies and tools, such as the right solution stack, is an important part of the architectural challenges we try to solve. We are always researching and adopting emerging cutting-edge technologies. Of course, we always consider what has been previously architected on a particular application when applicable, as we are not in the business of reinventing the wheel. However, we do look at the big picture and the company's long-term goals to avoid the "quick and dirty" trap that many technology companies fall into. In this post, we share an example of a software stack we have used to build platforms that are now disrupting the automotive, parking and lawn care industries.
What is a Software Stack and Why It is Important
Before we discuss an example Dialexa stack, it is important to understand what a software stack is in general. Software stacks are also called "solution stacks" or "technology stacks" and used to provide a complete platform to run applications. These components give the software the power and versatility necessary to process complex instructions. Software stacks generally include operating systems and/or runtime environments, a database, a web server and a web application framework. In some instances, software stacks may include programming languages, software servers, web interface, clients, client interfaces, and other required pieces of software.
Some of the well known software stacks are LAMP (Linux, Apache, MySQL, and PHP), WINS (Windows Server, IIS, .NET, and SQL Server), and recently emerging MEAN stack which we will discuss below.
The MEAN Stack
How our example Dialexa stack is Similar to and Different FROM the MEAN Stack
The example Dialexa stack has some similarities to the MEAN stack, which is why we mention it here for the sake of comparison. We do base our platform on the Node.js runtime environment, which enables us the same portability and flexibility as the MEAN Stack. But instead of using MongoDB, we choose to use PostgreSQL (Postgres) and Elasticsearch. This combination of relational and nonrelational data stores allowed us to build real-time dashboards monitoring hundreds of transactions per minute without the risk of blocking the actual transactions flow.
The next step is choosing the right framework for our API layer. The MEAN stack uses Express framework which has the biggest community supporting it out there. Express is a great framework that offers a simple way to get a server up and running in no time; however, one can argue that it is not optimized for larger teams. Hapi.js an open-source framework that came out of WalmartLabs which we've adapted in our example stack. Hapi.js is built with configuration over convention, it has authentication and powerful validation built in. All of this makes Hapi the better tool for more complex platforms that require bigger teams contributing to the same code base; Hapi made a lot of our clients happy!
Lastly, we use EmberJS instead of AngularJS. At the time when we made this decision, Angular was geared more towards single-page applications. Ember with its MVC structure, was designed to build full, scalable applications with various routing controls we never thought were possible.
It is not about using what we are comfortable with; it is about using the right tools for the job.
Can Dialexa Build Platforms that Disrupt Industries?
At Dialexa, we strive to do things differently. We are driven to provide innovative solutions to our clients while still providing a rock solid foundation when it comes to software. By learning about your product and what you hope to accomplish, we make your mission our mission. We strive for excellence in everything we do from planning and strategizing to design, to implementation and testing, to deployment and support. We are with you every step of the way to ensure that your product is the best it can be. Contact us today and find out how our powerful implementation of a software stack can change your technology--for the better.