MPC Job Opening: HPC Software Developer

Requisition 195849
The Minnesota Population Center (MPC, www.pop.umn.edu) is a leader in the field of quantitative social
science research and the largest disseminator of census and demographic data to the world’s academic
research community. Or, to put it another way – we’re on a mission to gather, process, link and publish
billions of records spanning hundreds of years and more than 100 countries for demographers, historians,
economists, environmental scientists, journalists, policymakers, and others around the globe, who then use
the data to do amazing research and make the world a better place.
The staff of the MPC IT Core support this mission by using leading open source tools to solve complex
data and computation challenges and build reliable, scalable web-based data dissemination systems. The
MPC IT Core is a small group of talented and dedicated individuals. Your work will be highly visible and
will contribute directly to the overall success of our organization. Read more about MPC IT at
http://tech.popdata.org/.
Responsibilities
Our Terra Populus (TerraPop) team is currently seeking a software developer with experience in largescalability
computations via traditional HPC, MapReduce or post-MapReduce architectures, or other
parallel/distributed computing environments. TerraPop is pushing the boundaries of real-time, interactive
computation and analysis of demographic and spatial data, and we need an experienced developer who can
take a technical leadership role and help us forge ahead. You will work closely with the TerraPop IT and
research team to address our scalability demands and bring novel data analysis tools to the worldwide
academic research community. Expect to be given significant responsibility and have your problem
solving skills exercised as you help us tackle these architecture and coding challenges.

You will serve as part of our TerraPop product team and will have responsibility for large-scale databases
and data processing tools for demographic datasets along with global-extent environmental and GIS
datasets. Examples of projects include an online data analysis engine and a parallel raster processing
framework. You will work with the rest of the TerraPop team to integrate these tools into the team’s data
production and web delivery systems.

In addition, you will make a significant contribution to the MPC’s ongoing transition to next-generation
storage and computation technologies, including Hadoop-based platforms and column-store databases,
with an opportunity to work closely with peers from other product teams at the Center. You will work
throughout the project life cycle, from architecture and design through implementation to deployment and
support. You must have the ability to work largely independently on complex projects and take complete
technical ownership of the applications that are developed.

Work Breakdown

  • 30% Software Architecture and Design. Analyze business needs, architect designs, and implement
    solutions, including interaction with researchers and end-users.
  • 50% Software Implementation. Coding, refactoring, and testing in a team environment.• 10% Deployment and Support. Working with operations staff to build out infrastructure to support
    new systems. Developing deployment processes to production environments. Providing system
    support to the team and our researchers.
  • 10% Other duties as assigned. Mentoring of junior developers, professional development activities,
    participation in IT working groups, and other tasks as assigned.

Qualifications
The minimum requirements for this position are four years of professional software development
experience with a related bachelor’s degree or six years of professional software development experience
with a non-related bachelor’s degree.

Experience must include:

  • Experience building applications with RDBMSs (e.g., PostgreSQL, MySQL)
  • Advanced proficiency with database design and query authoring and optimization
  • Proficiency in one or more scripting languages, such as Python, Perl or Ruby
  • Proficiency with source code repositories (e.g., Subversion or Git)
  • Experience with Linux operating systems
  • Ability to effectively plan work and manage complex tasks/projects
  • Excellent oral and written communication skills with technical and non-technical audiences
    Additional selection criteria include: Experience managing very large datasets; Post-RDBMS storage and
    computation frameworks, such as Apache Hadoop; Distributed/parallel job processing frameworks; Nontraditional
    database technologies (e.g., NoSQL and column-based data stores); Spatial/GIS data (e.g.
    rasters, shapefiles) and tools (e.g. PostGIS, ArcGIS); Proficiency with C/C++; Prior work experience in a
    research setting.

Application Procedures

Please apply using the University of Minnesota’s online employment system (http://z.umn.edu/roz). Attach a
cover letter, resume, and contact information for three professional references to your online application. Your
cover letter is a great opportunity for you to explain your interest in our position opening and to highlight your
relevant skills and abilities. The search committee will begin its review of applications immediately upon
receipt; the position will remain open until filled.

Any offer of employment is contingent upon the successful completion of a background check. Our
presumption is that prospective employees are eligible to work here. Criminal convictions do not automatically
disqualify finalists from employment.