Runtime Verification seeking a Senior Verification Engineer and a Full Stack Software Engineer

Runtime Verification, Inc is looking for two new software engineers to work on our family of products. We are a start-up based in Urbana, Illinois, less than 15 walk minutes away from the Computer Science Department at the University of Illinois in Urbana-Champaign (UIUC), which is in the top 5 schools in Computer Science in the United States and the top 1-2 schools in the domains of software engineering, formal methods and programming languages. We have been working for the past 5 years to develop innovative dynamic analysis tools based on leading research performed at UIUC and in the runtime verification community with the purpose of improving the reliability of safety-critical and mission-critical code. Our products include:

RV-Match

An ISO-compliant compiler for C and C++ capable of detecting a broad range of undefined and unspecified behavior in applications. Its use has discovered bugs in many software projects. It is based on an underlying technology that has the capability to and is desired to extend into a framework that can do language-independent program analysis and verification, in particular to verify safety-critical and security-critical applications, as well as smart contracts written for the blockchain. It is also in theory capable of bounded model checking, test case generation, and more.

RV-Predict

A code instrumentation engine for C/C++ and Java which can be used to detect and debug race-conditions in a variety of software applications, regardless of whether the race condition actually occurs within the execution being instrumented.

RV-Monitor

A runtime-monitoring library for C/C++ and Java which can not only detect when your software system has entered into an undesirable state with a variety of formalisms for defining properties that must not be violated, but which can also take corrective actions to restore the correct state in a manner which can be found to be provably-correct using software verification systems.

If you are interested in working with us, we are looking for people who can fill the following two roles:

Full Stack Software Engineer

Responsibilities

  • Work in a flexible environment with a very small team of engineers, in which you may be required from time to time to switch focus between several different projects and go outside your area of expertise to develop functionality as needed for the good of our products.
  • Develop code in Java, C#, and HTML/CSS/JavaScript to design and create the user interface for our family of client-side software analysis tools.
  • Write and maintain technical documentation for our family of tools, as well as create the visual design of our user interface.
  • Work with engineers familiar with formal methods techniques in order to develop academic research into a complete product for our users.

You will report directly to the lead software engineer, but we are seeking a candidate who can work relatively independently and demonstrate initiative and the ability to learn technologies as needed to fill gaps in their experience and complete the necessary tasks. A candidate who does well on the job will have strong potential for advancement within the company.

Required Skills

  • B.S. in Computer Science or equivalent experience.
  • 2+ years industry or graduate-level experience programming in an object-oriented language like C# or Java, and a willingness to learn Java as well as either C# or Visual Basic .NET.
  • 2+ years industry or graduate-level experience developing client-side or web user interfaces from design to deployment.
  • 2+ years industry or graduate-level experience working on HTML/JS/CSS front-end technologies.
  • Industry or graduate-level experience writing public-facing user documentation or marketing.
  • Willingness to develop software for both the Windows and Unix/Linux platforms.
  • Ability to work well with others and work where necessary and under the agreed-upon constraints.

Bonus Skills

  • Experience with developing cloud software services would be a plus.
  • Experience with GitHub API or cloud CI testing APIs would be a plus.
  • Experience writing IDE Plugins would be considered very valuable.
  • Significant technical writing abilities are strongly desired.
  • Experience with internationalization of software would be a plus.
  • Experience with creating dashboards or graphs in HTML/JS/CSS would be considered very valuable.
  • Candidates with an M.S. or Ph.D. in formal methods or programming languages who can demonstrate their skill at development would be considered very valuable.
  • Knowledge of static analysis, dynamic analysis, program verification, or other formal tools for analysis of software reliability would be considered very valuable.
  • Senior Verification Engineer

    Responsibilities

    • Work in a flexible environment with a very small team of engineers, in which you may be required from time to time to switch focus between several different projects.
    • Develop code in C, C++, Java, OCAML, and a domain-specific programming language (K) which extends the functionality of code designed to detect software reliability issues.
    • Develop a language-independent tool for formal verification and symbolic execution of programs based on Z3 and technologies developed at the University of Illinois.
    • Work with formal methods techniques in order to develop tools which provide complete program certification to the user with an easy-to-use interface for people performing interactive deductive program verification.

    You will report directly to the lead software engineer, but we are seeking a candidate who can work completely independently and demonstrate initiative and the ability to be completely in charge of our companies push towards providing complete program verification tools. A candidate who does well on the job will have strong potential for advancement within the company.

    Required Skills

    • Ph.D. in formal methods or programming languages or equivalent experience.
    • 5+ years industry or graduate-level experience proving programs correct with deductive program verifiers.
    • Familiarity with writing code in a functional language like OCAML, and a willingness to learn OCAML if necessary.
    • Strong familiarity with symbolic execution, abstract interpretation, unification, or narrowing to reason mathematically about program behavior required.
    • Knowledge of static analysis, dynamic analysis, program verification, or other formal tools for analysis of software reliability is required.
    • Familiarity with the fundamentals of developing software on the Unix/Linux platform.
    • Ability to work well with others and work where necessary and under the agreed-upon constraints.

    Bonus Skills

    • Advanced knowledge of C/C++ and/or cryptocurrencies, or a candidate who demonstrates the ability to learn such skills, strongly desired.
    • Industry experience developing in Java and OCAML preferred, but experience with another object-oriented and functional language is acceptable.
    • Familiarity with Z3 is strongly desired.
    • Familiarity with optimizing and profiling the performance of applications.
    • Strong familiarity with writing and speaking in the English language desired, but fluent non-native speakers are acceptable.

    Job Details

    • Office located in downtown Urbana, Illinois. A sufficiently strong candidate who can demonstrate their skill may be allowed to work primarily remotely from another location, however.
    • Competitive compensation and benefits.
    • Employees are encouraged to attend seminars and collaborate with research at UIUC where it is relevant to their interests and to our projects at the company.
    • We are an equal opportunity employer who is willing to hire the right candidate regardless of sex, gender identity, race, religion, sexual orientation, or disability status.

    Interested candidates can apply by emailing contact (at) (our domain) (dot) com and including a resume and optional cover letter with the the “Careers” keyword in their subject.

Leave a Reply

Your email address will not be published. Required fields are marked *