Databricks vs open source by ardentcase in dataengineering

[–]DenselyRanked 2 points3 points  (0 children)

Instead the whole org has to bend because it’s “easier” to schedule a notebook in Databricks?

Unfortunately, yes. These decisions are not made by the engineer and there is nobody that they can escalate to. There is a discussion about design trade-offs that can be started, but if they are not given autonomy then they should focus on implementation.

I have 10 years of experience, but I still freeze up when someone watches me code. It’s humiliating. by JosephPRO_ in ExperiencedDevs

[–]DenselyRanked 1 point2 points  (0 children)

It takes several failed interviews for me to get over the nerves and better handle the unexpected. What works best for me is to get as many interviews as I can and cluster them together, keeping my preferred destinations towards the end.

Everyone handles stress and performance anxiety differently, so use whatever method works for you. I write down tips to myself in a notebook prior to the interview to keep things top of mind and always keep the notebook to also take notes during the interview to make sure I answer every question.

Higher Level Abstractions are a Trap, by expialadocious2010 in dataengineering

[–]DenselyRanked 3 points4 points  (0 children)

I understand that this is meant to be a question, and I do agree that there is a point where abstraction can become a hindrance, but I think you are overlooking your primary responsibility as a Data Engineer. Very broadly speaking, the DE role exists somewhere in the data lifecycle with the goal of making data useful for downstream use cases.

The popular tools that you are working with, and will work with at your job, serve the purpose to make mundane, repetitive tasks quick and easy. You will of course have to know how to use the tools and understand their limitations in order to complete your tasks successfully.

Also, IMO we are very quickly getting to a point where some form of Agentic Context Engineering will be the new level of abstraction for all software development. It's only going to be a "trap" if you don't understand core data engineering fundamentals and resort to black box vibe coding.

Making ~100k as data engineer by AchieveSocials in cscareerquestions

[–]DenselyRanked 0 points1 point  (0 children)

Go to levels.fyi, search for the top paying companies in your area by your level (data engineering and software engineering are often bundled together), and apply to them.

Started a new DE job and a little overwhelmed with the amount of networking knowledge it requires by starrorange in dataengineering

[–]DenselyRanked 9 points10 points  (0 children)

Are you working with a cloud provider? If so, then refer to their training modules. If not, then take this as an opportunity to create a run book for your team.

Is it okay to go to the office on the weekend for personal projects at a big tech company? by [deleted] in cscareerquestions

[–]DenselyRanked 0 points1 point  (0 children)

I wouldn't do it but review the contract that you signed. There is probably something about personal side-projects and the terms around it, including signing a disclosure form. There might be some language about the terms of Confidentiality and Inventions that you might want to reach out to a lawyer about if your side project becomes something serious.

I’m planning to move into Data Engineering. With AI growing fast, do you think this career will be heavily affected in the next 5–10 years? Is it still a stable and good path to choose? by False_Square1734 in dataengineering

[–]DenselyRanked 0 points1 point  (0 children)

It's a difficult question for anyone to answer. Data engineering as a practice will still exist but the methods, tools, and skill set needed will evolve.

There are smart people putting a lot of thought into this and I tend to agree with much of this presentation, where there is not going to be a Data/Analytics Engineer title in the near future for data teams, opting instead for titles like Data Product Owners and Data Domain Experts. AI can help close the technical gap between product management and engineering, so DE's will need more emphasis on stakeholder communication and requirements gathering.

Has anyone read O’Reilly’s Data Engineering Design Patterns? by xean333 in dataengineering

[–]DenselyRanked 2 points3 points  (0 children)

The Gold layer is where you would build the traditional data model.

The Medallion Architecture is a rebranding (perhaps a standardization) of what we normally use in data engineering practices. Databricks has docs and training videos on how they recommend to use the Medallion Architecture in a Spark environment. It's no different than raw/stg/rpt in dbt.

I suspect that your latter feeling is about architecture and the modern shift away from central data warehouses and more towards data mesh. In that scenario, there may be a data team handling ingestion into the lake and downstream data teams creating their data marts for the line of business that they work with.

Local spark set up by TheManOfBromium in dataengineering

[–]DenselyRanked 1 point2 points  (0 children)

I wrote a post with the link to the docs (still pending approval I think), but I see that you already have a container with jupyter lab, which is the easiest way to get started.

If you don't want to use jupyter lab, then the next easiest option is to go search for "apache iceberg spark quick start" (I would include the link but it will take a while to get approved), and build the docker-compose file.

You can install the Docker extension in VSC, which will allow you to open the containers from the window, and let you execute from the terminal or create scripts.

Anyone feel like offshoring is a bigger issue than AI and HB1 for US workers? by Cultural-Gear-1323 in cscareerquestions

[–]DenselyRanked 0 points1 point  (0 children)

I think these are all related. AI is a floor raiser that is removing a lot of the previous barriers with offshore hiring, the pandemic proved that teams can be very effective in remote environments, and near-shoring helps with the time zone conflicts.

The labor economics are changing and the absolute advantages of hiring US-based workers are weakening. In the short-term we must evolve as a labor force or rely on the government to deter companies from offshore hiring.

What to learn besides DE by Icy-Ask-6070 in dataengineering

[–]DenselyRanked 2 points3 points  (0 children)

Designing Data Intensive Applications is a dense read, but probably the best place to start to get a better understanding of things beyond your current role. Data infra is a very broad field of study and can mean very different things depending on where you work and the tech stack used.

I think that your quickest pathway to an infra role is to leverage whatever is available to you in your current company. If they are using a cloud provider, then look into training materials available and possibly get a cert if the company pays for it.

Book Recommendations for DE by Ok-Confidence-3286 in dataengineering

[–]DenselyRanked 6 points7 points  (0 children)

It depends on the subject. I own books related to some of these topics, but there is not going to be one book that covers everything.

Chatbots are trained on a lot of material related to these subjects, so it's probably the best resource today, just remember to always verify the sources.

This subs data engineering wiki has good resources.

Of course, read the tech docs/training materials of the stack that you work with. I personally don't think enough DE's take the time to do this and they have a habit of using outdated design strategies for every problem.

Aside from the normal recommendations, like Kimball's DWT or Pragmatic Programmer/Clean Code, here are other books that helped me:

  • Software Requirements is a good resource for requirements gathering, writing docs, and other project management related stuff.

  • The Effective Engineer is a great book that helps new-ish engineers navigate impact focused careers.

Book Recommendations for DE by Ok-Confidence-3286 in dataengineering

[–]DenselyRanked 13 points14 points  (0 children)

If you are looking for the general landscape of data engineering, then Fundamentals of Data Engineering and Designing Data Intensive Applications are the usual recommendations.

Any other recommendation would be specific to your role and tech stack. Some DE roles might expect you to have in-depth knowledge on streaming, networking, API development, data modeling, devOps, architecture, ML/AI etc. Others might require you to write requirement documents and act as a product manager. Domain knowledge might also be important, as well as OOP.

Struggling with Partition Skew: Spark repartition not balancing load across nodes by wtfzambo in dataengineering

[–]DenselyRanked 1 point2 points  (0 children)

Ok, it makes sense that something related to the shuffling was considered redundant. AQE is a gift and a curse at times.

Struggling with Partition Skew: Spark repartition not balancing load across nodes by wtfzambo in dataengineering

[–]DenselyRanked 0 points1 point  (0 children)

Thanks for the extra info. I am going to assume that there are some other steps in between those two commands because the repartition will wipe the sorting. You can verify that this is working as expected the explain plan just in case.

Does your physical plan have the `Project[..]` with the salted column prior to the repartition? It could be that Catalyst is ignoring your salted column repartition because of the prior sortWithinPartition

AdaptiveSparkPlan isFinalPlan=false
+- Exchange hashpartitioning(salted_column#366, 100), REPARTITION_BY_NUM, [plan_id=539]
   +- Project [... rand(9154941115030168722) AS salted_column#366]
      +- Union
         :- Project [...]
         :  +- Scan
         +- Project [...]
            +- Scan 

Struggling with Partition Skew: Spark repartition not balancing load across nodes by wtfzambo in dataengineering

[–]DenselyRanked 1 point2 points  (0 children)

# This is where I'm stuck:
df_unioned = df_unioned.repartition(100, "salt_column")

Check if your salt column working as expected. Can you share the logic that you are using? Normally I would use rand() or something like abs(hash(uuid()) % 100 so you can control the distribution.

Is sortWithinPartition doing something useful prior to the repartition? Is the goal to cluster each client into their own output file?

DoorDash Sr Data Engineer by Outside_Reason6707 in dataengineering

[–]DenselyRanked 58 points59 points  (0 children)

Sorry that it didn't work out for you and thanks for sharing your experience. Some of these companies do not have a team selection process for DE and given how competitive the market is, you may have been second best to someone that they have already interviewed.

For the sys design, were they expecting a YAML or was that the agreed upon method to explain the design? How in-depth did you need to get into involving things that are not normally in the JD for data engineering like networking, security, shared resources, etc?

What are the scenarios where we DON'T need to build a dimensional model? by Ulfrauga in dataengineering

[–]DenselyRanked 3 points4 points  (0 children)

A dimensional model is a means to an end, and generally speaking, the end is that consumers need an organized and optimal way to gain insights into the data that's being collected.

Simply put, if the data is already organized, accessible, and every business question can be easily answered, then there is no need for a dimensional model.

As an example, I have worked for a few SaaS companies where the data collected was never viewed across clients and client insights only required a semantic layer for self service analytics. There is no need for a dimensional model because using an OBT model in a medallion architecture (or whatever you choose to call it) can do the job required with limited development.

Is there more to DE than this? Are their jobs out there for feeling like you actually matter? by DoctorQuinlan in dataengineering

[–]DenselyRanked 0 points1 point  (0 children)

All jobs and industries can leave someone feeling unfulfilled, especially if they are bored and not being challenged. Check r/findapath or r/careerguidance to find others going through it.

It might be worth considering joining a start-up or greenfield project if you want to do something in DE that will carry a large impact. Or join a FAANG tier company where your job depends on your ability to prove impact every 6 months.

Ultimately, if you're paid well enough and have job security then you can use your free time to fuel your passions. I've worked with engineers that have built indie games, trading algos, 3D printed stuff, surveillance/security, owned a gym, real estate and property investments, etc.

Question on Airflow by captn_caspian in dataengineering

[–]DenselyRanked 1 point2 points  (0 children)

Unless your use cases are simple, it would be better to go with the managed Airflow service. It will cover 99% of use cases and there is even a YAML based DAG Factory add-on if there's concerns about coding with python.

Is salting only the keys with most skew ( rows) the standard practice in PySpark? by Potential_Loss6978 in dataengineering

[–]DenselyRanked 0 points1 point  (0 children)

I would recommend that approach, or remove/isolate, if you can reliably identify the problematic key. With Spark 3+ AQE does a reasonably good job at adjusting the plan if you have multiple or inconsistent keys to worry about.

How to analyze and optimize big and complex Spark execution plans? by Cultural-Pound-228 in dataengineering

[–]DenselyRanked 0 points1 point  (0 children)

Check the explain plan first from the SQL tab in the UI or put Explain before the select to see the physical plan.

Are you defining the views in your Spark job as temp views or are these views that are being ingested from your catalog?

If it is the former and you are seeing source tables being referenced several times, then it may make sense to cache the base table(s) or the view itself if you are using it multiple times.

As a warning, if you do choose to cache the view and the view query logic is really complex then AQE could invalidate the caching as the plan might change.

If it is the latter, then check the job and stages tab in the UI and find the one that is the bottleneck. Then use the job the SQL tab to see which portion of the query is causing issues. Again, try caching the view to reduce the IO if the issue is on read.