# Senior Solidity Interview Questions ## Candidate's Experience - What are some of the most important things you learnt at your last job? - Can you think of a really challenging problem you've faced as a Solidity Dev? Can you talk us through it and how you solved it? - How much teamwork did your previous work involve? Talk about the team dynamic and how people collaborated on a project. - Describe a crisis (preferably involving Solidity code) that you've had to overcome. How well do you feel like you handled it? In retrospect, what would you do better if you could redo it? - How do you upskill yourself in Solidity or smart contracts? ## DeFi - List your favourite DeFi protocols, and give a reason why you like each one. - What is impermanent loss? - Can you give 2 examples of different staking mechanisms in DeFi? Explain the economic implications of those differences. - What is a rebasing token? Can you give an example and explain how the rebasing works? - Can you explain some of the differences between Uniswap V2 and Uniswap V3? (poke at capital efficiency and the NFT LP Token trade-off) ## Advanced Solidity Mechanisms - Can you explain how Permit works in ERC20 tokens? - Have you ever used a Merkle tree or Merkle proof in a smart contract? Can you explain how that was implemented? - Can you explain how Upgradable Proxy contracts work? (Follow up: diff between call vs delegatecall) ## Ethereum and MEV - What is the block gas limit? Why is it relevant when building smart contracts? - Do you know what MEV is? Can you give an example of MEV and explain how it is executed? - Can you think of anything that can be added to smart contracts to prevent MEV? ## EVM and Gas Optimization - Flex some obscure smart contract knowledge. - Can you give us a few gas optimization techniques you use when writing contracts? - What does the unchecked keyword in Solidity do? e.g. `a = b - c` vs `unchecked {a = b - c}` ## Security - Can you explain reentrancy? - Have you used any security tools, services, or software for smart contracts before? Which ones are you aware of? - What security checks do you perform before deploying? What kind of test coverage do your contracts traditionally have? - What resources do you use to keep up to date with security practices and hacks in crypto?