was a long and interesting process, it contains four interviews, it was a difficult process but a beneficial one, for each interview I learned a lot.
in the last interview
The first two interviews focused on writing a driver for a specific protocol provided during the session, followed by several iterations of refining the protocol and adapting the driver accordingly. The third interview covered a basic programming question, some fundamental questions about coverage — its purpose, the difference between code coverage and functional coverage — and designing a simple configurable shifter module in Verilog. The final interview was behavioral, centering on how I handled various situations in the workplace.
I applied online. The process took 1 day. I interviewed at Google (Bengaluru) in Jul 2025
Interview
Round 0 – Resume Screening: I optimized my resume using ATS tools like ResumeWorded, aligning keywords with the job description and quantifying impact (e.g., “Improved functional coverage by 30% using constraint randomization”).
Round 1 – SystemVerilog Fundamentals: Covered arrays, IPC, fork-join, OOP (inheritance, polymorphism), constraints (weighted, implication), and assertions. Emphasis was on explaining concepts clearly and debugging edge cases.
Round 2 – UVM Concepts: Focused on class hierarchy, factory methods, config_db vs resource_db, and RAL integration. I demonstrated how I build modular, reusable testbenches using UVM phases and configuration techniques.
Round 3 – Problem Solving & Debugging: Included designing and verifying FIFO and protocol-based modules. I debugged failing simulations using waveform analysis and refined coverage goals using targeted sequences.
Interview questions [1]
Question 1
How would you debug a failing simulation where coverage is not met?