TL;DR style notes from articles I read today.
Top 5 Surprises When Starting Out as a Software Developer
- Programming isn’t a solitary activity. It needs a lot of interactions with people
- Writing well (clear & unambiguous) matters, be it your code, documentation, bug descriptions or be it your emails
- Software is never done. Anything new you create has to fit into something that’s existing already. A large of creating new software functionalities is understanding the existing code.
- Real-world favors simplicity. All the clever algorithms you learned may never come to use.
- Scale creates complexity. Complexity arises from the aggregation of many simple parts, not from complex parts.
Full post here, 4 mins read
Using spec-first API Development for Speed and Sanity
Reasons to consider spec-first API development:
- Tight feedback loops
- Effective feedback about API design
- Minimal wasted effort
- Contract testing for safety
Full post here, 9 mins read
Scaling a Mature Data Pipeline — Managing Overhead
- Over time, you end up encoding application structure in the data pipeline. Application logic gets coupled with orchestration logic.
- Orchestration complexity causes overhead. This complexity scales with the depth of the data pipeline.
- When you decouple orchestration logic from application logic, you get tools to fight the overhead, without compromising the quality of the application.
- When trying to reduce the run time of a data pipeline, analyze the whole pipeline’s execution time, not just the obvious factors like map-reduce computation time.
- Focus on fault tolerance considerations.
Full post here, 11 mins read
I share these TL;DR versions of articles on software engineering that I read every weekday through my newsletter - in.snippets(). Sign up here if you liked what you just read.
Top comments (3)
Top one lesson learned: engineers manage to keep their job by inventing wheels.
“No, I don’t understand this. Let’s tear it down”
While this is partially true, most developers also end up using a framework and don't write things from scratch. Professional development has almost entirely moved to "Let's take 10 things other people have built and bind it together with duct tape".
This is a huge benefit from the 90s era of custom development for all projects.
ha definitely. I was joking about team’s decision to build new generations of tech stack when existing stack aged with data and bugs.
Tools wise, ya, duct tape is best of all!