Position: Middle back-end developer (Python)
Company: StartupSoft
Experience required: 2y
English level: upper

Delphi is a research group based out of Carnegie Mellon University dedicated to developing the theory and practice of epidemic tracking and forecasting. Pre-pandemic they worked mostly on influenza, dengue and norovirus; they’ve now picked up a focus on COVID. They procure unique data streams that reflect epidemic (or pandemic) activity, extract relevant indicators, and make these publicly and continuously available. They and others then use these indicators for nowcasting (situational awareness) and short-term forecasting

**Tech stack**
MySQL, Python

**Team composition**
6 full-time engineers (1 DevOps, 1 database, 2 pipeline/statistics/masters, sys admin) + graduate students and professors. The team is mostly in EST

**Qualifications and skills**

- 2+ years of experience in Python software development
- Team software development (git/GitHub or similar version control, continuous integration, code review)
- Basic database use and analysis, especially in MySQL: SELECT/INSERT/UPDATE, DELETE, GROUP BY, EXPLAIN
- Basic Linux use and administration: system layout, file permissions, shell, utilities (syslog, cron), diagnostic tools (ps, htop, grep)

**Nice to have**
- Experience with cloud technologies such as AWS or Azure

**Responsibilities**
- Implements software applications and database specifications (often in a team setting) or modifies existing software packages to meet specific research needs. Provides input on system design, codes and modifications
- In consultation with technical lean, project managers, principal investigators and other researchers, analyzes alternative algorithms, new routines and system changes and suggest program and/or system changes as well as other solutions to problems
- Maintains existing applications. Corrects production system bugs. Writes system enhancements. Performs table/code maintenance. Tests system updates. Maintains/updates system and user documentation
- Abides by software development guidelines for coding style, version control, unit and/or integration tests, and code review
- Supports business user questions/issues regarding applications and/or systems issues and availability
- Attends required meetings and participates in various seminars and training classes to maintain or update skills needed
- Submits weekly work progress reports to supervision
- Other duties as assigned