Skip to main content

Data Engineer Interview Questions

Review this list of 154 Data Engineer interview questions and answers verified by hiring managers and candidates.
  • "Firstly, congratulations to both the interviewer and interviewee. This was a great learning experience However, being a Full Stack engineer and I was having the following suggestions around the Data Model - Driver & Approval can be two different tables Approval & Document - Approval can be a tuple of (userid,documentid) - comments against a rejection (marks the document which triggers rejection)In this way we can capture the entire history of approval workflow (initiate/pending/appr"

    Nilanjan D. - "Firstly, congratulations to both the interviewer and interviewee. This was a great learning experience However, being a Full Stack engineer and I was having the following suggestions around the Data Model - Driver & Approval can be two different tables Approval & Document - Approval can be a tuple of (userid,documentid) - comments against a rejection (marks the document which triggers rejection)In this way we can capture the entire history of approval workflow (initiate/pending/appr"See full answer

    Data Engineer
    Data Modeling
  • Adobe logoAsked at Adobe 
    +46

    "from typing import List def two_sum(nums: List[int], target: int) -> List[int]: prevMap = {} for i, n in enumerate(nums): diff = target - n if diff in prevMap: return [prevMap[diff], i] else: prevMap[n] = i return [] debug your code below print(two_sum([2, 7, 11, 15], 9)) `"

    Anonymous Roadrunner - "from typing import List def two_sum(nums: List[int], target: int) -> List[int]: prevMap = {} for i, n in enumerate(nums): diff = target - n if diff in prevMap: return [prevMap[diff], i] else: prevMap[n] = i return [] debug your code below print(two_sum([2, 7, 11, 15], 9)) `"See full answer

    Data Engineer
    Data Structures & Algorithms
    +5 more
  • Adobe logoAsked at Adobe 
    Video answer for 'Given an nxn grid of 1s and 0s, return the number of islands in the input.'
    +14

    " from typing import List def getnumberof_islands(binaryMatrix: List[List[int]]) -> int: if not binaryMatrix: return 0 rows = len(binaryMatrix) cols = len(binaryMatrix[0]) islands = 0 for r in range(rows): for c in range(cols): if binaryMatrixr == 1: islands += 1 dfs(binaryMatrix, r, c) return islands def dfs(grid, r, c): if ( r = len(grid) "

    Rick E. - " from typing import List def getnumberof_islands(binaryMatrix: List[List[int]]) -> int: if not binaryMatrix: return 0 rows = len(binaryMatrix) cols = len(binaryMatrix[0]) islands = 0 for r in range(rows): for c in range(cols): if binaryMatrixr == 1: islands += 1 dfs(binaryMatrix, r, c) return islands def dfs(grid, r, c): if ( r = len(grid) "See full answer

    Data Engineer
    Data Structures & Algorithms
    +4 more
  • Adobe logoAsked at Adobe 
    Video answer for 'Find a triplet in an array with a given sum.'
    +14

    " import java.util.*; class Solution { // Time Complexity: O(n^2) // Space Complexity: O(n) public static List> threeSum(int[] nums) { // Ensure that the array is sorted first Arrays.sort(nums); // Create the results list to return List> results = new ArrayList(); // Iterate over the length of nums for (int i = 0; i < nums.length-2; i++) { // We will have the first number in"

    Victor O. - " import java.util.*; class Solution { // Time Complexity: O(n^2) // Space Complexity: O(n) public static List> threeSum(int[] nums) { // Ensure that the array is sorted first Arrays.sort(nums); // Create the results list to return List> results = new ArrayList(); // Iterate over the length of nums for (int i = 0; i < nums.length-2; i++) { // We will have the first number in"See full answer

    Data Engineer
    Data Structures & Algorithms
    +3 more
  • +10

    " select user_id, b.marketing_channel from user_sessions a Left join attribution b on b.sessionid = a.sessionid group by 1,2 HAVING sum(purchasevalue)>100 and min(adclick_timestamp) `"

    G B. - " select user_id, b.marketing_channel from user_sessions a Left join attribution b on b.sessionid = a.sessionid group by 1,2 HAVING sum(purchasevalue)>100 and min(adclick_timestamp) `"See full answer

    Data Engineer
    Coding
    +3 more
  • 🧠 Want an expert answer to a question? Saving questions lets us know what content to make next.

  • Data Engineer
    Data Pipeline Design
  • Adobe logoAsked at Adobe 
    +8

    "from typing import List def find_primes(n: int) -> List[int]: if n < 2: # Handle edge cases explicitly return [] Initialize a boolean list to track primality is_prime = [True] * (n + 1) isprime[0] = isprime[1] = False # 0 and 1 are not primes p = 2 while p * p <= n: # Loop until sqrt(n) if is_prime[p]: # Only process if 'p' is still marked as prime Mark multiples of p as non-prime for multiple in range(p * p,"

    Anonymous Roadrunner - "from typing import List def find_primes(n: int) -> List[int]: if n < 2: # Handle edge cases explicitly return [] Initialize a boolean list to track primality is_prime = [True] * (n + 1) isprime[0] = isprime[1] = False # 0 and 1 are not primes p = 2 while p * p <= n: # Loop until sqrt(n) if is_prime[p]: # Only process if 'p' is still marked as prime Mark multiples of p as non-prime for multiple in range(p * p,"See full answer

    Data Engineer
    Data Structures & Algorithms
    +4 more
  • Adobe logoAsked at Adobe 
    Video answer for 'Given the root of a binary tree of integers, return the maximum path sum.'

    "\# Definition for a binary tree node. class TreeNode: def init(self, val=0, left=None, right=None): self.val = val self.left = left self.right = right class Solution: def maxPathSum(self, root: TreeNode) -> int: self.max_sum = float('-inf')"

    Jerry O. - "\# Definition for a binary tree node. class TreeNode: def init(self, val=0, left=None, right=None): self.val = val self.left = left self.right = right class Solution: def maxPathSum(self, root: TreeNode) -> int: self.max_sum = float('-inf')"See full answer

    Data Engineer
    Data Structures & Algorithms
    +4 more
  • OpenAI logoAsked at OpenAI 
    Data Engineer
    Behavioral
    +5 more
  • Apple logoAsked at Apple 
    +10

    " class ListNode: def init(self, val=0, next=None): self.val = val self.next = next def has_cycle(head: ListNode) -> bool: pass # your code goes here if head is None: return False previousNodes = set() iter = head while iter: if iter.val in previousNodes: return True previousNodes.add(iter.val) iter = iter.next; return False debug your code below node1 = ListNode(1) node2 = ListNode(2) n"

    Cagdas A. - " class ListNode: def init(self, val=0, next=None): self.val = val self.next = next def has_cycle(head: ListNode) -> bool: pass # your code goes here if head is None: return False previousNodes = set() iter = head while iter: if iter.val in previousNodes: return True previousNodes.add(iter.val) iter = iter.next; return False debug your code below node1 = ListNode(1) node2 = ListNode(2) n"See full answer

    Data Engineer
    Data Structures & Algorithms
    +4 more
  • +11

    " with youngsuccrate as( select strftime('%m', postdate) AS postmonth, round(sum(issuccessfulpost)*1.0/count(issuccessfulpost),2)as yascrate from post where userid in (select userid from post_user where age between 0 and 18) group by post_month ), nonyoungsucc_rate as( select strftime('%m', postdate) AS postmonth, round(sum(issuccessfulpost)*1.0/count(issuccessfulpost),2)as nonyasc_rate from post where user_id in (select"

    Bhavna S. - " with youngsuccrate as( select strftime('%m', postdate) AS postmonth, round(sum(issuccessfulpost)*1.0/count(issuccessfulpost),2)as yascrate from post where userid in (select userid from post_user where age between 0 and 18) group by post_month ), nonyoungsucc_rate as( select strftime('%m', postdate) AS postmonth, round(sum(issuccessfulpost)*1.0/count(issuccessfulpost),2)as nonyasc_rate from post where user_id in (select"See full answer

    Data Engineer
    Coding
    +3 more
  • Data Engineer
    Data Structures & Algorithms
    +4 more
  • "It's a 2Sum question with duplicate array elements."

    Anzhe M. - "It's a 2Sum question with duplicate array elements."See full answer

    Data Engineer
    Data Structures & Algorithms
    +1 more
  • Capital One logoAsked at Capital One 
    Data Engineer
    Data Structures & Algorithms
    +2 more
  • Data Engineer
    Data Modeling
  • Adobe logoAsked at Adobe 
    Video answer for 'Generate Parentheses'
    +6

    " O(n) time from typing import List def generate_parentheses(n: int): res = [] def generate(buf, opened, closed): if len(buf) == 2 * n: if n != 0: res.append(buf) return if opened < n: generate( buf + "(", opened + 1, closed) if closed < opened: generate(buf + ")", opened, closed + 1) generate("", 0, 0) return res debug your code below print(generate_parentheses(1"

    Rick E. - " O(n) time from typing import List def generate_parentheses(n: int): res = [] def generate(buf, opened, closed): if len(buf) == 2 * n: if n != 0: res.append(buf) return if opened < n: generate( buf + "(", opened + 1, closed) if closed < opened: generate(buf + ")", opened, closed + 1) generate("", 0, 0) return res debug your code below print(generate_parentheses(1"See full answer

    Data Engineer
    Data Structures & Algorithms
    +3 more
  • Atlassian logoAsked at Atlassian 
    Data Engineer
    Behavioral
    +7 more
  • Data Engineer
    Data Modeling
  • Adobe logoAsked at Adobe 
    +1

    "def calc(expr): ans = eval(expr) return ans your code goes debug your code below print(calc("1 + 1")) `"

    Sarvesh G. - "def calc(expr): ans = eval(expr) return ans your code goes debug your code below print(calc("1 + 1")) `"See full answer

    Data Engineer
    Data Structures & Algorithms
    +3 more
  • Data Engineer
    Data Pipeline Design
    +1 more
Showing 61-80 of 154