Research Engineer Recruitment
A research engineer position is immediately available in the Systems Software Research Group. The position involves developing hypervisor systems that can enable high performance for guest applications, strong degree of virtual machine isolation, and significantly reduced attack surface in untrusted settings. The project envisages building a secure virtualization infrastructure in untrusted cloud computing environments wherein users run a wide range of workloads, including desktop applications.
Recent computer science or computer engineering MS graduates with a background in operating systems, virtualization, and security is sought (PhD is not required). Proven programming expertise with the Linux kernel, Xen, or KVM is required. Experience with microkernels and unikernels (e.g., L4, Mini-OS, Rumprun) is highly desirable, but not required. The position is for two years minimum, with strong possibilities for additional years. Contact Prof. Binoy Ravindran with a CV or for any questions.
Programming Languages, Security
A postdoctoral position is available with the Systems Software Research Group. The postdoc will work on a project that is investigating the Language-theoretic approach for improving security of systems software, in particular that of operating systems and hypervisors. The project vision involves developing domain-specific languages for automatically generating parsers for OS/hypervisor input handling at various levels of abstraction and integrating them into production codebases (e.g., BSD, Linux, Xen).
Recent computer science or computer engineering PhD graduates with background at the intersection of programming languages and software security are sought, with the ideal background being language-theoretic security. Proven programming expertise with open-source compilers, OS, and hypervisor infrastructures (e.g., LLVM/GCC, BSD/Linux, Xen/KVM) is required. The position is for two years minimum, with strong possibilities for additional years. For the right candidate, a research faculty position may also be possible. Contact Prof. Binoy Ravindran with a CV or for any questions.
Operating Systems, Compilers, Run-times
Multiple postdoctoral positions are available in the Popcorn Linux project that involve developing innovative systems software architectures for emerging multicore platforms, in particular those with heterogeneous instruction sets, from node-scale (e.g., Xeon/Xeon-Phi, ARM/x86, CPU/GPU/FPGAs) to rack-scale (e.g., Scale-out processors, Firebox, The Machine). The project aims to develop scalable, energy-efficient, and secure software stack for such platforms and scales, concomitant components in the spaces of operating systems, compilers, and run-times, and contributing to open-source (e.g., Linux, LLVM) and experimental projects (e.g., Popcorn Linux).
Recent computer science or computer engineering PhD graduates with background in operating systems, security, virtualization, or compiler/run-times is sought. Proven programming expertise with open-source OS, compiler, and run-time infrastructures (e.g., the Linux kernel, Xen, KVM, LLVM, QEMU, etc) is required. The position is for two years minimum, with strong possibilities for additional years. For the right candidate, a research faculty position may also be possible. Contact Prof. Binoy Ravindran with a CV or for any questions.
A postdoctoral position is immediately available with the Systems Software Research Group. The postdoc will work on a project that is investigating verification of x86 machine code (i.e., binary). The project vision involves loading a representation of an x86-64 binary into a theorem-prover, and using techniques such as symbolic execution and verification condition generation to reason about program behaviors. The postdoc will work with a team of research faculty members, PhD students, and other postdocs, and on the topic of representing the formal semantics of x86-64 in a theorem-prover environment (e.g., Isabelle/HOL).
We are looking for a postdoc with expertise in theorem provers such as Isabelle/HOL, and with an affinity for defining the formal semantics of languages. Specific topics that we want to cover in the project include concurrency and floating-point semantics. We seek candidates with a solid theoretical background in Computer Science, in at least one of the following topics:
- Theorem proving / formal semantics
- x86 architecture
- Floating point semantics
PhD Student Recruitment
Multiple PhD positions for the academic year starting in Fall 2018 are available on operating system, distributed system, and concurrency projects. The OS project (popcornlinux.org) involves developing scalable OSes and hypervisors for emerging multicore architectures with heterogenous instruction sets, distributed systems, and exascale systems, and transitioning them into open-source OS/hypervisor infrastructures (e.g., Linux, Xen). The concurrency project (hyflow.org) involves developing scalable concurrency control, transactional memory, and transactional storage protocols for multicore, cluster- and geo-scale distributed systems, and transitioning them into open-source compiler/run-time and middleware infrastructures (e.g., GCC, LLVM, Infinispan). Opportunities also exist in a new project that is exploring formal methods (e.g., theorem-proving) for verifying systems software (e.g., Linux kernel). Positions require an MS in Computer Engineering, or Computer Science, or a closely related field, matching background and interests, strong programming skills in relevant languages, and strong self-initiative, while being a team player.
Details of Virginia Tech's PhD program in Computer Engineering, application deadlines, standardized test score requirements, how to apply, etc., can be found at: https://www.ece.vt.edu/graduate/admissions.html. Interested applicants are encouraged to first contact Prof. Binoy Ravindran with a resume.