The University of Washington (UW) is proud to be one of the nationâ€™s premier educational and research institutions. Our people are the most important asset in our pursuit of achieving excellence in education, research, and community service. Our staff not only enjoys outstanding benefits and professional growth opportunities, but also an environment noted for diversity, community involvement, intellectual excitement, artistic pursuits, and natural beauty.
The PLSE (Programming Languages and Software Engineering) group has an outstanding opportunity for a software engineer. (Several positions available)
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.
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.
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.
Verification games: We aim to make formal verification as fun as playing Angry Birds. We are building a tool that converts any program into a game that requires no knowledge of computing. The game board state at the end of a game can be converted into a proof of correctness for the program.
Secure phone apps: We are building a toolset to verify the security of mobile phone applications, so that users installing an app can be confident it does not contain malware.
Pluggable type-checking: Run-time errors are the bane of programmers. We have a system, the Checker Framework, that catches such errors at compile time, before the program is run. Oracle plans to include this technology in their Java 8 compiler, so it will have very high impact.
Test generation: To free programmers of the burden of writing tests, we have built the Randoop tool that automatically generates tests for you, and finds plenty of bugs in the process. Its user community (including Microsoft, Google, etc.) continues to generate many suggestions for improvement, particularly in creating more sophisticated tests.
Specifications: Most programmers don't enjoy writing specifications, so our Daikon system generates them automatically. This is useful for program understanding, test generation, formal verification, and other uses
Duties may include some or all of the following, or related tasks.
Software development of research prototypes of program analysis tools
Design, build, test, and debug new and existing complex software programs.
Resolve complex system software problems
Devise and implement algorithms
Deploy systems to both local and cloud computer networks
Give presentations and demos, within and outside the university
Conduct experiments to evaluate efficacy of new techniques and tools.
Conduct case studies, observe users and generalize results
Conduct controlled experiments, perform analysis of data
Create variants of software systems to isolate effects during experiments
Stores and analyzes data
Support colleagues and external users
Answer questions on discussion boards
Triage and reproduce bug reports
Write tutorials, usage examples, and user manuals
Generalize systems to enable customization by external users
Write internal design documentation
Prepare documentation and technical papers.
Develop documentation on systems specifications and operating instructions.
Participate in writing and submission of technical papers to journals, conferences
Revise papers to address reviewer comments
Prepare demo materials
Competitive candidates enjoy the energetic, exciting, and flexible environment of a cutting-edge university research group; are capable of thinking abstractly; architecting new designs, and building, testing and deploying systems, and find it rewarding to improve existing systems; logical thinker and a clear communicator; capable of devising and implementing complex algorithms, but discover simple ones; a self-starter who is a good team player who can work both with faculty and students on their research projects, and with the end users of those systems.
As a UW employee, you will enjoy generous benefits and work/life programs. For a complete description of our benefits for this position, please visit our website, click here.
Bachelorâ€™s Degree in computer science or related field or equivalent experience AND three years software development and/or research experience.
Strong interpersonal skills.
Demonstrated ability to work and communicate with faculty, students, and end users.
Experience with UNIX.
Experience with at least two of: C, Java, C#, Scala.
Ability to write clear technical documentation and/or papers.
Ability to give clear and engaging verbal presentations to an audience.
Software design experience, including knowledge of object-oriented programming.
Ability to work with substantial existing codebases.
Equivalent education/experience will substitute for all minimum qualifications except when there are legal requirements, such as a license/certification/registration.
Experience with academic research.
Experience with compilers or other program analysis tools.
Condition of Employment:
A satisfactory outcome from criminal background verification is required prior to hire.
Part of the application process for this position includes completing an online cover letter assessment, as well as the Employment Eligibility Assessment to obtain additional information that will be used in the evaluation process. The assessment(s) will appear on your screen for you to complete as soon as you select "Apply to this Position" on this job announcement. Once you begin the assessment, it must be completed at that time. If you select to take it later, it will appear on your "My Jobs" page to take when you are ready. Please note that your application will not be reviewed and you will not be considered for this position until the assessment is complete.
About UW Medical Center
UW Medicine operates in a multifaceted and dynamic environment which is subject to intricate legal and regulatory requirements governing clinical, teaching and research activities. In recent years, academic health centers across the nation have seen a dramatic increase in the number and complexity of regulations from state and federal agencies, greater external scrutiny and progressively costly sanctions.
In response to the complicated compliance environment, all components of UW Medicine have established compliance offices (including the practice plans, University of Washington Medical Center, Harborview Medical Center, Hall Health Primary Care Center, UW Medicine Eastside Specialty Center, UW Medicine Neighborhood Clinics, and the School of Medicine). Collectively, these offices are responsible for the development and implementation of compliance programs for issues such as professional fee billing, hospital facility billing, clinical research billing, HIPAA privacy and information security, and other regulatory requirements. In order to establish an institution-wide perspective, compliance directors meet bimonthly with the UW Medicine Associate Vice President/Chief Compliance Officer and attend the UW Medicine Board Compliance Committee meetings.
Core elements of UW Medicine compliance programs include:
Committment and support from executive leaders
Institutional policies, standards and expectations
Education and outreach
Routine monitoring and auditing
Timely and appropriate responses to compliance issues
On-going assessment, analysis and response to emerging risks and regulatory developments
Mechanisms (including hotlines) which invite and enable the safe reporting of compliance concerns
Timely investigation of reported concerns and protecting of complainant rights
Implementation of appropriate sanctions and corrective actions to address noncompliance when it occurs
Process improvement projects as needed to enhance compliance efforts
Regular evaluations of program effectiveness
The commitment to compliance is imbedded in the expectation that all members of UW Medicine will meet the professional, ethical and regulatory standards associated with their individual roles. Faculty, staff, residents and students are all expected to maintain current knowledge of rules and regulations related to their work, comply with UW Medicine policies and procedures, act in a professional and ethical manner, and contact appropriate institutional offices when questions or concerns about compliance arise.
UW Medicine's commitment to effective compliance programs demonstrates a deep awareness of its accountability to the public and the people it serves. Its commitment to professionalism, integrity, and ethical standards are all directly linked to UW Medicine's mission of exemplary patient care, teaching and research.
If you have questions about compliance programs at UW Medicine, or need more information about your rights and responsibilities, please contact a compliance director.