Location: Remote (Available to candidates in the following states: Ohio, Michigan, Indiana, Illinois, Tennessee, Texas, Florida, Colorado, Montana, Nevada, Rhode Island, Massachusetts)
Travel Requirement: Occasional travel to headquarters in Holland, OH (approximately 2-3 times per year for onboarding and team meetings)
Job Type: Full-Time, Permanent
Benefits: Medical, Dental, Vision, 401k + match, Profit Sharing, Paid Time Off, Paid Holidays, Flex Time, Company Performance Bonus, Training & Career Development Opportunities, Paid Volunteer Time
Company Overview:
This company has served libraries and their patrons with unparalleled access to the best content available in the media world. hoopla Digital is our flagship product, providing library patrons with a media service that combines the latest in digital technology with library expertise. As hoopla continues to expand globally, we are looking for passionate engineers to join our growing team.
Position Overview:
We are seeking a Senior Streaming Developer to join our engineering team, specializing in real-time, event-driven streaming solutions. In this role, you will work alongside talented engineers to design and implement robust, fault-tolerant streaming architectures using Apache Kafka, Apache Flink, and Java 17+. You will play a critical role in shaping our real-time data pipelines and ensuring they meet the needs of hoopla Digital as we scale globally.
Key Responsibilities:
Lead the design and implementation of event-driven, real-time streaming architectures using Apache Kafka and Apache Flink.
Architect and implement fault-tolerant, scalable Kafka pipelines and Flink applications to process high-volume, low-latency data streams.
Collaborate with other streaming developers to share knowledge, refine best practices, and improve the team's technical expertise.
Contribute to architecture discussions, provide technical guidance, and conduct thorough code reviews to uphold high standards of software quality.
Ensure compliance with data governance standards, security policies, and industry regulations in all aspects of streaming development.
Advocate for best practices in stream processing, testing, maintainability, and scalability.
Troubleshoot and optimize streaming applications, collaborating with DevOps and operations teams to monitor and ensure application performance.
Drive continuous improvement by proposing enhancements to workflows, technical stacks, and development methodologies.
Required Qualifications:
8+ years of experience designing, developing, and optimizing event-driven, real-time streaming architectures.
Strong proficiency in Apache Kafka and Apache Flink (including Flink's DataStream, Table, and SQL APIs).
Advanced knowledge of Java 17+ with a focus on stream processing applications.
Deep understanding of microservices architecture and domain-driven design (DDD) principles.
Experience with Kafka Connect for data ingestion/egress and familiarity with common connectors for databases, message queues, and cloud services.
Experience with cloud platforms, preferably AWS, for deploying and scaling streaming workloads.
Strong SQL skills, especially in the context of stream-table joins and windowing operations in Flink SQL.
Proficiency in Spring Boot and Spring Cloud for building microservices-based applications.
Familiarity with DevOps practices, CI/CD pipelines, and containerization technologies (Docker, Kubernetes).
Strong communication skills, with the ability to articulate complex technical concepts to both technical and non-technical stakeholders.
Preferred Qualifications:
B.S./M.S. in Computer Science, Software Engineering, or a related field, or equivalent experience.
Experience with schema evolution strategies (e.g., Avro, JSON) for Kafka and Flink.
Hands-on experience with in-memory data stores like Memcached or Redis for caching and state management in streaming applications.
Familiarity with data modeling techniques for streaming data and performance tuning of stream processing systems.
Certification in Apache Kafka (e.g., Confluent Certified Developer) is a plus.