Performance Architect at Splice Machine
San Francisco, CA, US
Named as one of the the 20 Red Hot, Pre-IPO Companies in 2016 B2B Tech by IDG, Splice Machine is disrupting the $30 billion traditional database with the first dual-engine database on Hadoop and Spark.

Leveraging in-memory technology from Spark and scale-out capabilities from Hadoop, Splice Machine can replace Oracle® and MySQL™ databases, while increasing performance by 10-20 times at one-fourth the cost. We are headquartered in the South of Market (SOMA) neighborhood of San Francisco.

As the Performance Architect at Splice Machine, you'll be at the intersection of software and hardware. This position offers a huge amount of influence and ownership for the performance of our codebase as we create new Splice Machine RDBMS features. You will own specific components of the product requiring breadth, depth and creativity gained through experience.

About You:

You believe a good performance architect takes responsibility for shaping the future software design.
When a query plan goes sideways, you’ll dig way down to tell the team how we can be more cache friendly and avoid false sharing.
You have driven end-to-end performance of an RDBMS product as an individual contributor.
You build and operate tools for measuring performance, profile code for finding hot spots and make software changes for improving performance.
You love to review code from team members using it as an opportunity to build a performance driven culture.
What You’ll Work On:

Use low level instrumentation and tools perhaps like VTune to find out what is really going on that is impenetrable by Java developers.
Guide us through the behavior of our system on different storage systems (e.g. SSD, NVM)
Instrument the codebase for fine-grained performance analysis and encode better to reduce serialization.
Review business and system requirements, contributing to test planning activities.
Design and implement standardized performance test procedures, building reusable performance test automation and processes to continuously validate product enhancements.
Analyze and report performance test results, tracking defects.
Identify bottlenecks, architectural problems and performance issues.
Participate in day-to-day performance activities, offering tuning tips to the team and the field.
Enhance and extend the automation library and framework.

Strong development background in Java and SQL and excellent knowledge of Linux operating system.
Experience in developing, planning and executing functional performance and load testing at various interface levels (JDBC, ODBC and RESTful services)
Experience in developing and using automated performance tools at all levels of the stack from tools like Intel VTune up to tools like JProfiler
Experience in profiling system and application level code for hot and sweet spots using techniques such as vectorization.
A deep understanding of today’s multi-core architectures and the need for cache-friendly computation.
Experience in benchmarking and tuning mission critical storage systems and distributed systems.
Excellent communication skills and the ability to work well within and across teams.
Bachelor's Degree in Computer Science or related field.