Riverside Research es una organización sin fines de lucro de Seguridad Nacional independiente dedicada a la investigación y desarrollo en el interés nacional. Proporcionamos servicios técnicos de alta gama, investigación y desarrollo, y soluciones de prototipos para algunos de los problemas técnicos más desafiantes del país.
Número de trabajo: 1445
Para bien o para mal, casi no existe faceta de nuestro mundo moderno que funcione sin un sistema informático. Prácticamente todos esos sistemas informáticos dependen de "software de sistemas" para gestionar tareas específicas y cerrar la brecha entre el hardware y el software de nivel superior. Ya sea un sistema integrado que utiliza un tejido FPGA acoplado para delegar tareas críticas de rendimiento o seguridad o un servidor que utiliza un hipervisor para gestionar invitados co-residentes, hay un código de bajo nivel asegurando que el código de nivel superior pueda ver un mundo ordenado y sensato. Ese código de nivel inferior está lleno de complejidad mientras trabaja para cerrar la brecha desde las realidades de las diversas ISAs de hardware a las abstracciones de nivel superior. También es fundamental para la historia de seguridad de todos nuestros sistemas. En Riverside Research, el grupo de Sistemas Seguros y Resilientes trabaja para fortalecer ese código y proporcionar a nuestros clientes unas bases seguras para las pilas de software críticas para su misión. Es esencial adelantarnos al atacante en lugar de jugar al whack-a-mole con las correcciones de errores. A veces, los ordenadores pueden ayudarnos a analizar e implementar protecciones en estas capas de software en forma de análisis de programas y mecanismos de seguridad basados en compiladores.
Riverside Research está buscando un científico de investigación de nivel medio o senior para apoyar la investigación y desarrollo de tecnologías de seguridad de análisis de programas y compiladores de última generación. Como miembro clave de nuestro equipo de Sistemas Seguros y Resilientes, el científico de investigación liderará los esfuerzos para prototipar nuevas características en compiladores de código abierto como LLVM y herramientas y marcos de análisis de programas como angr u otros. Serán fundamentales los sólidos fundamentos en prácticas de desarrollo de software para proyectos grandes (control de versión, técnicas de depuración, etc.), la comprensión del software y la interfaz software/hardware, y una sólida formación en fundamentos de ciencias de la computación (por ejemplo, algoritmos, estructuras de datos, lenguajes de programación) para diseñar y prototipar eficientemente herramientas y características dramáticas que avancen el estado del arte en compiladores y análisis de programas.
El científico de investigación contribuirá a un equipo diverso responsable de desarrollar tecnologías de compilación y análisis de programas que aumenten la seguridad del software del sistema como Linux o Xen. Se espera que prototipen y promuevan tanto el código como los documentos de diseño/documentación acompañantes. Además, iniciarán el proceso de investigación liderando al equipo para diseñar soluciones a nuevos desafíos, desglosar problemas en subtareas, contribuir y supervisar la implementación, y evaluar los prototipos resultantes. El científico de investigación deberá tener las habilidades escritas necesarias para comunicar sus ideas y resultados a los interesados internos y externos. Como contribuyente de nivel medio o senior, se espera que el científico de investigación, con apoyo, persiga y haga crecer programas de I+D financiados con organizaciones de investigación gubernamentales (por ejemplo, DARPA, IARPA, laboratorios de servicio, etc.), lidere contratos de I+D existentes y traslade la tecnología a nuestras otras unidades de negocio. El científico de investigación también contribuirá a la comercialización técnica y a la redacción de propuestas en su área de investigación. El científico de investigación se comunicará con los miembros del equipo en todas las ubicaciones de Riverside Research.
El científico de investigación debería tener experiencia en "sistemas" (por ejemplo, C/C++, al menos un lenguaje de ensamblaje, Python, Rust) y en la manipulación de herramientas para el análisis de programas (estas pueden estar escritas en lenguajes de nivel superior y aprovechar DSLs o interpretes/compiladores de DSL). Un buen candidato para científico de investigación debería ser capaz de explicar por qué los fundamentos del lenguaje de programación desde C hasta Haskell y diferentes sabores de lenguajes específicos de dominio son relevantes para este papel.
Todas las oportunidades de Riverside Research requieren ciudadanía estadounidense.
Responsabilidades del trabajo:
Cualificaciones Requeridas:
Cualificaciones Deseadas:
Riverside Research se esfuerza por ser uno de los proveedores líderes en América de servicios técnicos y científicos independientes y de confianza.