Supported Languages

Remote 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#

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++

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

g++ -std=c++11 -pthread

Clojure

Nothing to explain, it should probably work.

Java

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

Go

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

package main

import "fmt"

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

JavaScript

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

PHP

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

Python 2

Nothing to explain, it should probably work.

Python 3

Nothing to explain, it should probably work.

Swift

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

Ruby

Nothing to explain, it should probably work.

Scala

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

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

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

Nothing to explain, it should probably work.

Erlang

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

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.

Bash

Your bash script is run on our servers as is. In Tests, you should read test case from STDIN and send your output to STDOUT, as usual.

PowerShell

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.

HTML/CSS/JS

This option is available only in our Interview tools (Interviews and CodePad). You are able to edit HTML page and everyone in the interview pad is able to see the output.

Realtime Terminal

This option is available only in our Interview tools (Interviews, CodePad, and CodeBlimp). 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.