I interviewed for the Engelhart Junior Quantitative Developer role, on the US Power & Gas / West Power & Carbon side. The whole process felt very much like a Quant Dev interview: they look at Python / CS fundamentals, and they also care a lot about data pipelines, model productionization and system design.
Of the rounds I went through, the earlier one was more about background plus Python / engineering fundamentals, and the later technical round was more hands-on system design / production architecture.
Round 1: Hiring Manager + Python / CS Fundamentals
About 1 hour. They first introduced the team and the role, then chatted about my background. In the second half it suddenly turned into a dense run of technical questions, basically fast verbal Q&A, with a lot of Python and general software engineering fundamentals.
Python dictionary / data structures
- How does a Python dictionary store and look up a value?
- What does the hash function hash?
- Can two different keys get the same hash?
- How do you handle hash collisions?
- Why is dictionary lookup O(1) on average?
- Can a list be a dictionary key?
- Why not?
- What kinds of objects can be keys?
Generator / Decorator
- What is a generator?
- What are the benefits of a generator compared to a normal iterator / sequence?
- What does
yielddo? - Why is a generator more memory efficient?
- What is lazy evaluation?
- Have you used decorators?
- What is a decorator really doing?
Thread / Process / GIL / Async I/O
- What is the difference between a thread and a process?
- What is the difference in memory space?
- When would you use multiprocessing?
- What is the Python GIL?
- Why don't you usually rely on Python threads for real multi-core parallelism with a CPU-bound workload?
- What are the benefits of async I/O?
- Why is async a good fit for network / I/O-bound workloads?
Python environment
- What is a virtual environment?
- Why do you need a virtual environment?
- Have you used Conda?
- Have you come across things like Poetry?
OOP
- What is an abstract class?
- Can you instantiate an abstract class directly?
- What is the difference between an instance method and a class method?
- What are
selfandclsrespectively? - What is a static method?
- Why would you put a static method inside a class at all?
REST API / Unit Testing
- Have you implemented a REST API endpoint?
- Does FastAPI count as a REST endpoint?
- How does an endpoint expose a function?
- How do you usually do unit testing?
- Give a concrete example of a unit test.
SQL
- What is a relational database index?
- Why does an index speed up queries?
- Why not create an index on every column?
- What effect does an index have on write performance?
- If a very complex SQL query is very slow, how would you troubleshoot / tune it?
Linux
At the end they also asked:
- Do you use Linux regularly?
- Do you use Windows or Linux more?
- Which Unix/Linux commands do you use often?
Overall, the Python questions in the first round were not hard algorithm problems, but they covered a very wide range and they follow up. If your resume mentions a technology, they will likely keep going down into the lower-level concepts behind it.
Discussion
Loading comments…