Join the Team

Open Positions at the Berkeley Seismological Lab

Applications Programmer

The Berkeley Seismological Laboratory (BSL) operates and maintains several networks of traditional geophysical instruments in Northern and Central California. The data collected is archived for research purposes as well as analyzed in real-time, one purpose of which is Earthquake Early Warning, which is currently being developed by the BSL along with other university partners and the USGS. One novel approach to Earthquake Early Warning is to use cell phones and other mobile devices to detect earthquakes, which is what the BSL has achieved with the MyShake project.

In the near future, the MyShake project will not only be detecting earthquakes but will also be providing Earthquake Early Warning alerts. This position exists for the development and support of back-end and mobile application software, such as MyShake, as well as for the software development needs of other BSL projects.

Responsibilities

  • Designs, develops, modifies, debugs and evaluates code as needed for back-end services and mobile applications, such as MyShake, as well as for other BSL projects.
  • Monitors and troubleshoots the overall health of back-end services and processes, performing any daily operational procedures that are not automated.
  • Interacts with senior level internal personnel and meets with other team members, including the training and assisting of users in the use of custom-built operational and research tools.
  • Develops and executes performance/integration testing and coordinated deployment of back-end services, as well as tiered app releases.
  • Gathers, analyzes, prepares documentation.
  • Provides analysis for the design and use of databases within the project, recommends and implements changes in development, maintenance and system standards, and understands industry practices and department policies and procedures relating to work assignments.
  • Other tasks as assigned.

Required Qualifications

  • Requires thorough knowledge of applications programming, including back-end services and mobile apps.
  • Must have advanced skills in Scala/Java and Python; other languages (Obj C) and scripting skills are desirable.
  • Must have advanced skills in object oriented concepts, RESTful interfaces, and cloud-based computing (AWS).
  • Must have proficient knowledge of SQL; knowledge of Redis and MongoDB is desirable.
  • Must have some knowledge of Google Firebase, esp. Cloud Messaging, Realtime Database, and Functions.
  • Some knowledge of Apache Kafka desired.
  • Must have knowledge relating to the design and development of applications programs.
  • Requires knowledge of other related areas of IT.
  • Knowledge of department processes and procedures.
  • Requires advanced skills associated with programming design, modification, testing, implementation, configuration, monitoring, and troubleshooting.
  • Requires interpersonal skills in order to work with both technical and non-technical personnel at various levels in the organization.
  • Has skills needed to develop conversion and system implementation plans.
  • Must be able to communicate technical information in a clear and concise manner.
  • Requires ability to understand business needs and how business systems can support those needs.
  • Has ability to interface with management on a regular basis.
  • Must be self motivated, work independently or as part of a team, able to learn quickly, meet deadlines and demonstrate problem solving skills.
  • Must have advanced skills in web applications, web programming language and object oriented programming concepts.

Education/Training:

  • Bachelor's degree in related area and/or equivalent experience/training

Preferred Qualifications

  • Degree in physical sciences and/or computer science preferred.

For a complete description of the position and requirements, and to apply, please see the UC Berkeley jobs page (job ID number is #26588).