Supported Languages

Code Interview supports a wide variety of programming languages. Many of them have supporting libraries pre-installed for you to use. Feel free to email us if you feel any important libraries or settings are missing.

Below is the list of all the supported languages and some information about them:


C#

Running Visual C# Compiler Version 3.5.0

Our C# environment runs on top of the mono project’s implementation of the .NET runtime.

You can define multiple classes but one of them should have a static void Main.

C/C++

Running GCC 8.3.0

C++17 standards are supported. GCC compiler is used with the following arguments:

g++ -std=c++17 -pthread

Clojure

Running clj 1.6

Nothing to explain, it should probably work.

Java

Running Java 13.0.2

You should define public static void main(java.lang.String[]) inside a public class.

We have added JUnit 4 for your convenience. To use it, make sure your main class is public and named Code. Here is an example:

import org.junit.*;
import org.junit.runner.*;
public class Code {
  @Test
  public void testNoop() {
    Assert.assertTrue(true);
  }
  public static void main(String[] args) {
    JUnitCore.main("Code");
  }
}

Kotlin

Running Kotlin 1.3

Nothing to explain, it should probably work.

Go

Running Go 1.13

You should declare a func main() in a package main, like this:

package main
import "fmt"

func main() {
  fmt.Printf("Hello")
}

Haskell

Running GHC 8.4.3

Nothing to explain, it should probably work.

JavaScript(Node)

Running Node 10

Your code is run using NodeJS with —harmony flag on, which enables most of the ES6 features. We have also installed following npm packages for you to use:

jquery, underscore, request, express, jade, shelljs, passport, http, sys, lodash, async, mocha, chai, sinon, sinon-chai, moment, connect, validator, restify, ejs, ws, co, when, helmet, wrench, brain, mustache, should, backbone, forever, debug

TypeScript(Node)

Running TypeScript 3.8.3 with Node 10

Your code is compiled to JavaScript using tsc --strict and then run using NodeJS with —harmony flag on. We have also installed following npm packages for you to use:

jquery, underscore, request, express, jade, shelljs, passport, http, sys, lodash, async, mocha, chai, sinon, sinon-chai, moment, connect, validator, restify, ejs, ws, co, when, helmet, wrench, brain, mustache, should, backbone, forever, debug

PHP

Running PHP 7

Don’t forget to wrap your code in <?php and ?> tags.

Python 2

Running Python 2.7

We have installed following pip packages for you to use:

numpy, scipy, pandas, sympy, nose, scikit-learn, enum34, requests, ipython.

Python 3

Running Python 3.7

We have installed following pip packages for you to use:

numpy, scipy, pandas, sympy, nose, scikit-learn, enum34, requests, ipython.

Swift

Running Swift 5.0

We’re using Apple’s recently open sourced Swift implementation for Linux.

Ruby

Running Ruby 2.5.1

We have installed the following gems for you to use:

rspec, minitest, httparty, faraday, excon.

Here is an example code for using RSpec:

require 'rspec/autorun'

class Greet
  def print!
    'HELLO'
  end
end

RSpec.describe Greet do
  it 'prints hello' do
    expect(Greet.new.print!).to eq('HELLO')
  end
end

Rust

Running Rust 1.40

Nothing to explain, it should probably work.

Scala

Running Scala 2.13

You can name the object anything you want. But you should define def main(args: Array[String]), like this:

object HelloWorld {
  def main(args: Array[String]) = println("Hello Scala!")
}

Visual Basic .NET

Running VBNC 4.7

Our VB.NET environment runs on top of the mono project’s implementation of the .NET runtime.

You can define multiple classes but one of them should have a Public Shared Sub Main().

Objective-C

Running GCC 5.5

Since we don’t run Objective-C natively on OS X. We run it using GCC. Your code is compiled with:

gcc -I/usr/include/GNUstep -L/usr/lib/GNUstep -lobjc -lgnustep-base -Wall

We know this is not a perfect way to do it so we are open to any suggestions on how to run Obj-C better.

Perl

Running Perl 5.22

Nothing to explain, it should probably work.

Erlang

Running Erlang 19

Your solution should define the module as solution and export a method named start, like this:

-module(solution).
-export([start/0]).

start() ->
  io:fwrite("Hello").

Elixir

Running elixir 1.2

You must define the module asSolution with a method named start, like this:

Code.compiler_options(ignore_module_conflict: true)

defmodule Solution do
    def start() do
        IO.puts "Hello"
    end
end

Also notice the first line Code.compiler_options(ignore_module_conflict: true) which is needed by our system to work.

MySQL

Running MySQL 8

Nothing to explain, it should probably work.

Bash

Running GNU Bash 4.3

Your bash script is run on our servers as is.

PowerShell

Running Pash 7.0.0

We don’t run PowerShell natively on Windows. But we use Pash which is an open-source implementation of PowerShell.

If something doesn’t work right, feel free to contact us.

Web

Web mode includes all of the popular web frameworks including React, Angular, Nextjs, Express, etc. You can also create a custom template with your own selection of NPM packages and a start script. Everyone in the interview pad is able to see the output in the embedded browser panel.

Realtime Terminal

The terminal is shared between all participants and they can see the output and run commands.


Are any of the languages outdated? Feel free to email us.

Please Wait...
14 days left in trial.