Hacker News new | ask | show | jobs
by caffeine 1570 days ago
Let’s say you are the Lead Data Engineer of a small data-driven company.

You need to define a strategy, pick a stack of tools, decide how data is going to be stored and normalised, what the workflow will be from ad-hoc, exploratory studies to productionized inference.

Are there any good resources out there that are useful to this person?

I am this person right now and I need to find some good guidance.

4 comments

I am that person too, only for a big (non-data) money driven company :-)

So many resources that you can easily get lost. Martin Kleppmann's Designing Data Intensive applications can be your starting point. It helps you establish a basic to advanced understanding on quite a few of the concepts that will be coming up and some key principles to drive your strategy from a technical perspective (you'll need a few facets of your strategy for different audiences).

Then move to a more corporate focused presentation with Piethein Strengholt's Data Management at Scale (business facing aspects of your strategy, incl. governance forums etc. unless if you are short-term lucky enough to not have them due to size - long term unlucky as you'll have to establish them or drive others to do so).

At this point, after a few discussions you should be getting a feeling of what the direction will be in terms of where your data will be stored, how you do data quality, how you process, how you expose, infrastructure etc. Dozens of books on the individual elements of your stack. Try to link them back to Kleppmann or other more specialized but still conceptual books (e.g. if you do streaming you could look into Flow Architectures by Urquhart, Streaming Systems By Akidau et.al. etc.) Then you can move to inference, etc. I am not at that stage yet, so no specific advice. In my case, I see inference etc. as more of something I can address after data are on the platform, but not sure what the state you are facing is. I guess you can start looking into trendy stuff like MLOps etc.

Good luck! It's really exciting working on this domain!

Kleppmann will not help you in real life situations, it's a textbook that you might read to understand what are the things you don't have to/need to worry about.
I have been in the same position, and here's what my experience has been(sample size 1)

Standardize the stack. Use one stack, one set of tooling, one set of practices, and libraries that are very well known and has decent community support. As you start delivering code, the knowledge builds upon itself.

For example, I pretty much standardized REST API, microservices, Python, Flask, Redis, MongoDB, Nginx for the first 2-3 years. As teammates joined in, they were encouraged to reuse code. Slowly, as more senior engineers started working in the team, they brought their own processes, and consequently the organization became more flexible and robust.

You may want to look at the guidance from a16z. https://future.a16z.com/emerging-architectures-modern-data-i...

They are basically recommending picking one of the big three: Snowflake, Bigquery, or Redshift. Using standard connectors. Once your data is in one of the big three, you can use any analysis tool.

I have been involved in this space for some time and am heavily involved with Salesforce. In my corner of the world, I still lean heavily on SQL Server and Cdata/Dbamp which allows me to replicate and write back to Salesforce via SQL batch jobs. Tableau Online has also been a game changer as it allows business folks to do a lot of the heavy lifting. Our BI team now consists of three senior tech folks and 12 business analysts.

I think that article is simply generous bullshit PR from a VC.
Hey thanks for pointing this out.
I think then your title is not matching your capabilities. We can help making that correction.