MPC Job Opening: Application Performance Engineer

Requisition 195848
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
MPC IT Core’s IT Operations team is seeking an application performance engineer. This team manages the
infrastructure that the MPC uses to create, test, deploy, run and monitor our custom-developed software
systems. You will focus on monitoring, analyzing and tuning the performance of our systems and architecting
and assisting in the implementation of strategies to improve system performance and scalability. The ideal
candidate will have strong traditional Linux system administrator foundational skills along with a particular
interest in monitoring applications and optimizing application performance. You will work across our project
portfolio, offering the opportunity to have a major impact on many products and teams across our organization.
The IT Operations Team’s primary goal is to provide state-of-the-art environments and support for our data
research and software development mission. The work involves daily interaction with the rest of the MPC IT
core, the MPC research staff, MPC members, and other user communities. As such, you will interact with
stakeholders from throughout the organization. You will be responsible for: 1) collecting metrics, logs and
other indicators of system operational status; 2) creating dashboards and other mechanisms to provide real time
and trend data about our production systems; 3) troubleshooting abnormal system behavior and failures; 4)
architecting and assisting in the implementation of performance and scalability improvements; and, 5) assisting
with general IT operations team tasks as needed.
In this wide-ranging role, you will have the potential to work on performance-related challenges as diverse as
SQL query tuning, automated scale-up/scale-down of cloud-based infrastructure, caching layers, API call
performance, and speeding up data processing pipelines using traditional HPC approaches as well as newer
technologies, such as Hadoop-based platforms. As part of the IT operations team, you also may contribute to
other aspects of system administration, such as automating the provisioning and deployment of our services or
assisting in the management of our software development environments.

Work Breakdown

  • 30% Systems Analysis and Monitoring. Working with product IT staff to analyze baseline, end-to-end
    performance of systems, understand key metrics for system performance, and identify opportunities for
    performance enhancement. Creating a robust cross-project centralized application monitoring
    environment.• 30% Systems Architecture and Design. Based on analysis and monitoring and analysis insights, exploit
    performance-enhancing opportunities by architecting new systems for data storage and computation
    and our web architecture.
  • 30% Software/Systems Implementation. In conjunction with operations staff and application
    developers, implementing new systems and solutions to address application performance.
  • 10% Other duties as assigned.

Qualifications
The minimum requirements for this position are four years of professional experience in system administration
with a related bachelor’s degree, or six years of professional experience in system administration with a nonrelated
bachelor’s degree.

Experience and skills must include:

  • Proficiency managing and monitoring Linux servers
  • Proficiency managing web (e.g. Apache httpd) and database (e.g. PostgreSQL) servers
  • Proficiency with a scripting language such as Python, Perl or Ruby
  • Experience with benchmarking, performance analysis, profiling and optimization of Linux servers and
    custom applications
  • Experience with tools for collecting, aggregating and displaying system metrics or status such as
    Graphite, Splunk, collectd, statsd, D3, Nagios
  • Ability to effectively plan work and manage complex tasks/projects
  • Very strong communication abilities (oral and written)
    Additional selection criteria include: Working in virtualized or cloud environments. Supporting Ruby on Rails
    web applications. C/C++ and/or Java, particularly for performance-sensitive work. Databases and query tuning
    (relational/SQL and otherwise). Caching tools (e.g. redis, memcached). Configuration management tools, such
    as Chef or Puppet. Technologies with Hadoop-based platforms and other high performance computing
    tools.

Application Procedures

Please apply using the University of Minnesota’s online employment system (http://z.umn.edu/rp0). 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.

For more information and to download position announcements, please visit our website at:
https://www.pop.umn.edu/about/employment-opportunities.