1p3a Question · Oct 2025

Veeva Software Engineer Tech Phone Screen Interview Experience

SWE Phone Screen
1 reply

Question Details

Just finished my Veeva phone interview and wanted to share the information with everyone. The interview consisted of two parts: behavioral questions (BQ) and Coderpad. Overall, it went okay; the manag

Full Details

Just finished my Veeva phone interview and wanted to share the information with everyone. The interview consisted of two parts: behavioral questions (BQ) and Coderpad. Overall, it went okay; the manager was quite friendly. Below are the details. I'd appreciate it if you could share some points so I can look at other interviews! I don't have enough points to read posts right now, so I'm only preparing by looking at LeetCode, which feels very vague. The following content requires a score of 180 or higher. You can already view it. The first part was behavioral questions, mainly about the projects on my resume. I was asked to choose one and talk about its technical challenge, then my programming language preference (since they use pure Java), and whether I had any mentorship experience. The second part is CoderPad. Unlike traditional code that provides problems, this part provides a code snippet and a requirement. This requirement describes the code, not gives it to you. Your task is to review the code, gather feedback, and then explain how you would implement the requirement. Below is the complete code and requirement: We are a small inn that sells different items. Items degrade in quality each day. The details are: - All items have a SellIn value, which denotes the number of days we have to sell the item. - All items have a Quality value, which denotes how valuable the item is. - At the end of each day, our system lowers both values for every item. - Once the sell-by date has passed, Quality degrades twice as fast. - "Aged Brie" actually increases in Quality the older it gets. - The Quality of an item is never negative or more than 50. - "Sulfuras" is a legendary item that never has to be sold and will always have a Quality of 80. java.util.; import org.junit.; import org.junit.runner.*; class Inn { Item[] items; public Inn(Item[] items) { this.items = items; } public void updateQuality() { for (int i = 0; i < items.length; i++) { if (!items[i].name.equals("Aged Brie")) { if (items[i].quality > 0) { if (!items[i].name.equals("Sulfuras")) { items[i].quality = items[i].quality - 1; } } } else { if (items[i].quality < 50) { items[i].quality = items[i].quality + 1; } } if (!items[i].name.equals("Sulfuras")) { items[i].sellIn = items[i].sellIn - 1; } if (items[i].sellIn < 0) { if (!items[i].name.equals("Aged Brie")) { if (items[i].quality > 0) { if (!items[i].name.equals("Sulfuras")) { items[i].quality = items[i].quality - 1; } } } else { if (items[i].quality < 50) { items[i].quality = items[i].quality + 1; } } } } } } abstract class Item { public String name; public int sellIn; public int quality; public Item(String name, int sellIn, int quality) { this.name = name; this.sellIn = sellIn; this.quality = quality; } @Override public String toString() { return this.name + ", " + this.sellIn + ", " + this.quality; } abstract void update(); } public class Solution { // Unit test static void foo() { Item[] items = new Item[] { new Item("foo", 0, 0) }; Inn app = new Inn(items); app.updateQuality(); Assert.assertEquals("foo", app.items[0].name); } public static void main(String[] args){ foo(); System.out.println("Done!"); } } I hope this content is helpful to my friends here. I'm asking for rice again 🙏

Free preview. Unlock all questions →

Topics

Strings