Skip to content

Commit e9dc69e

Browse files
committed
added a template readme.md
1 parent cccd70c commit e9dc69e

4 files changed

Lines changed: 163 additions & 2 deletions

File tree

Code Examples/template-readme.md

Lines changed: 154 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,154 @@
1+
# Title Of Your Project
2+
3+
Add a catchy title. Something where people immediately know what you are doing.
4+
5+
*The bullet prompts under each heading are instructions for you. Delete them as you fill the section in.*
6+
7+
# Introduction & Goals
8+
9+
Write this like an executive summary. It is the only part most people will read, so it has to stand on its own.
10+
11+
- What data are you working with
12+
- What tools are you using
13+
- What are you doing with these tools
14+
- Once you are finished, come back and add the conclusion here as well
15+
16+
Then list your goals. Two or three is plenty. Each goal gets a line saying how you know it worked, and that line needs a number in it. "The pipeline should be fast" is not something anyone can check. "Data is queryable within 10 minutes of the API call" is.
17+
18+
**Goal 1:** [what the project has to achieve, in plain language]
19+
**How I know it worked:** [the measurable version]
20+
21+
**Goal 2:** [...]
22+
**How I know it worked:** [...]
23+
24+
> **Why this matters:** almost every portfolio project skips straight to the tools. Naming what the project had to achieve, before you name a single tool, is the thing that makes the rest of this document read like a professional wrote it.
25+
26+
## Architecture
27+
28+
![Architecture](images/architecture.png)
29+
30+
Draw this yourself, export it as a PNG and commit it into `/images`. Do not link to a Miro board that needs an account. If someone only looks at one thing in this repo, it will be this picture.
31+
32+
# Contents
33+
34+
- [The Data Set](#the-data-set)
35+
- [Constraints](#constraints)
36+
- [Used Tools](#used-tools)
37+
- [Connect](#connect)
38+
- [Buffer](#buffer)
39+
- [Processing](#processing)
40+
- [Storage](#storage)
41+
- [Visualization](#visualization)
42+
- [Pipelines](#pipelines)
43+
- [Stream Processing](#stream-processing)
44+
- [Storing Data Stream](#storing-data-stream)
45+
- [Processing Data Stream](#processing-data-stream)
46+
- [Batch Processing](#batch-processing)
47+
- [Visualizations](#visualizations)
48+
- [Demo](#demo)
49+
- [What Breaks](#what-breaks)
50+
- [Conclusion](#conclusion)
51+
- [Follow Me On](#follow-me-on)
52+
- [Appendix](#appendix)
53+
54+
# The Data Set
55+
56+
- Explain the data set
57+
- Why did you choose it?
58+
- What do you like about it?
59+
- What is problematic?
60+
- What do you want to do with it?
61+
62+
## How much data is it
63+
64+
Show the arithmetic, do not just say it is a lot. Walk the chain from the source to the total:
65+
66+
> 2,100 stations, polled every 5 minutes, is 288 polls a day per station, so 604,800 records a day. Each record is around 400 bytes of JSON, which is about 240 MB a day raw and 12 MB a day once it is in Parquet. Over 6 months that is 2.2 GB.
67+
68+
Do this and every tool choice further down has a number to point at. Skip it and your choices look arbitrary, because they are. It also means that when someone asks you in an interview what happens at 100x, you already have the number to multiply.
69+
70+
# Constraints
71+
72+
What you had to work with. Be straight about it, this is not an apology.
73+
74+
- Budget: [what you were willing to spend per month]
75+
- Compute: [laptop, one small VM, free tier]
76+
- Data you do not control: [rate limits, no history available, schema can change without warning]
77+
- Time: [what you gave this]
78+
79+
"No budget, so everything runs on free tiers and my laptop" explains half your architecture in one line, and saying it plainly reads as confidence.
80+
81+
# Used Tools
82+
83+
- Explain which tools you use and why
84+
- How do they work (don't go too deep into details, but add links)
85+
- Why did you choose them
86+
- How did you set them up
87+
88+
For each layer, also say what you considered and rejected. A choice with a rejected alternative next to it is worth ten times a choice on its own, and it is what an interviewer will actually ask about.
89+
90+
> **Storage: Postgres on the same box.** Considered DuckDB and the Snowflake free tier. The whole dataset is 2 GB, but the dashboard reads while the loader writes and DuckDB does not love that. Snowflake would work fine and would also be me picking a warehouse to have a warehouse on my CV.
91+
92+
Not every project has all five layers. If you have no buffer, say so and say why you did not need one. An empty section with an honest sentence in it is better than pretending.
93+
94+
## Connect
95+
## Buffer
96+
## Processing
97+
## Storage
98+
## Visualization
99+
100+
# Pipelines
101+
102+
- Explain the pipelines you built
103+
- Go through your development and link to the source code in `/sources`
104+
105+
Link to the files, do not paste the whole pipeline in here. The code already lives in the repo and a README that turns into a code dump stops being readable. Short snippets to show one interesting bit are good.
106+
107+
Say what the pipeline does when something goes wrong. Retries, what happens to a bad record, whether the job fails loudly or writes garbage quietly. This is the part people forget and it is exactly the part that separates a project from a tutorial.
108+
109+
## Stream Processing
110+
### Storing Data Stream
111+
### Processing Data Stream
112+
## Batch Processing
113+
## Visualizations
114+
115+
# Demo
116+
117+
- Add a demo video here
118+
- Or link to your presentation video of the project
119+
120+
A two minute screen recording of the thing actually running does more than three paragraphs. A repo with no visible output is hard to tell apart from a repo that never worked.
121+
122+
# What Breaks
123+
124+
Three or four honest points. What you chose not to solve, what falls over if the data grows, and what you would change if you built it again.
125+
126+
You already have your volume numbers, so multiply them and say what breaks first. You do not have to fix it. Knowing where the ceiling is beats pretending there isn't one.
127+
128+
- **[What breaks first]** [At what point, and what you would do about it]
129+
- **[What you deliberately skipped]** [Why it was not worth it at this size]
130+
- **[Risk you accepted]** [What happens if it hits, and why you decided to live with it]
131+
132+
Deciding which risks to ignore is the part that only someone who has shipped something can do. Anyone can list risks.
133+
134+
If your data touches people, add one honest paragraph on it. One paragraph, not a compliance chapter. If there is nothing personal in the data, one line saying you checked is also a fine answer.
135+
136+
# Conclusion
137+
138+
Write a comprehensive conclusion.
139+
140+
- How did this project turn out
141+
- What major things have you learned
142+
- What were the biggest challenges
143+
144+
Then go back up to the introduction and paste the short version of this into the executive summary.
145+
146+
Make the lessons specific. "I would add more tests" says nothing because everyone writes it. "I partitioned by ingest date and should have partitioned by event date, because every query I actually write filters on event date and now they all scan everything" says you went back and looked at your own work.
147+
148+
# Follow Me On
149+
150+
Add the link to your LinkedIn profile.
151+
152+
# Appendix
153+
154+
[Markdown Cheat Sheet](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet)

README.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,14 +48,18 @@ If you look for the old PDF version it's [here](https://github.com/andkret/Cookb
4848
## Here's what's new:
4949
Find the change log with all recent updates here: [SEE UPDATES](sections/10-Updates.md)
5050

51+
## Building a Portfolio Project?
52+
Use my project README template to document it like a professional would: [Get the template](Code%20Examples/template-readme.md)
53+
5154
# Contents:
5255
- [Introduction](sections/01-Introduction.md)
5356
- [Basic Engineering Skills](sections/02-BasicSkills.md)
5457
- [Advanced Engineering Skills](sections/03-AdvancedSkills.md)
5558
- [Free Hands On Courses / Tutorials](sections/04-HandsOnCourse.md)
5659
- [Case Studies](sections/05-CaseStudies.md)
5760
- [Best Practices Cloud Platforms](sections/06-BestPracticesCloud.md)
58-
- [130+ Data Sources Data Science](sections/07-DataSources.md)
61+
- [130+ Data Sources for Portfolio Projects](sections/07-DataSources.md)
62+
- [Project README Template](Code%20Examples/template-readme.md)
5963
- [1001 Interview Questions](sections/08-InterviewQuestions.md)
6064
- [Recommended Books, Courses, and Podcasts](sections/09-BooksAndCourses.md)
6165
- [Updates](sections/10-Updates.md)
@@ -327,7 +331,7 @@ Find the change log with all recent updates here: [SEE UPDATES](sections/10-Upda
327331
- [Containerization](sections/06-BestPracticesCloud.md#Containerization-2)
328332
- [Best Practices](sections/06-BestPracticesCloud.md#Best-Practices-2)
329333

330-
## 130+ Free Data Sources For Data Science
334+
## 130+ Data Sources for Portfolio Projects
331335

332336
- [Student Favorites](sections/07-DataSources.md#Student-Favorites)
333337
- [General And Academic](sections/07-DataSources.md#General-And-Academic)

sections/07-DataSources.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@ It's a fun way to learn and get better at Data Engineering.
4646

4747
Here's a list of my student's favorite datasets and APIs
4848

49+
Building a project? Use my project README template to document it properly: [template-readme.md](../Code%20Examples/template-readme.md)
50+
4951
### Datasets
5052

5153
| Dataset | Description |

sections/10-Updates.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ What's new? Here you can find a list of all the updates with links to the sectio
55

66
- **2026-07-23**
77
- Added more student favorite datasets and APIs, now with descriptions and organized into tables [click here](07-DataSources.md#Student-Favorites)
8+
- Added a project README template to help you document your portfolio projects [click here](../Code%20Examples/template-readme.md)
89

910

1011
- **2025-07-21**

0 commit comments

Comments
 (0)