C3 AI is looking for a Software Engineer to join the team that develops the Type System core abstraction layer which underpins C3's entire AI Platform and Applications. The ideal candidate will excel in systems programming, Java and Python language syntax and semantics, runtimes, compilers, memory management, multi-threading, profiling, performance, scalability, and observability.
Requirements
- Strong programming skills in Java and Python, language internals, and advanced language features Experience with Python 3.9+, Conda, JVM runtimes
- Thorough knowledge of data structures, algorithms, profiling/optimization, and Object-Oriented and Functional Programming
- Demonstrated experience optimizing performance of production systems
- Demonstrated understanding of throughput, latency, memory / cpu utilization
- Demonstrated ability to identify potential software architecture limitations
- Compiler
- Abstract syntax tree
Responsibilities
- Build the Type System core platform abstraction layer that enables Enterprise Data Scientists, Application Developers, and Data Integrators to rapidly build applications across different development platforms and tooling
- Own the language software development toolkits (SDKs) and execution engines for all supported languages (Java, JavaScript, Python)
- Improve the Type System platform ease of use, performance, and maintainability to increase Engineering and customer development velocity
- Improve Py4j, Py-client, JEP performance
- Triage and eliminate deadlocks and memory leaks
- Improve observability and instrumentation to optimize performance and infrastructure costs
- Develop automated performance and scalability tests and analysis
Other
- Collaborate with product owners, data scientists, and field engineers to develop and maintain Platform capabilities across the entire software lifecycle in a fast-paced agile environment.
- BS, MS, or PhD in computer science or equivalent work experience
- 2+ years of work experience in a fast-paced software company or equivalent
- Demonstrated end-to-end ownership of projects, including making key design decisions and tradeoffs
- Demonstrated ability to write clear and concise technical documents