synopsys logo

Synopsys Interviews

2 experiences5 reads15 questions50% success rate
Synopsys R&D Engineer L1 Interview Experience
synopsys logo
Synopsys
R&D Engineer L1Offer
June 3, 20243 reads

Summary

I interviewed for an R&D Engineer L1 position at Synopsys, which involved three technical rounds focusing on DSA, system design, and advanced OOP concepts, followed by an HR round. I successfully received an offer.

Full Experience

My interview journey for the R&D Engineering role at Synopsys began with an initial online assessment, followed by three technical rounds and a final HR round. I'm a fresher with a BE in ETCE from a Tier 1 college.

Technical Round I

The first technical round was conducted by a mid-senior level employee and lasted about an hour. After a brief introduction, the interviewer presented two DSA questions. The first was a medium-level dynamic programming problem, a twisted variation of the classic coin change problem. I initially explained a brute-force recursive approach and then optimized it, coding the solution and performing a dry run. The second DSA question involved a binary tree problem, which was quite similar to the "Amount of Time to Infect a Binary Tree" problem on LeetCode. I described my approach, wrote the complete code, and executed a dry run with sample test cases. Additionally, I was asked several OOP questions, specifically whether a constructor or a destructor can be virtual, and was required to explain the reasoning behind my answers. The round concluded with a puzzle.

Technical Round II

Approximately an hour and a half, the second technical round was led by a senior-level engineer. After a self-introduction and a brief discussion about my first round experience, I was surprised with a real-life design problem instead of a typical algorithmic question. This problem focused on optimizing the declaration of a variable across several nested function calls to ensure maximum efficiency in terms of accessibility and performance. Despite initial nervousness, I gathered my thoughts and analyzed the problem. The interviewer asked for my chosen data structure and the rationale. I deduced that an n-ary tree could represent the situation, with each function call as a node. After detailing my approach, I coded the solution, demonstrating efficient variable declaration. Following this, I tackled a medium-level linked list question by explaining my approach and coding the solution. This round also ended with a logical puzzle.

Technical Round III

A week after the second round, I had my third technical interview, lasting about an hour and conducted by another senior-level engineer. It began with a self-introduction. The interviewer then delved deep into Object-Oriented Programming (OOP) concepts. I was asked to describe the four pillars of OOP—encapsulation, abstraction, inheritance, and polymorphism—providing suitable code examples for each. We then moved to more advanced topics such as the virtual table (vtable), the diamond problem, and complex questions on runtime polymorphism, which really tested my understanding and application. Later, a design-based problem was presented: a scenario about a 2010 survey on infected and healthy people. The challenge was to track changes over the years, given infection spread through acquaintances, and to identify the most appropriate data structure. I suggested using a graph to model the relationships and infection spread, explained my logic, and then coded the solution.

HR Interview

The final round was an HR interview, which took place after the third technical round. This interview primarily assessed my soft skills, cultural fit, and overall suitability for the R&D Engineering role within Synopsys.

Verdict: Selected

Interview Questions (6)

Q1
Twisted Coin Change Variation
Data Structures & AlgorithmsMedium

I was asked a medium-level dynamic programming problem, described as a twisted variation of the classic coin change problem. I first explained a brute-force recursive approach and was then asked to optimize it. I proceeded to code the solution in a compiler and performed a dry run to demonstrate its functionality.

Q2
Time to Infect Binary Tree (Variation)
Data Structures & Algorithms

I was given a binary tree problem, which was similar to the LeetCode problem 'Amount of Time to Infect a Binary Tree'. I described my approach, wrote the complete code, and executed a dry run with provided sample test cases.

Q3
Virtual Constructor and Destructor
Other

I was asked several Object-Oriented Programming (OOP) questions, specifically: Can a constructor be virtual? Can a destructor be virtual? I had to explain the reasoning behind my answers for both.

Q4
Optimize Variable Declaration in Nested Functions
System Design

I was presented with a real-life design problem focused on optimizing the declaration of a variable used across several nested function calls. The goal was to place the variable in the most efficient location for both accessibility and performance. I was asked which data structure would be most appropriate and encouraged to explain my logic. I deduced that the situation could be represented using an n-ary tree, where each function call acted as a node, allowing me to track variable scope and dependencies.

Q5
OOP Pillars, VTable, and Diamond Problem
Other

I was asked to describe the four pillars of Object-Oriented Programming (OOP)—encapsulation, abstraction, inheritance, and polymorphism—and provide suitable code examples for each. The interviewer then delved into more advanced OOP topics, including the virtual table (vtable), the diamond problem, and complex questions related to runtime polymorphism, challenging my understanding and application of these concepts.

Q6
Infection Spread Modeling with Graph
System Design

I was presented with a design-based problem: a 2010 survey collected data on infected and healthy individuals. The challenge was to track how many people remained healthy and how many became infected over the years, given that infected individuals could transmit the infection to their acquaintances. I had to identify the most appropriate data structure for this problem.

Synopsys Internship interview experience for On-campus hiring
synopsys logo
Synopsys
QA TestingOngoing
March 26, 20222 reads

Summary

I interviewed for a QA Testing Internship at Synopsys as part of their on-campus hiring program. The process included a resume review, a Codility coding test, and two technical interviews covering data structures, algorithms, Java OOPs, and testing concepts.

Full Experience

My interview experience for a QA Testing Internship at Synopsys, through their on-campus hiring, was structured into four distinct steps.

Step 1: Resume-based Selection

The initial phase involved a resume-based shortlisting, where my profile was evaluated.

Step 2: Coding Test on Codility

Following the resume selection, I proceeded to a coding test on the Codility platform. This test consisted of two main parts: ten multiple-choice questions focusing on Java, and one specific coding challenge. The coding problem was based on hashmaps, titled "Minimum Number of Steps to Make Two Strings Anagram".

Step 3: Technical Interview 1

My first technical interview started with a standard introduction. The interviewer then presented a coding question:

  • Input: “12abc345def67ghi”
  • Output: “12cba345fed67ihg”

We discussed the optimal solution in detail, covering its time complexity and various corner cases. My approach was verified through a dry run. Afterwards, we transitioned to theoretical questions:

  • Questions on the types of Inheritance in Java.
  • An in-depth discussion about my Machine Learning project that was listed on my resume.
  • Several Operating System questions were also posed.

Step 4: Technical Interview 2

The final technical interview involved two interviewers. After our introductions, the discussion focused heavily on core Java and testing principles:

  • I was asked to explain OOPS Concepts and the different types of polymorphism.
  • I had to code examples demonstrating function overloading and overriding, explaining how these mechanisms are handled.
  • We discussed the specific uses and differences between the super and this keywords in Java.
  • The interviewers inquired about my understanding of testing and how I applied it in my Android application project.
  • Questions about CI/CD (Continuous Integration/Continuous Delivery) and the IDEs commonly used for testing were also covered.
  • Finally, the concept of pipelines in testing was discussed.

I appreciate the opportunity to have gone through this interview process.

Interview Questions (9)

Q1
Minimum Number of Steps to Make Two Strings Anagram
Data Structures & AlgorithmsMedium

Given two strings s and t of the same length, your task is to find the minimum number of steps to make t an anagram of s. A step is to choose any character of t and replace it with another character.

Q2
Reverse Alphanumeric Parts of a String
Data Structures & AlgorithmsMedium

Given an input string like '12abc345def67ghi', reverse only the alphabetic substrings while keeping numeric parts and their positions intact. For example, '12abc345fed67ihg'.

Q3
Types of Inheritance in Java
Other

Explain the different types of inheritance supported in Java.

Q4
OOPS Concepts and Polymorphism
Other

Explain the core OOPS (Object-Oriented Programming System) concepts and describe the various types of polymorphism.

Q5
Function Overloading and Overriding Implementation
Other

Write code demonstrating function overloading and overriding in Java. Explain how these concepts are handled in the language.

Q6
super and this keywords in Java
Other

Explain the purpose and usage of super and this keywords in Java.

Q7
Testing in Android Application Project
Other

What is testing, and how did you apply testing methodologies in your Android application project?

Q8
CI/CD and IDEs for Testing
Other

Explain what CI/CD (Continuous Integration/Continuous Delivery) is and list some IDEs commonly used for testing.

Q9
Pipelines in Testing
Other

What is the concept of pipelines in the context of software testing?

Have a Synopsys Interview Experience to Share?

Help other candidates by sharing your interview experience. Your insights could make the difference for someone preparing for their dream job at Synopsys.