---
title: "Daniel Davis (@danieldavisdev) | Hashnode"
description: "Daniel Davis (@danieldavisdev) writes on Hashnode. Read their latest articles and follow their work."
url: "https://hashnode.com/@danieldavisdev"
---

@danieldavisdev

# Daniel Davis

@danieldavisdev · Joined November 2026

### [Your users upload 12MP phone photos. Your app shouldn't serve them raw.](https://danieldavisdev.hashnode.dev/your-users-upload-12mp-phone-photos-your-app-shouldn-t-serve-them-raw?utm_source=hashnode&utm_medium=feed)

If you have ever wired up an ASP.NET Core photo upload and watched a 12-megapixel phone JPEG land in blob storage at full size, sideways, with GPS still in the EXIF, you already know the feeling. The

9 min read · [danieldavisdev.hashnode.dev](https://danieldavisdev.hashnode.dev/your-users-upload-12mp-phone-photos-your-app-shouldn-t-serve-them-raw?utm_source=hashnode&utm_medium=feed)

[1d ago](https://hashnode.com/posts/your-users-upload-12mp-phone-photos-your-app-shouldn-t-serve-them-raw/6af24e8b16309fb4b2b0f74f)

### [SaveChanges shouldn't take four seconds to insert 100,000 rows](https://danieldavisdev.hashnode.dev/savechanges-shouldn-t-take-four-seconds-to-insert-100-000-rows?utm_source=hashnode&utm_medium=feed)

Update, 1.0.3: ADO.NET update and delete now take a SqlTransaction, DbSet<T> gets BulkSyncAsync, UpdateOnlyIfChanged skips unchanged rows, the UpdateInsert merge strategy is available, and ADO.NET now

7 min read · [danieldavisdev.hashnode.dev](https://danieldavisdev.hashnode.dev/savechanges-shouldn-t-take-four-seconds-to-insert-100-000-rows?utm_source=hashnode&utm_medium=feed)

[1d ago](https://hashnode.com/posts/savechanges-shouldn-t-take-four-seconds-to-insert-100-000-rows/6af248d97b0f24fed3e39763)
