Tide SSE 6 YOE Reject Q4 2025
- Experience
- 6 years
- Posted
- 12 Jan 2026
Summary
I interviewed at Tide for an SSE role, which included a code review round. Unfortunately, I was rejected after this experience.
How it went
R1
Code review round. Review the code for 30 minutes, add comments in the same google doc. Discuss the top 5 issues.
import org.slf4j.Logger:
import org.slf4j.LoggerFactory:
import org.springframework.beans.factory.annotation.Antowired:
/**
Creating a new version of the borrowing functionality that registers the loan in a 3rd party Loan Management System (wrapped in feign client service). Since we get a lot of errors from the 3rd party I've added a functionality to let our staff move the money on behalf of the user if they give us a call that something's not working properly!!! */
eRequestMapping("/v3/accounts/")
@RestController
public class LoanV3Controller (
@Autowired
public AccountService accountService:
@Autowired
public LoanManagement Service externalLMS:
I
public static final Logger logger = LoggerFactory.getLogger(LoanV3Controller.class):
@PutMapping (value = "/new/taccountId}/v2/loans/borrow")
public void borrowMoney (@PathVariable String accountId
@RequestParam boolean isAdminAgent @RequestParam double loanAmount @Request Param String sourceAccountId) {
// for admins we don't need to check the ownership
if (!isAdminAgent) {
Account acc = accountService.getAccount (accountId)
if (acc.getOwner () != AuthContext.getCurrentUserID()) {
throw new InternalServerError();
}
}
// make sure the user is allowed to borrow this amount
if (loanAmount < externalLMS.getCreditLimit (accountId)) {
Account sourceAccount accountService.getAccount (sourceAccountId); Account destinationAccount = accountService.getAccount (accountId);
Optional.ofNullable = (sourceAccount).orElseThrow();
double balance = sourceAccount.getBalance();
if (balance > loanAmount) (
accountService. disburse (sourceAccount, destinationAccount, loanAmount);
externalLMS.registerLoan (
String.valueOf(new Random().nextInt(1000000)), loanAmount,
AuthContext.getCurrentUserID ());
else {
throw new InternalServerError();
}
}
}
Questions asked (1)
- 01
Code Review: Loan Management System V3 Controller
Other
I was asked to perform a code review on the provided Java code for a
LoanV3Controller. The task was to review the code for 30 minutes, add comments in a Google Doc, and then discuss the top 5 issues I found.import org.slf4j.Logger: import org.slf4j.LoggerFactory: import org.springframework.beans.factory.annotation.Antowired: /** Creating a new version of the borrowing functionality that registers the loan in a 3rd party Loan Management System (wrapped in feign client service). Since we get a lot of errors from the 3rd party I've added a functionality to let our staff move the money on behalf of the user if they give us a call that something's not working properly!!! */ eRequestMapping("/v3/accounts/") @RestController public class LoanV3Controller ( @Autowired public AccountService accountService: @Autowired public LoanManagement Service externalLMS: I public static final Logger logger = LoggerFactory.getLogger(LoanV3Controller.class): @PutMapping (value = "/new/taccountId}/v2/loans/borrow") public void borrowMoney (@PathVariable String accountId @RequestParam boolean isAdminAgent @RequestParam double loanAmount @Request Param String sourceAccountId) { // for admins we don't need to check the ownership if (!isAdminAgent) { Account acc = accountService.getAccount (accountId) if (acc.getOwner () != AuthContext.getCurrentUserID()) { throw new InternalServerError(); } } // make sure the user is allowed to borrow this amount if (loanAmount < externalLMS.getCreditLimit (accountId)) { Account sourceAccount accountService.getAccount (sourceAccountId); Account destinationAccount = accountService.getAccount (accountId); Optional.ofNullable = (sourceAccount).orElseThrow(); double balance = sourceAccount.getBalance(); if (balance > loanAmount) ( accountService. disburse (sourceAccount, destinationAccount, loanAmount); externalLMS.registerLoan ( String.valueOf(new Random().nextInt(1000000)), loanAmount, AuthContext.getCurrentUserID ()); else { throw new InternalServerError(); } } }