2.12.19

Software Engineer, Core Database

Software Engineer, Core Database
at Yellowbrick Data (View all jobs)

Palo Alto, California, United States

You will report to the Director of Software Development, and work with the rest of our development and engineering staff.  You are primarily responsible for Yellowbrick’s core query processing stack. You’ll have the opportunity to work in all areas of the software stack for our database appliance, which includes almost every aspect of Computer Science from operating systems to user interface and everything in between.

 As an engineer working on the core database, you are a computer scientist who loves algorithms, multicore architecture and performance optimizations. You find compilers, parsers, grammars, code generation and code optimization challenges interesting, you find parallel sorting, aggregation, and join algorithms interesting, have a flair for creative solutions to generating more efficient machine instructions, and hopefully you’ve worked in one or more of these areas. You dig Big Data algorithms that work at scale and concurrency, embrace massive parallelism of algorithms in distributed systems and don’t get scared by NP complete problems or dynamic programming. 


We value collaboration, courtesy, and have a work hard/play hard culture. We offer a rewarding environment in which you will work with a peer group that is technically bright and fearless in taking on hard challenges.

A FEW THINGS WE MIGHT ASK YOU TO DO
  • Work on Yellowbrick’s core query execution stack and associated components
  • Work on creating, patenting and implementing advanced execution techniques
  • Debug and enhance existing functionality
  • Participate in design discussions
  • Make design contributions outside of your primary area
  • Help troubleshoot and fix issues encountered in the field
A FEW THINGS WE ARE LOOKING FOR 
  • 1+ years of experience designing and developing software
  • You are interested in the cycle of design, development and customer release.
  • You are passionate about high performance and find it exciting to work on parallel processing and distributed systems
  • Fundamental computer science – as many of the following areas of experience:
    • Hashing, Sorting, Searching, and Aggregation algorithms
    • Distributed database algorithms
    • Bloom Filters
    • Multicore programming
    • Compiler front-ends – grammars, parsers, tokenizers, AST and the rest
    • Compiler internals – multi-pass code optimization and extraction of parallelism and data typing
    • Compiler back-end or virtual machines – machine code generation
    • SQL and relational databases
    • Internals of open source or commercial databases
  • Strong knowledge of and experience with C++ and C
  • Experience with Java is a plus

Followers