1. A computer-implemented method for processing software code, said method comprising: loading a virtual machine engine into a common memory, the common memory accessible by a first processor and a second processor, wherein the first processor and the second processor are heterogeneous processors, wherein the first processor executes a first instruction set and wherein the second processor executes a second instruction set, and wherein the first processor includes a first local memory accessible to the first processor and the second processor includes a second local memory accessible to the second processor; loading, by the first processor, virtual machine code into the common memory, the virtual machine code adapted to be processed by the virtual machine engine; writing, by the first processor, a code processing request into a mailbox associated with the second processor; receiving, by the second processor, the code processing request from the second processor's mailbox; in response to receiving the code processing request, loading, at the second processor, the virtual machine engine from the common memory into the second local memory; in further response to receiving the code processing request, reading, by the second processor from the common memory software code data corresponding to the code request, the software code data including the virtual machine code; writing the software code data corresponding to the code processing request to the second local memory; processing the software code data by the second processor, wherein the processing includes processing the virtual machine code at the second processor using the virtual machine engine, the processing resulting in executable instructions, the executable instructions comprising instructions from the first instruction set and capable of being executed by the first processor; writing the executable instructions to a memory location accessible by the first processor; and executing, at the first processor, the executable instructions.