Join us as we pursue our disruptive new vision to make machine data accessible, usable and valuable to everyone. We are a company filled with people who are passionate about our product and seek to deliver the best experience for our customers. At Splunk, we’re committed to our work, customers, having fun and most importantly to each other’s success.
This principle software engineer will be part of Splunk’s Core team. You will be working on the software that controls and monitors all the systems within Splunk’s ecosystem. As we scale and add features, this team is responsible for developing health monitoring systems, Management API’s, messaging and alert systems, as well as the software that glues the components of Splunk installations together. Our systems can range in size from a single laptop to thousands of nodes, and the Core has to scale accordingly.
- The ideal candidate has already worked on production distributed systems, with the stellar candidate having experience with more than 500 nodes; Understands the difficulty of building highly reliable, redundant, and scalable systems in C/C++ that are connected at the lowest levels; Is interested in simplifying the complex tasks associated with maintaining highly distributed heterogeneous systems, by building constant monitoring and evaluation systems, and scaling the core features themselves.
- The projects you will be working on are based around the evolution of our Core technologies.
- The goals are to ease and mature the workflows available to administrators of Splunk deployments; Provide robust, scalable tools that are easy to understand and diagnose, to better handle Splunk at scale; Improve the core feature set of Splunk Enterprise such that administrators enjoy a frictionless path to scaling up their environments.
- This team is literally at the core of Splunk’s technology and growing rapidly, allowing you to be involved in many different technical areas with lots of room for career growth and exposure to new technical areas.
- You will write server-side code in C/C++ for distributed communication, data collection and system monitoring, efficient in-memory algorithms, etc
- You will create messaging systems to efficiently transfer system health and alerts and large scale file based configurations
- You will analyze and improve the scalability of data collection, routing, storage, and retrieval
- Write unit and functional tests and verify effective code coverage
- 10+ years software engineering.
- Experienced knowledge of developing and debugging C/C++.
- Knowledge of TCP/IP and networking fundamentals.
- Deep understanding of filesystems and servers
- Proven foundation in data structures, algorithms, software design.
- Knowledge of modern distributed system design and implementation.
- BS degree in Computer Science or meaningful degree.
Nice to have, but not required, any of the following:
- Distributed systems management experience
- Distributed systems diagnostics experience
- Deployment & content management
- Telemetry/instrumentation (including metrics)
- Linux administration, shell scripting, and build system experience
- Python experience
We value diversity at our company. All qualified applicants will receive consideration for employment without regard to race, color, religion, sex, sexual orientation, gender identity, national origin, or any other applicable legally protected characteristics in the location in which the candidate is applying.
For job positions in San Francisco, CA, and other locations where required, we will consider for employment qualified applicants with arrest and conviction records.