Senior Software Developer
Yellowbrick Data is a rapidly growing Enterprise Data Warehouse start-up headquartered in Mountain View, CA with offices also in London, United Kingdom. We’ve been growing over 3x year-on-year and our technology is used by the world’s largest insurers, credit card companies, telco’s, healthcare and marketers. Our customers love our product: Most are repeat buyers, and in many cases, we’ve become the new standard for analytics and data warehousing in their respective enterprises. Yellowbrick is well funded having raised >$250m from top-tier venture firms.
We’re a driven R&D team, solving hard-core computer science problems at all levels of the stack. What we do isn’t easy: We design hardware, build an operating system, have created an entire enterprise-grade database from scratch with remote support capability, and actively build and maintain business continuity functions and a growing set of ecosystem integrations. Our database deploys both on-premises and in the cloud.
We are looking for a senior developer to work in our core database team, working on storage, code compilation and execution, however you’ll have the opportunity to work in all areas of our software stack which includes almost every aspect of computer science – from hardware to operating systems and user interface and everything in between.
You’re a computer scientist who loves algorithms, massively parallel programming, multicore architecture and performance optimizations. You find compilers, parsers, grammars and compilers interesting, you find parallel sorting, aggregation, indexing and joining 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 like 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.
- Design, develop, test and ship improvements to our core query execution stack
- Help troubleshoot and fix issues encountered in the field
- 4-6 years of experience developing and shipping software that users are successfully running in production.
- High performance parallel, distributed systems
- Fundamental computer science – as many of these as possible:
- Hashing, sorting, searching, aggregation
- Distributed database algorithms
- File systems
- Operating systems – threading, scheduling, memory management
- TCP and RDMA networking
- Multi-core programming and memory models
- Compilers – front end, internals or back-ends
- SQL and relational databases
- Internals of open source or commercial databases
- Strong knowledge of C and C++
- Assembly language, including vector processing
- Java application server experience
We encourage people from underrepresented groups to apply. Come advance with us! In keeping with our values, no employee or applicant will face discrimination/harassment based on: race, color, ancestry, national origin, religion, age, gender, marital domestic partner status, sexual orientation, gender identity, disability status, or veteran status. Yellowbrick Data also strives to prevent other, subtler forms of inappropriate behavior (e.g., stereotyping) from ever gaining a foothold in our organization. Whether blatant or hidden, barriers to success have no place at Yellowbrick Data.
To all recruitment agencies: Yellowbrick Data does not accept agency resumes. Please do not forward resumes to Yellowbrick Data employees or any other organization location. Yellowbrick Data is not responsible for any fees related to unsolicited resumes.