Square software engineer interviews cover algorithms, data structures, system design, and coding problems drawn from real interview rounds.
No verified questions yet for Square.
send_notification(user_id: str, message: str, notification_type: str) -> bool set_preferences(user_id: str, preferences: dict) -> None get_status(notification_id: str) -> dict flush_queue() -> None send_notification('userA', 'Your payment was successful!', 'email') → Output: True → Explanation: The notification is queued successfully.Example 2: set_preferences('userA', {'email': False, 'SMS': True}) → Output: None → Explanation: User preferences are updated without error.Constraints: add_payment_method(method: str) -> None: Adds a new payment method to be supported.process_payment(transaction_id: str, amount: float, method: str) -> str: Processes a payment and returns the transaction status.get_transaction_status(transaction_id: str) -> str: Retrieves the status of a given transaction.get_transaction_history() -> List[Dict[str, Any]]: Returns a list of all transactions.add_payment_method("Credit Card") → Output: None → Explanation: Adds "Credit Card" as a valid payment method.process_payment("txn_123", 100.00, "Credit Card") → Output: "Success" → Explanation: Processes a payment for 100.00 using the credit card method.class BankAccount: - represents an individual user account.def __init__(self, account_id: str, initial_balance: float) -> None: - initializes a new account with a unique ID and balance.def deposit(self, amount: float) -> str: - deposits a specified amount into the account.def withdraw(self, amount: float) -> str: - withdraws a specified amount from the account.def get_balance(self) -> float: - returns the current balance of the account.Example 1:account = BankAccount('12345', 100.0); account.deposit(50.0); account.withdraw(30.0)account.get_balance() → 120.0account = BankAccount('67890', 200.0); account.withdraw(250.0)account.get_balance() → 200.0account_id must be a unique string.initial_balance must be a non-negative float.amount for deposits and withdrawals must be a positive float.class User: Represents a bank user.def __init__(self, user_id: str, name: str) -> None: Initializes a new user with ID and name.def deposit(self, amount: float) -> None: Deposits a specified amount into the user's account.def withdraw(self, amount: float) -> None: Withdraws a specified amount from the user's account.class Transaction: Represents a transaction in the banking system.def __init__(self, user_id: str, amount: float, type: str) -> None: Initializes a new transaction with user ID, amount, and type (deposit/withdraw).class Bank: Main class for interaction.def create_user(self, name: str) -> User: Creates a new user.def transfer(self, from_user: User, to_user: User, amount: float) -> None: Transfers funding between users.Example 1:Sign up for free to access walkthroughs, AI-generated questions, and more.
Get Started Free