I worked doing analytics for a while (Machine Learning with Python and R and ETL style work). I transitioned to software development (Backend Engineer Working with a combination of Scala and Node.js).<p>[Insight](http://insightdataengineering.com/blog/Data_Science_vs_Data_Engineering.html) has this description:<p>"A good data engineer is has extensive knowledge on databases and best engineering practices. These include handling and logging errors, monitoring the system, building human-fault-tolerant pipelines, understanding what is necessary to scale up, addressing continuous integration, knowledge of database administration, maintaining data cleaning, and ensuring a deterministic pipeline."<p>I find that most courses and resources (off and online) are aimed at Data Science. Just looking for advice on how to gain the skills needed to build an impressive Data Engineer style portfolio.
Just get hired for a team using Hadoop or Spark, and preferably doing some real-time processing (you might need to study these frameworks in your own time to be able to get such job).<p>On such team, you'll be exposed to all of the concepts you've listed.