Veterans United Home Loans logo

Veterans United Home Loans Software Engineer Interview Questions
& Process

Real candidates share what happened, how many rounds they had,
and how the experience turned out.

Based on 21 interview experiences · FREE TO READ

2.6 Rounds average
Average Typical difficulty
42.9% Positive experience

Candidate interview experiences

First-hand accounts from people who interviewed at Veterans United Home Loans.

Showing 3 of 21
Veterans United Home Loans logo
Veterans United Home Loans

Software Engineer

Engineering · nearly a year ago

Senior Average Negative experience No offer 3 rounds
Interview process
Recruiter call Technical screen Take home
Interview formats
Coding Technical

The interview process felt like a bait-and-switch. I was expecting a deep dive into tech and culture based on their materials, but it was very impersonal and brief. After a five-minute intro, I faced a coding test. They use a Shopping Cart TDD challenge as a filter, which seems more about following their exact, rigid steps than about real problem-solving or writing good code. It felt like my extensive experience was dismissed because I didn't follow their arbitrary TDD process perfectly. They told me to 'review fundamentals' after a short interaction, which was insulting given my national recognition as a software engineer, especially for a company that claims to support veterans. A major red flag was that the job posting disappeared from their site mid-process, making me wonder if they had fake roles or had already hired someone internally. The hiring team seemed more focused on a TDD 'dance' than on actual software architecture and building skills. My advice to management is to stop using superficial tests for senior talent and to respect the time and experience of the experts you bring in, especially if you claim to value 'Winning Together.'

Confirmed questions7 questions
  • Here is all a qualified programmer is gonna need to study using System; using System.Collections.Generic; using System.Collections.ObjectModel; using Xunit; // --- DOMAIN MODELS --- public record Item(string Name, decimal Price); public class ShoppingCart { private readonly List _items = new(); // Exposing as IReadOnlyCollection prevents external modification of the list // and demonstrates a "Senior" understanding of encapsulation. public IReadOnlyCollection Items => _items.AsReadOnly(); public int ItemCount => _items.Count; public void AddItem(Item item) { // Defensive check: A "perfect" solution handles nulls immediately. ArgumentNullException.ThrowIfNull(item); _items.Add(item); } public void RemoveItem(Item item) { // Simple removal logic. In a real-world scenario, you might // handle cases where the item isn't in the list, but for // a TDD "fundamentals" test, this is the expected behavior. _items.Remove(item); } public decimal GetTotal() { decimal total = 0; foreach (var item in _items) { total += item.Price; } return total; } } // --- UNIT TESTS --- // These tests represent the exact "Red-Green-Refactor" steps an interviewer // watches for. They are written to be as granular as possible. public class ShoppingCartTests { [Fact] public void NewCart_ShouldBeEmpty() { // Step 1: Prove the initial state is correct. var cart = new ShoppingCart(); Assert.Equal(0, cart.ItemCount); Assert.Empty(cart.Items); } [Fact] public void AddItem_ShouldIncreaseCountAndStoreItem() { // Step 2: Test the adding behavior. var cart = new ShoppingCart(); var item = new Item("Unit Test Book", 29.99m); cart.AddItem(item); Assert.Equal(1, cart.ItemCount); Assert.Contains(item, cart.Items); } [Fact] public void AddItem_ShouldThrowException_WhenItemIsNull() { // Step 3: Edge case testing (shows attention to detail). var cart = new ShoppingCart(); Assert.Throws(() => cart.AddItem(null!)); } [Fact] public void RemoveItem_ShouldDecreaseCount() { // Step 4: Test the removal behavior. var cart = new ShoppingCart(); var item = new Item("Console", 499.99m); cart.AddItem(item); cart.RemoveItem(item); Assert.Equal(0, cart.ItemCount); Assert.DoesNotContain(item, cart.Items); } [Fact] public void GetTotal_ShouldCalculateSumOfAllItems() { // Step 5: Final logic verification (calculating totals). var cart = new ShoppingCart(); cart.AddItem(new Item("Item A", 10.00m)); cart.AddItem(new Item("Item B", 15.50m)); var total = cart.GetTotal(); Assert.Equal(25.50m, total); } }
  • Here is all a qualified programmer is gonna need to study using System; using System.Collections.Generic; using System.Collections.ObjectModel; using Xunit; // --- DOMAIN MODELS --- public record Item(string Name, decimal Price); public class ShoppingCart { private readonly List _items = new(); // Exposing as IReadOnlyCollection prevents external modification of the list // and demonstrates a "Senior" understanding of encapsulation. public IReadOnlyCollection Items => _items.AsReadOnly(); public int ItemCount => _items.Count; public void AddItem(Item item) { // Defensive check: A "perfect" solution handles nulls immediately. ArgumentNullException.ThrowIfNull(item); _items.Add(item); } public void RemoveItem(Item item) { // Simple removal logic. In a real-world scenario, you might // handle cases where the item isn't in the list, but for // a TDD "fundamentals" test, this is the expected behavior. _items.Remove(item); } public decimal GetTotal() { decimal total = 0; foreach (var item in _items) { total += item.Price; } return total; } } // --- UNIT TESTS --- // These tests represent the exact "Red-Green-Refactor" steps an interviewer // watches for. They are written to be as granular as possible. public class ShoppingCartTests { [Fact] public void NewCart_ShouldBeEmpty() { // Step 1: Prove the initial state is correct. var cart = new ShoppingCart(); Assert.Equal(0, cart.ItemCount); Assert.Empty(cart.Items); } [Fact] public void AddItem_ShouldIncreaseCountAndStoreItem() { // Step 2: Test the adding behavior. var cart = new ShoppingCart(); var item = new Item("Unit Test Book", 29.99m); cart.AddItem(item); Assert.Equal(1, cart.ItemCount); Assert.Contains(item, cart.Items); } [Fact] public void AddItem_ShouldThrowException_WhenItemIsNull() { // Step 3: Edge case testing (shows attention to detail). var cart = new ShoppingCart(); Assert.Throws(() => cart.AddItem(null!)); } [Fact] public void RemoveItem_ShouldDecreaseCount() { // Step 4: Test the removal behavior. var cart = new ShoppingCart(); var item = new Item("Console", 499.99m); cart.AddItem(item); cart.RemoveItem(item); Assert.Equal(0, cart.ItemCount); Assert.DoesNotContain(item, cart.Items); } [Fact] public void GetTotal_ShouldCalculateSumOfAllItems() { // Step 5: Final logic verification (calculating totals). var cart = new ShoppingCart(); cart.AddItem(new Item("Item A", 10.00m)); cart.AddItem(new Item("Item B", 15.50m)); var total = cart.GetTotal(); Assert.Equal(25.50m, total); } }
  • Here is all a qualified programmer is gonna need to study using System; using System.Collections.Generic; using System.Collections.ObjectModel; using Xunit; // --- DOMAIN MODELS --- public record Item(string Name, decimal Price); public class ShoppingCart { private readonly List _items = new(); // Exposing as IReadOnlyCollection prevents external modification of the list // and demonstrates a "Senior" understanding of encapsulation. public IReadOnlyCollection Items => _items.AsReadOnly(); public int ItemCount => _items.Count; public void AddItem(Item item) { // Defensive check: A "perfect" solution handles nulls immediately. ArgumentNullException.ThrowIfNull(item); _items.Add(item); } public void RemoveItem(Item item) { // Simple removal logic. In a real-world scenario, you might // handle cases where the item isn't in the list, but for // a TDD "fundamentals" test, this is the expected behavior. _items.Remove(item); } public decimal GetTotal() { decimal total = 0; foreach (var item in _items) { total += item.Price; } return total; } } // --- UNIT TESTS --- // These tests represent the exact "Red-Green-Refactor" steps an interviewer // watches for. They are written to be as granular as possible. public class ShoppingCartTests { [Fact] public void NewCart_ShouldBeEmpty() { // Step 1: Prove the initial state is correct. var cart = new ShoppingCart(); Assert.Equal(0, cart.ItemCount); Assert.Empty(cart.Items); } [Fact] public void AddItem_ShouldIncreaseCountAndStoreItem() { // Step 2: Test the adding behavior. var cart = new ShoppingCart(); var item = new Item("Unit Test Book", 29.99m); cart.AddItem(item); Assert.Equal(1, cart.ItemCount); Assert.Contains(item, cart.Items); } [Fact] public void AddItem_ShouldThrowException_WhenItemIsNull() { // Step 3: Edge case testing (shows attention to detail). var cart = new ShoppingCart(); Assert.Throws(() => cart.AddItem(null!)); } [Fact] public void RemoveItem_ShouldDecreaseCount() { // Step 4: Test the removal behavior. var cart = new ShoppingCart(); var item = new Item("Console", 499.99m); cart.AddItem(item); cart.RemoveItem(item); Assert.Equal(0, cart.ItemCount); Assert.DoesNotContain(item, cart.Items); } [Fact] public void GetTotal_ShouldCalculateSumOfAllItems() { // Step 5: Final logic verification (calculating totals). var cart = new ShoppingCart(); cart.AddItem(new Item("Item A", 10.00m)); cart.AddItem(new Item("Item B", 15.50m)); var total = cart.GetTotal(); Assert.Equal(25.50m, total); } }
Veterans United Home Loans logo
Veterans United Home Loans

Software Engineer

Engineering · nearly a year ago

Entry Easy Negative experience No offer 2 rounds
Interview process
Take home Recruiter call
Interview formats
Technical

They make you take their test before ever looking at your resume. Even if you do well, they will still send you an automated rejection. Don't waste your time. Spend it on companies that actually read your resume before taking an exam. I took their IQ test. I was in contact with the team and they said they couldn't give me my exact score but told me that I did great and they would be in contact with the next step in the interview process. The following week, I received a generic thanks but no thanks email. I really wish they would have looked at my resume BEFORE having me take the exam.

Confirmed questions1 question
  • They use a generic timed IQ test.
Veterans United Home Loans logo
Veterans United Home Loans

Software Engineer

Engineering · a year ago

Intern Difficult Positive experience Accept offer 3 rounds
Interview process
Recruiter call Technical screen Take home
Interview formats
Coding Technical Behavioral

The interview process was really smooth and quick. They communicated clearly, and each step was easy to understand and get ready for. Make sure to connect with your interviewers and do your homework. There was an online technical assessment that was graded on how fast the code ran and if it worked correctly (it had to pass several test cases, some of which weren't shown as examples). The technical interview was pretty much pair programming, so definitely talk through your thinking for the problem.

Confirmed questions2 questions
  • Can you elaborate on specific sections of your resume?
  • Which parts of your resume do you want to focus on?

Veterans United Home Loans Software Engineer Interview Questions

Quoted word for word from Veterans United Home Loans interview reports.

Can you find a number in the range 0 to n that ends in zero?

Read reports

Could you define a Using Block and explain its purpose?

Read report

Can you explain the difference between a promise and an observable in Angular?

Read report

What salary would make you happy as we really don't negotiate?

Read report

Formats, difficulty and experience

Across all 21 Veterans United Home Loans interview reports.

Interview formats

Coding 35.8%
Technical 30.2%
Behavioral 24.5%
Other 3.8%
Group 1.9%

Interview difficulty

Easy 19%
Average 61.9%
Difficult 19%

Candidate experience

Neutral 33.3%
Positive 42.9%
Negative 23.8%