Data Engineering Tidbits - My Experience Preparing for a Live Coding Interview with a Leading LatAm Fintech

My Experience Preparing for a Live Coding Interview with a Leading LatAm Fintech

During my preparation for a live coding interview with a leading fintech company in Latin America, I focused primarily on SQL concepts using the DataLemur platform, feeling confident enough in my Python skills to dedicate less time there. In retrospect, while my SQL preparation proved valuable, I probably should have dedicated more time to Python practice as well. Nevertheless, for the SQL portion, I concentrated on reinforcing fundamental concepts that, although familiar, I wanted to have readily accessible during the interview.

Bitso logo Mercado Pago logo Nubank logo Uala logo

Key SQL Concepts Reviewed

1. Self Joins

  • Working with the same table in different contexts

2. Window Functions for Ranking

Two critical functions I practiced:

ROW_NUMBER()

ROW_NUMBER() OVER(
    PARTITION BY column_name 
    ORDER BY other_column
)

This function ranks rows within specific groups, this practice proved particularly valuable as I ended up needing to use this exact function during my live coding.

DENSE_RANK()

DENSE_RANK() OVER(
    ORDER BY column_name
)

Used for overall rankings across all rows, allowing for duplicate ranks.

3. Conditional Aggregation

Another important pattern that came up multiple times in my study sessions:

SUM(CASE 
    WHEN variable = 'condition' 
    THEN column 
    ELSE 0 
END) AS column_name

4. Window Frame Clauses

Reviewed various frame specifications specially useful for rolling averages:

  • UNBOUNDED PRECEDING - All previous rows
  • n PRECEDING - Previous n rows
  • CURRENT ROW - Current row only
  • n FOLLOWING - Next n rows
  • UNBOUNDED FOLLOWING - All subsequent rows

5. Distinct Counting

Refreshed usage of:

COUNT(DISTINCT column_name)

Interview Experience

I found DataLemur to be an excellent preparation platform - its focused problem sets and intuitive interface made my SQL study sessions highly efficient and effective. While the actual interview used LeetCode instead of DataLemur, the concepts overlapped significantly - I encountered a "second highest" problem similar to my practice questions, demonstrating that focusing on fundamental concepts was the right approach. Looking back, I wish I had also utilized DataLemur's Python problems, as the platform's structured approach would have been beneficial for my Python preparation as well.

Key Takeaway

The most valuable aspect of my preparation wasn't learning new concepts but rather ensuring that familiar concepts were readily accessible. This fluency proved crucial during the live coding environment where quick thinking and clear implementation were essential.
Having these patterns and concepts fresh in my mind allowed me to approach the interview problems with confidence and clarity, regardless of the specific platform used for the assessment. However, my experience reinforces the importance of maintaining a balanced preparation approach across all required technical skills, even those we feel confident about.

Related Post

Want to learn more about data engineering fundamentals? Check out my post on RDDs in PySpark where I break down the core concepts of Resilient Distributed Datasets.