Splunk is an American technology company based in San Francisco, California, that produces software for searching, monitoring, and analyzing machine-generated data via a Web-style interface. Let us know the role and responsibilities of a Splunk Software engineer
Role and responsibility
- Write backend code for Splunk search infrastructure.
- Build robust, fault-tolerant distributed systems in a multi-threaded/multi-process environment.
- Analyze and improve scalability of retrieval, routing and collection of data across multiple deployments.
- Analyze and improve the scalability of data collection, routing, storage and retrieval.
- Define and perform various search language layer optimizations/transformations.
- 5 years of related experience with a technical Bachelor’s degree; or equivalent practical experience
- Master knowledge of developing and debugging any object oriented language like C++
- Solid understanding of how AWS services, like EC2, S3 etc. are used
- A good knowledge and experience in backend systems, storage, filesystem, memory, multi-threading is a plus.
- Familiarity with any query language like SQL, SPL etc.
- Have a good foundation in data structures, algorithms, software design.
- Knowledge of modern distributed system design and implementation.
Splunk Software Engineer salary
- Entry-level salary: USD 192,000
- Senior positions: USD 460,000.
- Median salary: USD 238,000 with the base component being USD 156,000, stock component being USD 68,000 and bonus being USD 14,000.
The Splunk Software Engineer interview is in the typical 3-stage format, comprising the initial screen, technical screen, and the onsite round.
The initial screen is a one-hour telephonic interview with the recruiter. Typically, the initial screen features questions related to your CV and work experience, if any. The initial screen aims to test the candidate's motivation for the role and to know if he/she meets the experiential and cultural fit for the role and the company. Candidates who are fresh out of college should be thorough with their CV, and any projects or internships they might have done while at college.
Most asked interview questions in the Initial Screen.
- Why do you want to pursue a career in software engineering?
- Why Splunk?
- What do you know about Splunk?
The technical screen is a one-hour interview with the hiring manager and a Splunk software engineer. This round is aimed at assessing your technical skills in the following areas:
- Systems Design
- Algorithms and Data Structures
The coding aptitude section of the technical screen will feature questions that test the general programming abilities of the candidate. The focus will primarily be on object-oriented programming. Students need to be proficient in at least one of the programming languages among C++, Java, and Python. Also, questions to test your clarity of the OOP concept may be asked.Typically, the interviewer asks 2-3 coding questions that need to be attempted through a shared online code editor.
Most commonly asked Coding questions in the Technical screen:
- Write a Python code to check if a substring is a part of a given string.
- Write a Python code to accept strings that contain all vowels.
- Given a matrix of size r*c. Traverse the matrix in spiral form.
- Write a code to add an element in the middle of a linked list.
- Can you write a function to convert a sorted list into a binary search tree?
- Write a code to check whether an array is a subset of another array.
- Create a class of university management system using all four pillars of oops concept.
Systems design covers under its ambit, system architecture, product design, modules, interfaces, and data for a system to satisfy specified requirements. The interviewer may ask questions on front-end design, back-end design, scalability, and more in this section.
Most asked Splunk Software Engineer interview questions on System Design
- Can you design a database system for a Supermarket?
- Design a secure password system for wearable devices
- If you were to build a recommendation system based on core attributes and features, how would you design and implement the various modules?
- Design a scalable system for tracking cabs that are violating rules.
- Can you design a movie ticket reservation system?
- Tell me how you would design a chat application like Whatsapp or Facebook messenger?
- Tell me how you would go about managing Web Services API versioning?
- Design Splunk Design Server driven system.
Algorithms and Data Structures
Algorithms and data structures is a staple of almost all Software Engineering interviews, and Splunk is no different. Question areas to focus here would be Linked Lists, Queues, Stacks, Binary Search Trees, and Arrays.
Most asked Splunk Software Engineer interview questions on algorithms and data structures:
- Given an array of n integers and given a number Z, write an algorithm to find all the unique pairs of elements (a,b), whose sum is equal to Z.
- Design LRU using basic data structures.
- Write an algorithm to implement preorder traversal in a binary search tree.
- How would you manage asset dependencies, and which data structures are useful for managing different types of dependencies?
- Give the algorithm to find the word in a paragraph with maximum occurrence.
The onsite round is an extended version of the phone screen. It is conducted on Splunk's campus, and consists of 4 rounds, two technical, and two behavioural. Each of the technical rounds is an hour long while the behavioural round lasts for an hour and 30 minutes. There is an informal 15-minute lunch interview with a current software engineer in between in which you can ask all questions you have in mind regarding role, responsibilities etc.
Technical Round 1
The technical rounds are conducted by a senior software developer at Splunk.
The first technical round would mostly feature coding questions. It will feature at least two coding problems. Candidates should be prepared to code in C/Java, or Python.
Most asked coding questions in the Onsite Round:
- Given n numbers (P1,P2,P3,.....Pn). Divide them in m contiguous partitions such that the sum of the maximum is minimum.
- Write a program to add numbers present in a String , for example: in a string Gl223a45ssd908oo6r, the program should give 223 + 45 + 908 + 6 = 1182 as the result.
- Write a function to find the middle element of a singly linked list in one pass.
- Write a code to search an element in a Binary Search Tree.
- Write a function to find all pairs of an integer array whose sum is equal to a given number.
- Given a character array, calculate the minimum no. of jumps from 1st alphabet to reach the last alphabet. CRITERION: From a given character, you can either: 1. Jump to the adjacent character 2. Jump to the same character positioned in a different place
Technical Round 2
The second technical round will feature system design questions. It will feature at least 2-3 system design questions. Interviewers may ask back-end design, frontend design, as well as scalability questions.
Most commonly asked System Design question in the onsite round
- Create a backend application using an in-memory database.
- Draw low level design of online bus booking system.
- Design a Billing System for a cloud-based Platform.
- Design a system which returns to a user all the restaurants within a 2 km radius of his location.
- Design for a poker game where it consists of a few tables and each table consists of 6 chairs. And the system has to allocate the available seats to the participants in the queue. And each participant will be allocated 100 poker chips.
The two behavioural rounds are aimed at assessing behavioural aspects of your personality. You may be asked situational questions as to how you tackled a particular situation. Interviewers may also be interested in knowing what drives you to become a software engineer, or what is your motivation for choosing Splunk. There may also be a few scenario-based questions to test your leadership skills.
The most fundamental thing to keep in mind in behavioural interviews is tobe honest in your replies. There is always a possibility of back and forth between you and the interviewers over a question or an answer, so be ready for that.
Most commonly asked questions in the Behavioral section
- Why have you chosen to apply to Splunk?
- Why do you want to pursue a career in software engineering?
- Where do you see yourself in the next 10 years?
- Tell me something about your approach to goal-setting.
- How do you handle pressure at work?
- Do you like working in a team? What is the best thing about working in a team?
- Have you ever felt demotivated at work? How did you overcome the situation?
- Stick to the "Think out loud" approach to let the interviewers know your approach to the answer. Make sure not to rush to answer any question.
- Do not hesitate to ask clarifying questions.
- For the behavioural interview, do some research about Splunk, and its values, work culture,etc. Also, think of a few examples to use in the scenario-based questions regarding your previous work experience, your achievements, the challenges you faced, and how you overcame those.
With the above pointers, we are sure you would crack the Splunk Software Engineer interview. Hope you found the guide useful.
Thanks for reading!
All the best!