Senior Software Development Engineer (Amazon)
Job Description
Our EBMS Real-Time Data Platform team is looking for a Software Development Engineer
with hands-on experience in Apache Flink, Amazon Kinesis, and Java to build and maintain
our real-time BMS data pipeline that ingests telemetry from thousands of global building
management systems. The engineer will be responsible for the full lifecycle of stream-
processing applications; from design and development through deployment and production
operations with a focus on delivering 99% system uptime, comprehensive observability, and
fault-tolerant architecture.
Primary Responsibilities
Design, develop, and optimize Apache Flink stream-processing applications for real-
time BMS data ingestion, transformation, and enrichment.
Build and maintain Amazon Kinesis Data Streams infrastructure including shard
management, auto-scaling policies, and dead-letter queues.
Implement comprehensive observability: CloudWatch/Grafana dashboards,
distributed tracing, structured logging, and tiered alerting (P1/P2/P3) across the full
pipeline.
Troubleshoot and resolve production issues across the ingestion-to-serving stack
(Kinesis, Flink, DynamoDB, S3, Athena)
Develop and maintain Infrastructure-as-Code (CDK/CloudFormation) for all pipeline
components, ensuring repeatable and auditable deployments.
Implement data quality monitoring including record count validation, schema drift
detection, and null-rate anomaly detection across all sites.
Job Qualifications
The ideal candidate has strong software engineering fundamentals and a passion for
building reliable, high-throughput distributed systems. They must be detail-oriented,
comfortable operating in an on-call environment, and able to communicate effectively with
both technical and non-technical stakeholders.
Required:
Bachelor’s or Master’s degree in Computer Science, Software Engineering, or
equivalent technical field.
Strong proficiency in Java (primary) with production-level experience building and
deploying applications.
Hands-on experience with Apache Flink or equivalent stream-processing framework
(Spark Streaming, Kafka Streams).
Experience with Amazon Kinesis Data Streams or similar distributed
messaging/streaming platform.
Demonstrated experience building and operating systems with 99%+ uptime SLAs.
Solid understanding of distributed systems concepts: fault tolerance, exactly-once
semantics, checkpointing, backpressure management.
Experience with AWS services: DynamoDB, S3, Athena, CloudWatch, IAM.
Proficiency with Infrastructure-as-Code (CDK, CloudFormation, or Terraform).
Preferred:
Experience with MQTT, Haystack protocol, or Niagara N4 (building automation / IoT).
Familiarity with Apache Avro, AWS Glue Schema Registry, or similar schema
management tools.
Experience with Grafana, CloudWatch Logs Insights, or distributed tracing
frameworks.
Knowledge of chaos engineering practices and tools.
Prior experience with BMS (Building Management System) or IoT data pipelines.
Python proficiency for scripting, data analysis, and tooling.