Profile picture

Interviewing Q&A and Videos

About Interviewing

Data Engineer at Financial Company profile pic
Data Engineer at Financial CompanyPosted June 22, 2023

How Long to Complete Take-Home Assignment II

My initial question was “When given a take-home assignment, what is a reasonable turnaround time to get it back to them?” I now know it’s within a week. I was given the assignment to create a basic Django app and was told to spend no more than 3 hours on it. Here’s the short text of the assignment description: > Table Metadata Extractor (Python) > > Please provide a Python Django application that has one API endpoint which accepts a database connection string from your DB of choice (Redshift, BigQuery, Snowflake, MySQL, Postgres), connects to the database using SQLAlchemy and returns a list of the TableMetadata data objects (see below) for all tables in the database. > > TableMetadata = { > > columns: List[ColumnMetadata] > > num_rows: int > > schema: str > > database: str > > } > > ColumnMetadata = { > > col_name: str > > col_type: str > > } > > Bonus points for: > > · Instructive error messages for improper connection strings or other invalid input > > · A solution that is efficient As a Data Engineer/Analyst, I haven’t done web-dev stuff in years and have never used Django. My immediate instinct upon reading this project description was to find a resource to learn Django online. I’m not sure this is the right instinct, because software is about doing more than learning as Alex has mentioned so many times. The way I see it, I have 3 ways to approach this assignment: The way I just mentioned. Go down a learning path (hopefully not a rabbit hole), learn about Django and try completing the assignment. Dive right in, try building the solution from scratch, Googling and ChatGPTing liberally. Don’t do the assignment, spare myself the time and headache, and beef up my Python web-dev skills for the future. The first approach requires the most upfront time. The second might be longer or shorter than the first. And the third doesn’t require any upfront time but requires a commitment to being in a much better position to do the assignment in future. This is the second time in a couple of months I’ve been in this position since I was given an assignment for a different company to build a Flask app and did a shoddy job with it. My first question is, which of the 3 options should I do to address this time-sensitive situation? My second is, how should I address this situation long-term? Building some web-dev projects in Python with Flask/Django/FastAPI seems pretty logical. I don’t get to work with them at work, but I could spend a few weeks building stuff with them. I guess that’s the answer, the key is to avoid tutorial hell. My third is, how should I think about take-home assignments in general? Should they stretch me a lot in terms of learning new things or conversely, should I be, say, 80% comfortable with what I need to do, just stretching a bit here and there to do stuff? Thanks!

617 Views
5 Comments
Data Engineer at Financial Company profile pic
Data Engineer at Financial CompanyPosted January 31, 2023

Side-project - Data Eng, Full-stack, or mobile?

I'm a Data Engineer looking to break into FAANG. As such, my time outside of work right now is spent applying to jobs, asking people for referrals, and networking. When I have interviews, my focus shifts to Leetcode. I really want to build a side-project though both because it's fun and because it will help me perform better at future jobs. My (common) issue is this: where do I start? Not in terms of the problem I am solving. I have a super-smart friend who's a lawyer and an MBA who's into fantasy sports and he has neither the time nor the ability to create an app. I feel like I could just generate a bunch of different ideas with him and pick the one most interesting to me. I mean in terms of tech area. Alex and Rahul are both mobile developers and that naturally lends itself to great apps. I know Alex has mentioned that in a vacuum, it's better to focus on front-end for side-projects. I have no experience with front-end or mobile, some back-end dev experience and a fair bit of data. I could build a data eng project. Start Data Engineering has some great projects on his blog () and there's definitely plenty of examples online (e.g. ). My question is whether I should build a DE project. I'm not particularly wedded to DE because I feel like I want to do more SWE work and less business analyst work. Above all, I want to get into FAANG for the boost to my learning, career, and comp. DE is prob the easiest way of getting there but again, not wedded to it. So I see my options as a) doing a DE project (maybe using the projects above to get my feet wet); b) doing a full-stack project (hard to do a back-end only project I think); c) mobile? (Alex and Rahul are tempting me). Is there any advantage to mobile over a web-dev project? If I do b or c, I'm concerned about falling into tutorial-hell or at least taking too long to learn before building. I'm tempted by a full-stack course like Zero To Mastery's full stack course, but it's 40 hrs, and I know it's prob not necessary. Just want to add that I'm a newb for side-projects and I'm aware that I can and will experiment with multiple project types once I get started. Sorry for the unstructured thoughts here. My brain works on NoSQL, not SQL ;)

596 Views
3 Comments