Skip to content

Instantly share code, notes, and snippets.

@azriel91
Created July 20, 2024 08:23
Show Gist options
  • Save azriel91/973148dcea35f1f8b02ec0652aa0e3df to your computer and use it in GitHub Desktop.
Save azriel91/973148dcea35f1f8b02ec0652aa0e3df to your computer and use it in GitHub Desktop.
A list of difficult things in software roles

Software: Hard Things

Web Development

  1. Laying out elements in the right proportions.
  2. Responsive to screen size: mobile, tablet, desktop.
  3. Works across browsers: Edge, Safari, Chrome, Firefox.
  4. Across operating systems: Windows, OS X, Linux.
  5. Unstable ecosystem: node.

Graphics Development

  1. Loading textures with incorrect format.
  2. Texture coordinates incorrect.
  3. Screen coordinates incorrect.
  4. Camera facing incorrect direction.
  5. Z culling.
  6. Lighting is incorrect.
  7. 16 ms.

System Administration

  1. Ever-growing files.
  2. Deleting incorrect files.
  3. System overload.
  4. Troubleshooting which applications interacting together create a fault.
  5. Secrets policy changes, rotation - old vs new.
  6. Ensuring backups exist.
  7. Restoring backups.
  8. On-call roster.

Networking

  1. Is there a route from A to B.
  2. Is there a firewall allowing you to cross that route.
  3. Are the packets rejected, or silently dropped.
  4. Do you have appropriate CIDR block sizes.

Backend Development

  1. Race conditions.
  2. Database design:
    1. Data modelling (versioning)
    2. Integrity (constraints)
    3. Access patterns (performance)
  3. Data migration.
  4. API design:
    1. Sensible defaults.
    2. Informative errors.
  5. Privacy.
  6. Security.
  7. Searching and filtering, pagination.
  8. Queuing and guarantees.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment