Software Engineering/Research Intern
Galois is currently seeking software engineering and research interns at all collegiate educational levels. We are committed to matching interns with exciting and engaging engineering work that fits their particular interests, creating lasting value for interns, Galois, and our community. A Galois internship is a chance to tackle cutting-edge, meaningful problems in a uniquely collaborative environment with world-leading researchers.
Roles may include technology research and development, requirements gathering, implementation, testing, formal verification, and infrastructure development. Past interns have integrated formal methods tools into larger projects, built comprehensive validation suites, synthesized high-performance cryptographic algorithms, written autopilots for quad-copters, designed the syntax and semantics of scripting languages, and researched type system extensions for academic publication.
We deeply believe in providing comprehensive support and mentorship to all of our employees, particularly interns. We provide our employees with a steward who regularly checks in to ensure that they feel welcome and safe in the Galois community while gaining real value from their experiences.
- Applications accepted year round and are reviewed monthly.
- Internships typically last 12 weeks.
- Internship period is flexible. Please specify in your application the dates you are available, typically looking 2-12 months in the future.
Our mission is to create trustworthiness in critical systems. We’re in the business of taking blue-sky ideas and turning them into real-world technology solutions. We’ve been developing real-world systems for over ten years using functional programming, language design, and formal methods.
Galois values diversity. We believe that differing viewpoints and experiences are essential to the process of innovation. We look broadly, including outside of established communities, to deliver innovation.
How to Prepare
An internship is an opportunity for learning and growth as an engineer. To make the most of the opportunity, we ask that candidates have experience reading, writing, and maintaining code in a realistic project. Many university courses involve multi-week collaborative projects that provide this type of experience.
Most of our projects use the Haskell programming language and the git version control system. These tools aren’t often taught in computer science classes, but there are many free resources available that we recommend for learning:
- Learn You a Haskell for Great Good! by Miran Lipovača
- Real World Haskell by Bryan O’Sullivan, Don Stewart, and John Goerzen
- tryGit by Code School
- Pro Git by Scott Chacon
- The ability to be geographically located in Portland, OR or Arlington, VA during the internship
- Experience reading, writing, and maintaining code in a project as described above
- Proficiency in software development practices such as design, documentation, testing, and the use of version control
- Well-developed verbal and written communication skills; comfort in a collaborative team environment
The following skills are not required, but may be relevant to a particular project.
- Proficiency in Haskell or other programming languages with rich type systems (eg., OCaml, Standard ML, Scala)
- Experience using C and assembly languages for low-level systems programming
- Development experience in high assurance systems or security software
- Specific experience in an area of Galois’ expertise, such as:
- Assured information sharing
- Software modeling and formal verification
- Cyber-physical systems and control systems
- Operating systems, virtualization and secure platforms
- Networking technology
- Cyber defense systems
- Scientific computing
- Program analysis and software evaluation
The length and start date of the internship are negotiable: starting any time in the year is acceptable, but an intern must be at Galois for at least three continuous months. The internship is paid competitively, and interns are responsible for living arrangements (although we can certainly help you find arrangements). The Portland office is located in the heart of downtown with multiple public transportation options available and world-class bicycle infrastructure. Our Arlington office is in the Ballston area and has great public transportation options as well. Our Dayton location is downtown in a newly renovated building.