Ontash
image

Engineering

Ontash is in the business of solving technical problems. And this ability is based on a culture that has been 27 years in the making. It’s a culture grounded in process: analysis, design, construction, verification, maintenance, and refinement. Key to building this culture, is a team of stakeholders who believe in, and contribute to, the engineering process. This is a culture that cannot exist in a top-down hierarchical structure. Instead, the pride and discipline of this process is infused from the ground up, throughout the organization. It is the Ontash culture that drives hiring and onboarding processes. It factors into which technologies we embrace, and which ones we are looking at for the future. Ultimately, it is what makes Ontash a special kind of employer and special kind of partner.

Culture is built on having transparency, accountability and shared values. This is what we look for when we hire people. A cultural fit is more important than technical or managerial ability. Since culture is built over time we value long term relationships with employees, customers and vendors. We try hard not to do anything for the short term. This is the way to retain, and grow skills. Like compound interest in a saving account.

All new entry level employees go through a structured 6 month training program where they learn about the company, its processes, and are trained in one or more specific technologies (Ruby on Rails or SugarCRM, etc.) before they get placed on a project team. As part of their technology-specific training, they will be required to implement and demonstrate a mini-project.

Once a new employee completes his or her training they are assigned to one or more project teams. However their training never stops. The company provides many opportunities for learning, which employees are expected to fully utilize. These include internal and external seminars. Project teams are expected to learn specific emerging technologies and access online courses/books.

The company has many types of teams. These include software project teams, infrastructure teams (devops, UI, business development, sysadmin, network security, testing) as well as teams dedicated to learning emerging technologies such as blockchain.

All Ontash teams are distributed and typically have members working from multiple countries and of course time zones, often serving a customer in yet another location. This means that Ontash can bring a diverse set of skills and perspective to each effort, thereby increasing our chances for success.

Most people at Ontash work on multiple projects - their primary project where they spend most of their time, and one or more secondary project(s). This keeps them engaged and provides opportunities to develop new skills and interests. This also adds a measure of redundancy to each project.

All processes are supported by an array of collaborative tools and best practices. We see tools and best practices as enhancing our productivity, but we are very careful that they do not impede productivity. We believe in minimal tools and best practices. We are constantly adding new tools, and refining practices based on experience and then communicating back to the company.

At Ontash we use many different programming languages, frameworks and technology stacks in our work. For building web applications, our preferred framework is Ruby on Rails. Though we also use Java/Spring, Clojure/Luminus and Python/Django. For Reporting, Analysis and Machine-learning we use R. For Mobile Applications we use Cordoba and React Native.

When choosing technologies to build a new project we are all confronted with a plethora of choices. Some of these decisions are less about hard engineering choices and more about forcing engineers to choose a language or framework which is currently in vogue. In fact, there are huge costs and inefficiencies in using immature technologies or in using more than what is minimally needed for a new effort. These costs include, the cost of maintaining too many dependencies, learning the intricacies of each, the cost of having too many moving parts (complexity) as well as the cost of switching from one technology to another.

Our long term goal is to limit the number of technologies we use, and at the same time be extremely careful of our choices.

When making choices for technologies to adopt in the future we are looking at functional languages and frameworks such as Clojure, Erlang and Elixir which are functional, enforce immutable data structures and support concurrent programming.

Our current favorite is Clojure, a modem variant of LISP which has the highest expressivity among programming languages. Clojure forces the programmer to use immutable data structures and this has the benefit of making it easier to understand what a program is doing and reduces unintended consequences to almost zero, thereby increasing the maintainability of the program. All this translates to a lower cost of writing a program and keeping it running.

An advantage of Clojure is that it runs on the Java Virtual Machine (JVM) which means it can be run on pretty much any computer and Operating System and can communicate with programs written in Java. This is also a serious liability as the JVM has a huge memory footprint and is very slow to startup.

This is where languages like Erlang and Elixir (which is built on Erlang) shine as they run on the BEAM Virtual machine. The BEAM virtual machine is lightweight and highly reliable. It is the building block of most telecommunication systems around the world. Both languages are functional and use immutable data structures.

Erlang, Elixir and its associated tooling support light weight threads whereas Clojure uses JVM threads which means that they better utilize today’s multi core CPUs. Threads can also be created in microseconds on BEAM as compared to milliseconds on the JVM. Also BEAM can support millions of threads as compared to thousands on the JVM. So Erland and Elixir allow the programmer to build highly concurrent yet manageable and reliable applications. Doing the same in other environments would require additional layers of tooling (VM’s, load balances and or container/orchestration) which result in higher costs and complexity.

Ontash builds software in several verticals, the major ones being Healthcare Analytics and ERP Software for SMEs. The company also provides outsourced software development in other industries.

The majority of our work is in Healthcare Analytics where we have developed several niche applications for Marketing, Analytics and Case Management used to support Reimbursement Services of American Hospitals.

The most interesting and recent application is our Disability Case Management System which uses AI Modules incorporating both a rule based decision engine and a Machine Learning Model trained on historical data to identify “disabled” patients without insurance coverage. These patients are then contacted and assisted in the complicated process of qualifying for disability benefits from either the state or federal government. The system has helped many thousands of patients since its inception.

A decade ago Ontash came across Odoo - a powerful ERP system being sold on the freemium model. There is a free open source version and comprehensive paid solution suitable for mature SMEs. This software is priced attractively in comparison with its nearest competitors like SAGE, Microsoft Dynamics or some of the lower-end SAP offerings. It is also a good platform to build a variety of custom solutions as it already has support for accounting, websites, CRM, e-commerce etc.

We are doing some interesting things with Odoo - we have a small hospital (in India) running entirely on an Odoo based solution. Closer to home in New Jersey we are building a highly customized solution for a company selling and servicing industrial and electrical equipment which allows them to track revenue and expenses at the level of each customer job in addition to running their operation.

In the next year and a half we will be focusing on improving our project management processes and in particular our process for estimating projects so that we can reliably reach a target of being within 10% of estimated time and costs to deliver a project. This is easier to achieve on small projects but extremely hard for medium and large projects.

Also on the priority list is to improve our network security and implement a private cloud. With an increasingly distributed and remote workforce, cybersecurity and network reliability are the most prominent threats to the viability of the Company.

During the COVID-19 pandemic we all learned to work from home and yet be more productive. To achieve this, we had to make small changes in the way we checked in with each other on a daily basis. We are looking to continue that practice so that all employees can benefit from the advantages of working remotely.