SysAdmin - Infrastructure team
The infrastructure team is looking for a Sys Admin to help deploy and configure new servers, automate and verify backups plus document standards, processes and solutions used. Someone with a keen eye for security who will support our Infrastructure, CI/CD, Monitoring and Automation.
Current Responsibilities
The current job consists of main 3 types of responsibilities:
- Infrastructure Management
- Deploying and configuring new servers with Terraform & Ansible
- Maintaining infra metadata in Consul
- Automation and verification of backups
- Docummenting standards, processes, and solutions used
- Ensuring security of hosts and other onlines resources
- Reviewing and reducing cost of existing infrastructure
- Ongoing maintenance like:
- Software upgrades
- Cleaning up disk space
- Continuous Integration Development
- Maintaining the Jenkins instance
- Configuring and developing build job definitions
- Builds for Linux, MacOS, Windows, Android, iOS
- Managing application signing setup (Fastlane, Match, Gradle, XCode)
- Configuring integrations with external services:
- GitHub, SauceLabs, TestRail, Coveralls, Diawi, Apple Store, Play Store
- Monitoring and On-Call
- Analyzing metrics & logs from Grafana and Kibana
- Analyzing warnings from Consul, Icinga, or ThreatStack
- Responding to downed services
- Miscellaneous Automation
- Things like generation of web pages (ex.:
contacts.status.im
) - Aggregation of build data from PRs (ex.:
ghcmgr
) - Collecting of data (
sourcecre.status.im
)
- Things like generation of web pages (ex.:
General Requirements
Knowledge of specific technologies is not mandatory. It is more of a general guide to what will be encountered in our infrastructure.
- Cloud Providers
- Familiarity with one is enough to learn the rest
- We use Google Cloud, Digital Ocean, Alibaba, AWS, and ScaleWay
- Terraform for all provisioning
- Networking Fundamentals
- Good understanding of firewalls is a must
- Includes application layer protocols as well
- Linux Fundamentals
- Multiple Linux flavours, but mostly Ubuntu for us
- Process management, systemd, Docker, cron
- Package management, APT, PIP
- Windows Fundamentals
- Windows Server Core administration using PowerShell
- Used only to build desktop version of the app
- Monitoring and Logging
- Prometheus, Cortex, and Cassandra for metrics
- Rsyslog, LogStash, and Elasticsearch for logs
- Database Administration
- We use both SQL and NoSQL, any type of one is nice
- Mostly PostgreSQL, SQLite, MongoDB, LevelDB
- ElasticSearch and Cassandra for logs and metrics
- Security Concerns
- Good understanding of OpenSSH is crucial
- OAuth is prevalent throughout our infra
- GnuPG for encryption of secrets and backups
- Continuous Integration
- Jenkins in our case, but most CI solutions are the same
- Java/Groovy for job definitions
- End-to-end testing, reporting
- GitHub pages deployments and GitHub Actions
- Build Processes
- Nix is not required but a nice to have, heavily used
- Gradle, Maven, Yarn, FDroid - for Android
- XCode, Fastlane, Gems, clj - for iOS
- AppImage, Qt, DeployQt - for Linux
- VS Build Tools, MinGw, Scoop - for Windows
- Brew, CMake, XCode CodeSign - for MacOS
- Programming Abilities
- At least a few languages showing ability to learn
- For us it’s mostly Go, Nim, Python, JavaScript, Groovy, Bash
- Decentralized Software
- Fundamental to messaging and other functions of the App
- Ethereum, Status-go, Nimbus, IPFS, Swarm