RSSAmplifier

Blog

Amir Boroumand | Software Engineer based in Pittsburgh, PA on Amir Boroumand | Software engineer based in Pittsburgh, PA

Recent content in Amir Boroumand | Software Engineer based in Pittsburgh, PA on Amir Boroumand | Software engineer based in Pittsburgh, PA

steelcityamir.comRSS feed ↗48 posts

Latest posts

contact

📲 Releasing Steel City Time Machine: A Pittsburgh History App for iOS

Announcing the launch of Steel City Time Machine, an iOS app that brings Pittsburgh’s history to life.

Do You Still Need Apache Commons StringUtils in Modern Java?

Java 8 and later versions have introduced built-in string utilities that make Apache Commons StringUtils less necessary. Learn how to replace it with modern Java methods.

Safe Content AI: NSFW Image Detection API

An open-source API for detecting NSFW images powered by a modern AI image detection model.

🧽 Clean Static Site URLs with CloudFront and S3

Configure CloudFront so you can avoid ugly .html endings in URLs.

School District Locator

An open-source Python tool for identifying the school district associated with a street address powered by data from the federal government.

STSproxy: Secure, simple third-party AWS access

An open-source authentication proxy to provide secure, temporary, least-privilege credentials to your AWS environment.

ContainerCVE: Scan Docker images on the web

A website that allows you to scan any public DockerHub image for security vulnerabilities. Powered by the popular open-source tool Trivy.

✂️ The Playbook for Cutting Cloud Costs

Slash your cloud bill without impacting your operations.

📜 Six Rules for Designing a REST API

A checklist for building a successful REST API.

Adding SSL/TLS to a Web Application using AWS Application Load Balancer

I demonstrate how to add SSL/TLS to a web application running on AWS EC2 by configuring an application load balancer in front of it.

🌱 Testing Log Statements in Spring Boot

I explain how to test log statements in Spring Boot using the OutputCaptureExtension.

Publish a Docker Image to Private Docker Hub Repo Using GitHub Actions

I describe a common Git error and how to resolve it.

Delete Local Branches in Git

Command-line snippets for deleting multiple branches at once.

Git Error - fatal: Not a valid object name: 'master'

I describe a common Git error and how to resolve it.

Java Streams: Use anyMatch() over count() > 0 for checking at least one occurrence

I discuss why using the anyMatch() method in the Java Stream API is both safer and more performant than using filter().count > 0.

Spring overwrites map keys with bean name from value

I cover a strange behavior where Spring overwrites map keys with value bean names.

Understanding the PK in SAP Hybris Commerce

I cover the basics of how PK’s work in SAP Hybris.

Calling remove() on ArrayList throws UnsupportedOperationException

I cover one of the nuances in the Java Collections Framework when creating ArrayList objects.

Why Removing an Element from an ArrayList in Java Can Throw UnsupportedOperationException

In this article, we’ll cover one of the nuances in the Java Collections Framework when creating ArrayList objects.

Create List and Map Beans in Spring XML

In this article, we’ll explore how to create lists and maps in the Spring Framework using XML configuration.

Create a file with a specific size in Java

I cover how to create an empty file and a file with a certain size filled with random data.

The Risks of Dead Code in Software

Explore the dangers of dead code and how to prevent it.

Sort a List of Objects by Field in Java

I demonstrate the different ways to sort a list of objects by field.

Enum equality in Java

I cover what Java developers need to know enum equality.

Add a Timezone to LocalDateTime with ZonedDateTime in Java 8

I cover the ZonedDateTime class in Java 8.

Wesco Release Management Dashboard

A dashboard that provided visibility into release versions deployed to different environments such as Dev, QA, Stage, and Production. Integrated with Atlassian Bamboo API for deployment data.

My Journey from Sysadmin to Developer

How I pivoted from a career in systems administration to a software development.

The Java Developer's Guide to SSL Certificates

I cover what Java developers need to know about SSL certificates.

Desktop Software Licensing Features

Developed new features for Windows desktop application to add support for timed trials and product key activations.

When to Use an Abstract Class in Java

Abstract classes are used to provide some common functionality across a set of related classes while also allowing default method implementations.

Populate a Select Dropdown List using JSON

In this article, we’ll walk through code that populates a dropdown using sample JSON data containing Canadian province names and abbreviations.

Apache Struts Vulnerability Exploited in Equifax Breach (CVE-2017-5638)

The Equifax data breach announced last week exposed the personally identifiable information (PII) of 143 million people.

Loan Repayment Performance Scoring

Command-line application that scored short-term loan accounts based on payment history using a proprietary algorithm.

Use Duplicate Keys in a Map with Multimap from Google Guava

Learn how to use Google’s Guava Multimap to efficiently handle duplicate keys in Java maps and avoid the limitations of standard Map implementations.

The Developer's Guide to Browser Caching

I explain the how the browser uses its cache to load pages faster, which factors determine cache duration, and how we can bypass the cache when necessary..

The Java Developer's Guide to Maps

An updated guide on using maps in Java, reflecting changes up to Java 21.

View Source vs. Inspect Element

View Source and Inspect Element are two browser features that allow developers to look at the HTML for a particular page. Although their outputs can be the same, one should not assume they will be..

Using Apache as a Reverse Proxy for Spring Boot Embedded Tomcat

The article explains how to configure Apache as a reverse proxy for a Spring Boot application running on embedded Tomcat.

The Developer's Guide to Cookies 🍪

Cookies are a fundamental part of the web so understanding how they work is important for devs."

libc++abi.dylib: terminating with uncaught exception of type NSException

Why doesn't a static method call on a null object reference generate a NullPointerException?

We explore why static method calls on a null object reference don’t produce an NPE.

Use Character Arrays to Store Sensitive Text Data in Java

Storing passwords in Java String objects is risky due to immutability and unpredictable garbage collection, so using a char[] allows explicit memory clearing for better security.

EDMC Contact Center Call Compliance

Developed automation that delivered audio calls with metadata to third-party vendor for compliance purposes.

Getting Started with AWS SDK for PHP

A guide to installing and using the AWS SDK for PHP, including setup with Composer and examples for interacting with AWS services like S3 and EC2.

EDMC Enterprise File Transfer Automation

Developed file transfer automation for multiple business units.

EDMC AWS Cloud Integration

Developed solutions for SSO integration and S3 automation.

about