Banco Mercantil del Norte, S.A.
COGNATIV
Senior DevOps Engineer (Weltweite Einstellung)
Über die Rolle
Wir betreiben eine verteilte, kamerasystembasierte Videoüberwachungs- und KI-Alarmierungsplattform. Das System deckt das gesamte Spektrum moderner und Legacy-Infrastruktur ab: eine AWS-gehostete Flotte von Java-Microservices und Workern, eine GPU-gestützte Computer-Vision-Inferenzpipeline, eine Echtzeit-Streaming- und Präsenzschicht sowie Tausende von lokalen Edge-„Media-Boxen“, die im Feld eingesetzt werden und Kamerafeeds aufnehmen, HLS-Video bereitstellen und Ereignisse zurück in die Cloud streamen.
Dies ist eine primär auf Zuverlässigkeit ausgerichtete Rolle. Ihre Hauptaufgabe ist es, einen großen, gemischten operativen Bestandteil in großem Maßstab gesund zu halten: aussagekräftige Service-Ziele, vertrauenswürdige Alarmierung, solide Kapazität, getestete Notfallwiederherstellung und schnelle, ruhige Reaktion auf Vorfälle. Bereitstellungspipelines sind wichtig, aber hier dienen sie der Zuverlässigkeit und nicht umgekehrt. Wir stellen keinen DevOps-Engineer für Pipelines und Self-Service ein, der den Betrieb als Nebensache betrachtet. Wir stellen einen Senior DevOps Engineer ein, der für die Betriebszeit und operative Qualität verantwortlich ist und die Software schreiben kann, um diese Betriebszeit messbar und automatisch zu machen.
Wenn Sie in SLOs, Fehlerratenbudgets und blameless Postmortems denken und am glücklichsten sind, wenn ein lautes, fragiles System unter Ihrer Aufsicht ruhig und vorhersehbar wird, dann ist dies Ihre Rolle.
Was Sie zuverlässig halten werden: Sie sind verantwortlich für die operative Gesundheit aller folgenden Bereiche
Wie wir arbeiten und was wir von dieser Einstellung erwarten:
Diese Prinzipien spiegeln Lektionen wider, die wir ernst nehmen. Der richtige Kandidat arbeitet bereits so:
- Observability muss vertrauenswürdig sein. Alarme, die fälschlicherweise Alarm schlagen, sind schlimmer als keine Alarme. Sie sind verantwortlich für die Qualität der Alarmierung von Ende zu Ende: Hohes Signal-Rausch-Verhältnis, Alarme, die zuverlässig die Vorfälle erfassen, die sie erfassen sollen, und das Urteilsvermögen, einen irreführenden Alarm auszuschalten, bis er richtig behoben ist, anstatt einen lauten Alarm weiterlaufen zu lassen. Wir haben die Kosten unzuverlässiger Alarmierung erfahren und suchen jemanden, der diese Lücke schließt und geschlossen hält.
- Das Änderungsmanagement ist kollaborativ, niemals unilateral. Jede Infrastrukturänderung, die einen Dienst betrifft, wird gemeinsam mit dem Ingenieur vorgenommen, der diesen Dienst besitzt und versteht. Skalierungs-, Instanzanzahl-, Topologie- und Konfigurationsänderungen werden mit diesem Eigentümer überprüft, bevor sie ausgeliefert werden. Insbesondere Annahmen über Einzelinstanz vs. Multi-Instanz werden niemals auf Vermutungen hin geändert.
- Nachverfolgung über Aktivität. Wir messen Ergebnisse, nicht Aufwand oder Stunden. Wenn etwas angefordert wird, erwarten wir, dass es innerhalb einer angemessenen Frist zu einer korrekten, dauerhaften Lösung gebracht wird und nicht monatelang halb gelöst bleibt. Finden Sie heraus, was tatsächlich benötigt wird, konzentrieren Sie sich darauf und schließen Sie es ab.
- Bevorzugen Sie die richtige Lösung gegenüber einem schnellen Patch. Lösen Sie die Grundursache. Decken Sie sie nicht ab und gehen Sie weiter.
- Computer-Vision / KI-Modelle: Frame-basierte Inferenzdienste, die auf GPU EC2 (g4dn-Klasse, AWS Deep Learning AMIs) laufen, gespeist von Kamerabildern aus S3 und einem Kafka (Amazon MSK) Event-Bus, mit Redis (ElastiCache) für den Zustand. Ausgaben fließen durch eine Alarmierungs-Pipeline (OutgoingInferenceMessage an SNS/IoT zu Benachrichtigungs-Workern).
- Python-Dienste: die KI/Alarmierungs-Inferenzschicht und unterstützende Werkzeuge.
- Legacy Java-Dienste: ca. 140 Java 8-Dienste und Bibliotheken (REST APIs, SQS/SNS-Worker, Lambda-Funktionen), die auf Jetty 9.4 laufen und auf Elastic Beanstalk, ECS und Lambda bereitgestellt werden.
- Edge-Appliances („Media-Boxen“): Ubuntu 22.04 / Docker Compose-Appliances, die remote über AWS IoT Core Secure Tunnelling verwaltet werden, mit Cloudflare Tunnels für den Ausgang. Beinhaltet eine aktive Migration von CentOS 7 zu einem containerisierten Stack.
- Daten- und Nachrichten-Backbone: PostgreSQL (RDS) über viele Schemata, TimescaleDB für Analysen, Redis, DynamoDB, Amazon MSK (Kafka), SQS/SNS und Kinesis.
Was Sie tun werden: Zuverlässigkeit und Betrieb (der Kern der Rolle)
- Verantwortlich für Service-Ziele. Definieren Sie SLIs und SLOs für die wichtigen Dienste, verwalten Sie Fehlerratenbudgets und nutzen Sie diese, um Priorisierungen und Änderungen voranzutreiben. Machen Sie Zuverlässigkeit zu einer messbaren Zahl, nicht zu einem Gefühl.
- Machen Sie Observability vertrauenswürdig. Verantwortlich für die Qualität der Alarmierung von Ende zu Ende: Hohes Signal-Rausch-Verhältnis, Alarme, die zuverlässig die Vorfälle erfassen, die sie erfassen sollen, und die Disziplin, einen irreführenden Alarm auszuschalten, bis er richtig behoben ist. Erstellen Sie die Dashboards und die benutzerdefinierten Metriken, Exporter und Instrumentierungen (CloudWatch, OpenTelemetry), die benötigt werden, um das System klar zu sehen.
- Führen Sie die Reaktion auf Vorfälle an. Leiten Sie Vorfälle ruhig, reduzieren Sie die mittlere Wiederherstellungszeit (MTTR) und erstellen Sie blameless Postmortems mit Aktionspunkten, die tatsächlich geschlossen werden. Verbessern und verwalten Sie die Bereitschaftsrotation und deren Gesundheit.
- Planen Sie Kapazität und Leistung. Prognostizieren und dimensionieren Sie Compute (insbesondere GPU), Kafka/MSK-Durchsatz und Partitionierung, RDS/TimescaleDB-Last und Redis. Erkennen Sie Sättigung, bevor es die Kunden tun.
- Verantwortlich für Geschäftskontinuität und Notfallwiederherstellung. Backups, Replikation, Failover und Wiederherstellung für RDS, MSK, Redis und die Edge-Flotte. Definieren Sie RPO/RTO und beweisen Sie diese durch regelmäßige, getestete Game Days, nicht durch Annahmen.
- Halten Sie die Edge-Flotte gesund. Fernwartung und Wiederherstellung über AWS IoT, Container-Auto-Update über systemd-Timer und die laufende Migration von CentOS 7 zum containerisierten Media-Stack (Ubuntu 22.04).
- Automatisieren Sie Routineaufgaben. Schreiben Sie echte Software (Python, Golang, Bash), um operative Arbeiten zu automatisieren, häufige Fehler selbst zu beheben und Zuverlässigkeit wiederholbar statt heldenhaft zu machen.
- Steuern Sie Produktionsänderungen sicher. Erzwingen Sie ein kollaboratives, geprüftes Änderungsmanagement; schützen Sie das System vor riskanten, unilateralen Änderungen (Topologie, Instanzanzahl, Skalierung und Konfiguration).
Bereitstellung und Plattform (zur Unterstützung der Zuverlässigkeit)
- Halten Sie CI/CD gesund und sicher: CircleCI mit Bazel/Gradle-Builds, OIDC-basierte AWS-Authentifizierung, Container-Builds zu ECR und EB/ECS/Lambda-Deployments, so abgestimmt, dass Releases sicher, beobachtbar und reversibel sind.
- Verwalten Sie Terraform für den AWS-Bestand (Compute, Netzwerk, IAM, Datenbanken, Messaging, Monitoring) gemäß unseren modulbasierten Konventionen und dem S3-basierten Zustand.
- Härten Sie Sicherheit und Compliance: IAM Least Privilege, Secrets Manager/KMS, TLS und Zertifikatsverwaltung (einschließlich IoT-Gerätezertifikaten), CloudTrail und AWS Config.
Mindestanforderungen
- AWS-Zertifizierung ist zwingend erforderlich. Ein aktuelles AWS Certified DevOps Engineer – Professional oder AWS Certified Solutions Architect – Professional wird dringend bevorzugt.
- 10+ Jahre Erfahrung in Site Reliability Engineering oder im Produktionsbetrieb in großem Maßstab. Wir erwarten nicht, dass Sie vom ersten Tag an in jedem der folgenden Bereiche Meister sind. Wir erwarten echte Tiefe in mehreren Bereichen und die Fähigkeit, sich schnell in die anderen einzuarbeiten.
- Nachgewiesene Praxis mit SLOs/Fehlerratenbudgets. Sie haben SLIs und SLOs definiert, gegen ein Fehlerratenbudget gearbeitet und es genutzt, um reale Entscheidungen zu treffen.
- Starke Kenntnisse in Produktions-Observability. Tiefgehendes Wissen über Metriken, Logs, Alarmierung und Dashboards (CloudWatch, OpenTelemetry und/oder Prometheus/Grafana/Datadog) und die Fähigkeit, die Instrumentierung zu erstellen, wenn sie nicht vorhanden ist.
- Nachgewiesene Erfahrung in der Vorfallsteuerung. Sie haben Vorfälle geleitet, eine Bereitschaftsrotation verantwortet und Postmortems geschrieben, die das Verhalten eines Systems verändert haben.
- Erfahrung mit Kapazitätsplanung und Leistung über Compute, Datenbanken und ein Messaging- oder Streaming-System (Kafka/MSK ideal).
- Verantwortung für Notfallwiederherstellung: Backups, Replikation, Failover und getestete RPO/RTO.
- Fähigkeit zur Softwareentwicklung für Automatisierung. Sicher im Schreiben von Python, Golang und Bash, um Zuverlässigkeits-Tools zu erstellen, nicht nur fertige Tools zu konfigurieren.
- Experte für Terraform (oder gleichwertige IaC) und starke Linux-Administration (Shell plus Linux GNU Utils), komfortabel von der Cloud bis zu Bare-Metal/Edge.
- Erfahrung im Datenbankbetrieb mit PostgreSQL (Zeitreihen von Vorteil).
- Eine Zuverlässigkeitsmentalität: Sie instrumentieren, bevor Sie raten, und Sie schreiben das Runbook.
Von Vorteil
- Betrieb von GPU-Workloads und Bereitstellung von Computer-Vision- oder ML-Modellen in der Produktion (CUDA, Deep Learning AMIs, Inferenzskalierung).
- Apache MSK / Kafka und Streaming-Datenbetrieb (Kinesis, Kinesis Video Streams).
- AWS IoT Core im großen Maßstab: Gerätebereitstellung, Zertifikate, sicheres Tunneln.
- Verwaltung einer Flotte von Edge-/On-Premise-Geräten (Golden Images, Remote-Update, systemd).
- Betrieb und Modernisierung von Legacy-Systemen (Java 8, Jetty, CentOS).
- Chaos Engineering / Game-Day-Praxis und Kapazitätsmodellierung.
- Vertrautheit mit Bazel in einem Monorepo; Cloudflare, Cognito/Auth0, API Gateway.
