The posting
At IBM Software, we transform client challenges into solutions. Building the world's leading AI-powered, cloud-native products that shape the future of business and society. Our legacy of innovation creates endless opportunities for IBMers to learn, grow, and make an impact on a global scale. Working in Software means joining a team fueled by curiosity and collaboration. You'll work with diverse technologies, partners, and industries to design, develop, and deliver solutions that power digital transformation. With a culture that values innovation, growth, and continuous learning, IBM Software places you at the heart of IBM's product and technology landscape. Here, you'l have the tools and opportunities to advance your career while creating software that changes the world.
About the role
As a Senior Software Developer II on the Flink Table API team, you will own how developers build streaming applications in Confluent Cloud with Apache Flink's Table API, DataFrame API, and user-defined functions (UDFs). You'll work on end-user API design in Python and Java, performance across the language boundary, running untrusted user code safely in a fully managed serverless environment, and developer productivity for streaming workloads.
This is a hands-on senior role for someone who can take complex work from design through rollout on their own, such as shipping a new UDF capability or tuning a cross-language hot path. You'll work closely with engineers, product managers, and partner teams to turn customer needs into reliable, performant, and easy-to-use systems, and you'll deepen your expertise in distributed systems and stream processing along the way.
This role requires strong systems fundamentals. You'll tune performance across the Python/Java boundary and work with the cloud-native infrastructure underneath: Kubernetes, resource isolation, and sandboxing untrusted code in a multi-tenant environment. If you enjoy working across layers, you'll thrive here. If your strength is application-level development on top of frameworks, or working in one language without digging into systems internals, this role is probably not the right fit.
What you will do:
- Design and build the Python and Java Table API, DataFrame API, and UDF experience, from client libraries through engine internals to control plane orchestration.
- Improve performance across the Python/Java boundary by profiling and tuning serialization, data transfer, and UDF execution for batch and streaming workloads.
- Run untrusted user-defined code safely in a fully managed, multi-tenant serverless environment, with strong isolation, resource limits, and predictable behavior.
- Own projects end to end: design, implementation, testing, documentation, rollout, and long-term maintenance.
- Make production systems more reliable through better observability, automation, tooling, and incident follow-up, and pay down technical debt along the way.
- Write clear design docs and drive technical decisions with product and partner engineering teams, turning customer needs into practical solutions.
- Contribute to open-source Apache Flink and collaborate with the broader community on overlapping work.
- Raise the team's bar through code reviews, design feedback, knowledge sharing, and mentoring.
Experience and fundamentals:
- 5+ years of industry experience building backend services, data infrastructure, or distributed systems.
- Strong computer science fundamentals, including data structures, algorithms, and a solid understanding of concurrency and distributed systems basics.
- Strong proficiency in both Java (or another JVM language such as Scala) and Python, with the ability to contribute to a large, existing codebase
SQL and data processing:
- A solid understanding of SQL and relational concepts, and genuine interest in how query engines work (parsing, planning, optimization, execution).
- Familiarity with data processing systems such as databases, query engines, or stream processors — through work experience, open source, or advanced coursework/projects.
Cloud and operations:
- Experience running or operating services on at least one major public cloud (AWS, GCP, or Azure); exposure to Kubernetes-based environments is a plus.
- Track-record to own your code in production, including metrics, dashboards, alerts, and on-call participation.
Ways of working:
- Ability to deliver well-scoped features end-to-end with high quality: clarify requirements, implement, test, and roll out safely, seeking input from senior engineers where needed.
- Clear, pragmatic communication and constructive participation in design discussions and code reviews.
- High bar for code quality and testing, and a willingness to iterate based on feedback.
- Performance tuning in Python and Java, especially across the language boundary (serialization, data transfer, profiling).
- Experience with Apache Flink SQL or the Table API, or with another SQL engine or large-scale data processing system (for example, Spark SQL, Trino, or a database engine).
- Understanding of streaming semantics such as event time, watermarks, and CDC handling.
- Open-source contributions in streaming, databases, or distributed systems, ideally including Flink or related components.



