Research Software Engineer

Research Software Engineer

Add To Bookmarks
Company: RAND Corporation
Location: Santa Monica, CA
Type: Full Time
Created: 2021-05-05 05:00:04

The RAND Corporation seeks an experienced Software Engineer to serve as the Senior Technical Programming Lead supporting RAND’s American Life Panel, the RAND Educator Panels, other online data collection services and other multidisciplinary software development activities. The Senior Technical Programming Lead will work directly with a team of 3-4 research programmers involved in online survey software development and delivery.

The position requires eliciting requirements from users, designing software products with researchers, implementing designs in code, and iterating with users and researchers to ensure functional and quality requirements are met. Qualified candidates will have demonstrated excellence in client engagement skills and experience recommending technical solutions for software and data migration projects.

The selected candidate will work on project teams of research staff and domain experts and must be comfortable acting as the sole software engineer on the project. Technical needs will vary by project so the selected candidate must be a well-rounded generalist able to develop solutions in more than one of the following application paradigms: desktop, web, mobile, database, modeling & simulation, big data analytics including machine learning, statistical analysis, and visualization.


•Proactive communication with project teams •Suggesting technical solutions and providing technical advice to the RAND American Life Panel Director and General Manager on how to best execute complex technical survey design projects. •Working closely with a small team of research programmers to program and field online surveys designed in Confirmit to collect primary research data for research purposes. In particular, this role will help implement more complex programming elements in survey designs (API connections, PHP, Javascript, etc.) •Developing in part or in whole interactive applications including the graphical user interface to back end server components and databases •Providing strategic technical inputs into computer programming and software integration, software transition/migration and software management activities •Developing applications or scripts to data mine, analyze, and visualize data sets •Briefing others on software design, software development progress, and software tool results •Providing programming time estimates for proposals and client budgets •Participating in software development QA activities •Writing documentation of software and software tool results for inclusion in customer briefings and RAND publications

Basic Qualifications

•Expertise with multiple web programming languages including JAVASCRIPT, PHP, or PYTHON •Expertise with at least one database platform such as MONGODB, MYSQL, or POSTGRES •Working knowledge of object oriented analysis and design •Some expertise in PYTHON, JAVA, C#, R, C++, OR C •Willingness to pick up new technologies on a frequent basis •Software testing including unit, integration, and acceptance testing •Excellent written and verbal communication skills •Works best as part of a collaborative team

Experience with:

•Server management •Web application development •UI/UX Design •Cloud service providers like AWS or AZURE and tools in those ecosystems •Big data analytic platforms like HADOOP or SPARK

Preferred Qualifications

•Experience working in a research environment •Experience with Confirmit survey programming •Experience with system administration


•BA/BS required, MA/MS preferred, preferably in computer science or highly related field such as information systems, computer engineering, etc.


•6 years minimum relevant experience required. 8 or more years relevant experience preferred.


Santa Monica, Pittsburgh, Washington D.C., Boston

Equal Opportunity Employer: race/color/religion/sex/sexual orientation/gender identity/national origin/disability/vet