Imagine a much simpler world where there are only 3 programming languages, 3 database products, 3 operating systems, and 3 source control systems. Even in this fantasy land, combinatorics dictates that there are still 3x3x3x3=81 different combinations of systems to consider in diligence! In the real world, with hundreds of languages and new database, OS, and VCS/CI choices every year, the possibilities are practically endless. How can anyone keep up?

Our approach is simple – we help you find solutions to manage risk and execute on opportunity. To do so, we start by applying technology and automation to the most commonly encountered systems. We build language-specific systems, including custom datasets and machine learning models, to deal with frequent questions or issues in languages like Python, operating systems like Ubuntu/Debian, or databases like Microsoft SQL Server and Postgres.

For less commonly encountered languages, we take two approaches. First, we create expert knowledge bases and document processes to solve issues – yes, even in languages like Fortran or COBOL. Second, we leverage generic, language-agnostic machine learning models to identify potential issues in nearly any language. For example, while assignment operators and ORM field specifications vary from language to language, our models can identify some common problems or high-risk areas in almost any typically lexed/tokenized language.

In addition to application/system architecture coverage, we have also invested in developing capabilities around version control (VCS), source control (SCCS), and continuous integration (CI) systems. These capabilities allow us to review many potential risks, like historical license violations, unclear chains of IP ownership, or the total volume of code written and removed to perfect a mature product.

For more information about which systems we cover and what details are available for each system, see the links below: