# Software Engineer
**Role:** Software Engineer · **Level:** Software Engineer
**Company:** [persistent systems](https://scaleengineer.com/companies/persistent-systems)
**Difficulty:** Medium
**Salary:** US$80000 - US$120000
**Experience:** 2 - 5
**Timeline:** ~7 days
This interview process is for a Software Engineer role at Persistent Systems, designed to assess technical skills, problem-solving abilities, and cultural fit.
Canonical: https://scaleengineer.com/interviews/persistent-systems/software-engineer-software-engineer
---
## Overall evaluation

- Technical Skills
- Behavioral and Cultural Fit
- System Design and Architecture

## Questions asked

- Write a function to reverse a linked list.
- Explain the difference between a process and a thread.
- How would you design a system to handle millions of concurrent users?
- Tell me about a time you failed and what you learned from it.
- What are your strengths and weaknesses?
- Describe your experience with [specific technology relevant to the role].

## Preparation tips

### lists

- Review fundamental data structures and algorithms.
- Practice coding problems on platforms like LeetCode or HackerRank.
- Brush up on object-oriented programming (OOP) concepts.
- Understand common software design patterns.
- Prepare for behavioral questions using the STAR method.
- Research Persistent Systems' products and values.
- Be ready to discuss your past projects in detail.

### studyPlan

- {"title":"Data Structures and Algorithms","longDescription":"Weeks 1-2: Focus on core data structures (Arrays, Linked Lists, Trees, Graphs, Hash Tables) and algorithms (Sorting, Searching, Dynamic Programming, Greedy Algorithms). Practice implementing these and analyzing their time and space complexity.","shortDescription":"Weeks 1-2: Data Structures & Algorithms fundamentals. Practice implementations and complexity analysis."}
- {"title":"Object-Oriented Programming and Design Patterns","longDescription":"Week 3: Deep dive into Object-Oriented Programming (OOP) principles (Encapsulation, Inheritance, Polymorphism, Abstraction) and common design patterns (Singleton, Factory, Observer, Strategy).","shortDescription":"Week 3: OOP principles and Design Patterns."}
- {"title":"System Design","longDescription":"Week 4: Focus on System Design. Understand concepts like scalability, load balancing, database design (SQL vs NoSQL), caching, and API design. Practice designing common systems like a URL shortener or a Twitter feed.","shortDescription":"Week 4: System Design concepts and practice."}
- {"title":"Behavioral Preparation","longDescription":"Week 5: Prepare for behavioral questions. Reflect on past experiences and prepare stories using the STAR method (Situation, Task, Action, Result) for common questions related to teamwork, problem-solving, and leadership.","shortDescription":"Week 5: Behavioral questions preparation using STAR method."}
- {"title":"Company Research","longDescription":"Week 6: Research Persistent Systems. Understand their mission, values, recent projects, and the specific role you are applying for. Prepare questions to ask the interviewer.","shortDescription":"Week 6: Company research and question preparation."}

## Location differences

- {"location":"India","differences":{"tips":["Research common projects and technologies used in this region.","Be prepared to discuss your experience with local business practices.","Practice answering behavioral questions in a way that highlights collaboration."],"interviewFocus":["Adaptability to local work culture","Communication skills in the local language (if applicable)","Understanding of local market trends"],"commonQuestions":["Tell me about a challenging project you worked on.","How do you handle tight deadlines?","Describe a time you disagreed with a team member."]}}
- {"location":"USA","differences":{"tips":["Ensure your resume clearly outlines your experience with international projects.","Be ready to articulate your understanding of global best practices.","Highlight any experience working with distributed teams."],"interviewFocus":["Proficiency in English communication","Familiarity with global software development standards","Experience with cross-cultural team collaboration"],"commonQuestions":["What are your thoughts on agile methodologies?","How do you approach code reviews?","Describe your experience with cloud platforms."]}}

## Round 1: Technical Screening
**Type:** Data Structures and Algorithms Interview · **Difficulty:** Medium · **Duration:** 45 min
Coding challenge to assess fundamental programming skills.
This initial round focuses on assessing your fundamental programming skills. You will be asked to solve coding problems that test your knowledge of data structures and algorithms. The interviewer will evaluate your approach to problem-solving, your coding style, and your ability to explain your thought process.
**Interviewers look for:** Clear thinking process; Proficiency in at least one programming language; Ability to translate problem into code
**Evaluation criteria:** Correctness of the solution; Efficiency of the solution (time and space complexity); Code readability and maintainability; Ability to explain the approach
**Common rejection reasons:** Inability to articulate thought process clearly.; Lack of fundamental programming knowledge.; Poor problem-solving approach.
## Questions

- Given an array of integers, find the contiguous subarray with the largest sum.
- Implement a binary search tree and its traversal methods (in-order, pre-order, post-order).

## Preparation tips

- Practice coding problems on platforms like LeetCode.
- Understand time and space complexity analysis.
- Be able to explain your code clearly.

## Round 2: System Design and Architecture
**Type:** System Design Interview · **Difficulty:** Hard · **Duration:** 60 min
Assess system design and architectural capabilities.
This round evaluates your ability to design and architect software systems. You will be presented with a high-level problem and asked to design a solution, considering factors like scalability, performance, reliability, and cost. This often involves discussing database choices, API design, caching strategies, and load balancing.
**Interviewers look for:** Ability to design scalable and reliable systems; Understanding of distributed systems concepts; Pragmatic approach to problem-solving
**Evaluation criteria:** Scalability of the proposed design; Robustness and fault tolerance; Choice of appropriate technologies; Trade-off analysis and justification
**Common rejection reasons:** Lack of understanding of system design principles.; Inability to handle scale and performance considerations.; Poor trade-off analysis.
## Questions

- Design a URL shortening service like Bitly.
- Design a news feed system for a social media platform.

## Preparation tips

- Study system design concepts (e.g., from 'Grokking the System Design Interview').
- Understand trade-offs between different architectural choices.
- Practice designing common systems.

## Round 3: Managerial Round
**Type:** Behavioral Interview · **Difficulty:** Medium · **Duration:** 45 min
Assess behavioral traits and cultural fit.
This round focuses on your behavioral aspects and cultural fit. You will be asked questions about your past experiences, how you handle challenges, your strengths and weaknesses, and your career aspirations. The goal is to understand how you work in a team and if you align with Persistent Systems' values.
**Interviewers look for:** Good communication and interpersonal skills; Ability to work in a team; Proactiveness and ownership; Alignment with company values
**Evaluation criteria:** Communication clarity and effectiveness; Teamwork and collaboration skills; Problem-solving approach in past experiences; Cultural alignment with Persistent Systems
**Common rejection reasons:** Poor communication skills.; Lack of self-awareness.; Inability to provide specific examples.; Mismatch with company culture.
## Questions

- Tell me about a time you had to deal with a difficult colleague.
- Describe a project where you took initiative and what was the outcome.
- What are your career goals for the next 3-5 years?

## Preparation tips

- Prepare answers using the STAR method.
- Be honest and authentic.
- Research Persistent Systems' values and culture.
- Prepare thoughtful questions to ask the interviewer.
