Software Engineer Interview Experience
Interview process
Remeber to speak up about what you are doing while solving the technical questions. Besides that it's not too bad.
- Recruiter screen
- Technical interview
Interview rounds
5 questions across 2 roundsRecruiter screen
4 questionsSpecific questions asked
Why Nooks?
What do you know about our company?
Felt more like an intro/pitch of what they do than a recruiter screen
Technical interview
1 questionSpecific questions asked
I copied the description of the question, so this is the correct answer to that question based on AI. I also got the right answer, but perhaps I didn't speak enough during the interview. from typing import List, Tuple from collections import defaultdict class ConsensusError(Exception): """Raised when consensus cannot be reached""" pass Segment = Tuple[float, float, str] LABELS = {"human", "silence", "machine"} def find_consensus( *labelers: List[Segment], ) -> List[Segment]: """ Combine the labels from different labelers into a single consensus labeling, or raise a ConsensusError. """ # Find every boundary where any labeler changes boundaries = set() for segments in labelers: for start, end, label in segments: boundaries.add(start) boundaries.add(end) boundaries = sorted(boundaries) # positions[j] tracks which segment labeler j is currently on positions = [0] * len(labelers) result = [] # Look at every interval between consecutive boundaries for i in range(len(boundaries) - 1): start = boundaries[i] end = boundaries[i + 1] counts = defaultdict(int) # Get the vote from each labeler for j in range(len(labelers)): segments = labelers[j] # Move forward if this labeler's current segment # has already ended while ( positions[j] < len(segments) - 1 and segments[positions[j]][1] <= start ): positions[j] += 1 # Get this labeler's current label label = segments[positions[j]][2] counts[label] += 1 # IMPORTANT: # We are now OUTSIDE the labeler loop. # All 3 votes have been collected. consensus_label = None # Part 1: 2 out of 3 labelers must agree for label, votes in counts.items(): if votes >= 2: consensus_label = label break # If nobody has at least 2 votes, consensus fails if consensus_label is None: raise ConsensusError( f"No consensus from {start} to {end}" ) # Merge adjacent intervals with the same consensus if result and result[-1][2] == consensus_label: result[-1] = ( result[-1][0], end, consensus_label ) else: result.append( (start, end, consensus_label) ) return result
Interview tips
See the code. That's the question they asked me. Besides that the recruiter screen was free. I think future rounds would've had some AI enabled coding but I didn't pass the screen.
Company culture
Seemed very laid back. The senior recruiter who interviewed me had a full tatoo sleeve.
Get full access with a membership, or share your experience to try it free.