Job opportunity: Software engineer at the University of Washington

We wish to hire multiple programmers who will help to design and implement the next generation of programming tools.

This is a permanent, full-time position, not a short-term contract job. To apply and for additional details, see the official job posting for requisition 125016 at:

About you:

You enjoy the energetic, exciting, and flexible environment of a cutting-edge university research group. You are capable of thinking abstractly, architecting new designs, and building, testing and deploying systems, and you also find it rewarding to improve existing systems. You are a logical thinker and a clear communicator. You are capable of devising and implementing complex algorithms, but you prefer to discover simple ones. You are an energetic self-starter who is a good team player. You can work both with faculty and students on their research projects, and with the end users of those systems. You have a bachelor's degree in computer science, or the equivalent. Research experience, or a higher degree, is desired but not required. Pay will be commensurate with abilities.

About us:

The PLSE (Programming Languages and Software Engineering) group at the University of Washington does groundbreaking research in the theory and practice of programming languages, program analysis, and software engineering. We build systems, perform experimental evaluation, and transition our work into use in both research and industry. We distribute our tools as open source. Our innovations have been the basis of start-up companies, our tools have discovered thousands of bugs and have prevented even more, and our ideas have changed research paradigms.

Sample projects:

A few specific funded projects for which we need help include the following. You will assist with one or more of these projects, but will also be involved with new projects as they come up; we start many each year.


Duties may include some or all of the following, or related tasks.

Software development of research prototypes of program analysis tools:

Conduct experiments to evaluate efficacy of new techniques and tools:

Support colleagues and external users:

Prepare documentation and technical papers:


Equivalent education/experience will substitute for all minimum qualifications except when there are legal requirements, such as a license/certification/registration.

Desired but not required:

Michael Ernst