---
title: "#softwareengineering articles | Hashnode"
description: "Explore 230 articles tagged #softwareengineering on Hashnode. Tutorials, guides, and how-tos from the community."
url: "https://hashnode.com/tag/softwareengineering"
---

Tag

# #softwareengineering

230 posts · 3 followers

[Doogal Simpson](https://hashnode.com/@doogal) · [12h ago](https://hashnode.com/posts/why-a-day-is-not-24-hours/6af43d852eb9c13dc84f3b03)

### [A Day Isn't 24 Hours: Fixing Date Math & DST Bugs](https://doogal.dev/why-a-day-is-not-24-hours?utm_source=hashnode&utm_medium=feed)

A calendar day isn't always 24 hours. Learn why duration math breaks during Daylight Saving Time and how to write resilient calendar arithmetic in your code.

5 min read · [doogal.dev](https://doogal.dev/why-a-day-is-not-24-hours?utm_source=hashnode&utm_medium=feed)

[akram](https://hashnode.com/@esparksit) · [14h ago](https://hashnode.com/posts/choosing-a-software-development-company-in-stoke-on-trent/6af41d2056351ae598f6a05c)

### [Choosing a Software Development Company in Stoke-on-Trent](https://esparksit.hashnode.dev/choosing-a-software-development-company-in-stoke-on-trent?utm_source=hashnode&utm_medium=feed)

If you are looking for a Software Development Company in Stoke-on-Trent, choose a partner that can translate business goals into a clear delivery plan, not just a stack of technologies. The right team

12 min read · [esparksit.hashnode.dev](https://esparksit.hashnode.dev/choosing-a-software-development-company-in-stoke-on-trent?utm_source=hashnode&utm_medium=feed)

[4](https://hashnode.com/posts/choosing-a-software-development-company-in-stoke-on-trent/6af41d2056351ae598f6a05c)

[Doogal Simpson](https://hashnode.com/@doogal) · [1d ago](https://hashnode.com/posts/why-sql-unique-constraints-allow-duplicate-nulls/6af34e6af60522234a475d0f)

### [Why SQL UNIQUE Constraints Allow Duplicate NULLs](https://doogal.dev/why-sql-unique-constraints-allow-duplicate-nulls?utm_source=hashnode&utm_medium=feed)

Understand why SQL unique constraints permit duplicate NULLs, the impact on composite keys, and how to use NULLS NOT DISTINCT in PostgreSQL.

5 min read · [doogal.dev](https://doogal.dev/why-sql-unique-constraints-allow-duplicate-nulls?utm_source=hashnode&utm_medium=feed)

[3](https://hashnode.com/posts/why-sql-unique-constraints-allow-duplicate-nulls/6af34e6af60522234a475d0f)

[akram](https://hashnode.com/@esparksit) · [2d ago](https://hashnode.com/posts/choosing-a-sprint-retrospective-tool-for-remote-teams/6af14caffb25f5df699975a6)

### [Choosing a Sprint Retrospective Tool for Remote Teams](https://esparksit.hashnode.dev/choosing-a-sprint-retrospective-tool-for-remote-teams?utm_source=hashnode&utm_medium=feed)

A Sprint Retrospective Tool for Remote Teams is software that helps distributed delivery teams reflect on a sprint, surface issues safely, agree improvements and track actions to completion. The right

13 min read · [esparksit.hashnode.dev](https://esparksit.hashnode.dev/choosing-a-sprint-retrospective-tool-for-remote-teams?utm_source=hashnode&utm_medium=feed)

[4](https://hashnode.com/posts/choosing-a-sprint-retrospective-tool-for-remote-teams/6af14caffb25f5df699975a6)

[Doogal Simpson](https://hashnode.com/@doogal) · [4d ago](https://hashnode.com/posts/why-uppercasing-a-string-can-change-its-length/6aef68b97c81683612b4e3ca)

### [Why Uppercasing a String Can Change Its Length](https://doogal.dev/why-uppercasing-a-string-can-change-its-length?utm_source=hashnode&utm_medium=feed)

Converting strings to uppercase can change their length. Learn why characters like the German ß expand to SS and how this Unicode behavior breaks assumptions.

4 min read · [doogal.dev](https://doogal.dev/why-uppercasing-a-string-can-change-its-length?utm_source=hashnode&utm_medium=feed)

[1](https://hashnode.com/posts/why-uppercasing-a-string-can-change-its-length/6aef68b97c81683612b4e3ca)

[Doogal Simpson](https://hashnode.com/@doogal) · [5d ago](https://hashnode.com/posts/casting-large-floats-to-integers/6aede1bac3222cd617a09d94)

### [Float to Int Conversion: Why Large Numbers Break](https://doogal.dev/casting-large-floats-to-integers?utm_source=hashnode&utm_medium=feed)

Casting large floats to ints behaves unpredictably across languages. See how Java, JavaScript, C, and Python handle overflow—and how to cast safely.

5 min read · [doogal.dev](https://doogal.dev/casting-large-floats-to-integers?utm_source=hashnode&utm_medium=feed)

[2](https://hashnode.com/posts/casting-large-floats-to-integers/6aede1bac3222cd617a09d94)

[Doogal Simpson](https://hashnode.com/@doogal) · [6d ago](https://hashnode.com/posts/why-python-rounds-2-5-to-2/6aec4d389f5d7fbe87cc5488)

### [Why Python Rounds 2.5 to 2: Banker's Rounding Explained](https://doogal.dev/why-python-rounds-2-5-to-2?utm_source=hashnode&utm_medium=feed)

Understand why Python's round(2.5) evaluates to 2, how banker's rounding eliminates statistical bias, and how to implement traditional round-half-up logic.

4 min read · [doogal.dev](https://doogal.dev/why-python-rounds-2-5-to-2?utm_source=hashnode&utm_medium=feed)

[4](https://hashnode.com/posts/why-python-rounds-2-5-to-2/6aec4d389f5d7fbe87cc5488)

[Doogal Simpson](https://hashnode.com/@doogal) · [6d ago](https://hashnode.com/posts/java-integer-overflow-milliseconds-in-a-month/6aec4a31a3814663a78aeb13)

### [Java Integer Overflow: Calculating Milliseconds in a Month](https://doogal.dev/java-integer-overflow-milliseconds-in-a-month?utm_source=hashnode&utm_medium=feed)

Understand why calculating milliseconds in a month causes integer overflow in Java, why assigning to long fails, and how to fix silent arithmetic bugs.

4 min read · [doogal.dev](https://doogal.dev/java-integer-overflow-milliseconds-in-a-month?utm_source=hashnode&utm_medium=feed)

[CheckNumber](https://hashnode.com/@checknumber) · [6d ago](https://hashnode.com/posts/the-identity-resolution-paradox-handling-shared-phone-numbers-in-crm-architectures/6aec5bd39c3292e2a5fe82c6)

### [The Identity Resolution Paradox: Handling Shared Phone Numbers in CRM Architectures](https://checknumberofficial.hashnode.dev/the-identity-resolution-paradox-handling-shared-phone-numbers-in-crm-architectures?utm_source=hashnode&utm_medium=feed)

Merging contacts based on a shared phone number often destroys critical relationship metadata; developers should implement a 'household' or 'entity' abstraction layer instead of destructive deduplication.

6 min read · [checknumberofficial.hashnode.dev](https://checknumberofficial.hashnode.dev/the-identity-resolution-paradox-handling-shared-phone-numbers-in-crm-architectures?utm_source=hashnode&utm_medium=feed)

[Doogal Simpson](https://hashnode.com/@doogal) · [Nov 3](https://hashnode.com/posts/adding-a-month-to-january-31/6ae9de20752b189d64f49771)

### [Adding a Month to Jan 31: Clamping vs Date Overflow](https://doogal.dev/adding-a-month-to-january-31?utm_source=hashnode&utm_medium=feed)

Learn why adding one month to Jan 31 yields Feb 28 in Java but March 3 in JavaScript, and how to avoid silent date overflow bugs in recurring billing.

4 min read · [doogal.dev](https://doogal.dev/adding-a-month-to-january-31?utm_source=hashnode&utm_medium=feed)

[1](https://hashnode.com/posts/adding-a-month-to-january-31/6ae9de20752b189d64f49771)
