Josh A. Young
Mobile Software Engineer
Resources
Here, I will be listing helpful resources, documentation, and tools that I use in my daily web development workflow. I will continually update this page as I discover more tools that are beneficial. I have included a list grouped into categories below.
- Accessibility
- Ansible
- APIs
- ASDF
- Authentication / Authorization
- Azure
- Blazor
- Blogs
- Build Tools
- C#
- Cheat Sheets
- Code Best Practices
- Compatibility
- CPE Resources
- CSS
- Design
- Docker
- Documentation
- Domain Driven Design
- Email Design
- FreeBSD
- FreeNAS
- GitHub
- HTML
- Image Optimization
- Images
- Java
- JavaScript
- Jekyll
- Jest
- Leadership
- Levelling-up
- Linux
- Markdown
- Miscellaneous
- Network Tools
- Networking Resources
- News
- Pair Programming
- Performance
- Product
- Programming
- Python
- React
- REST
- REST
- Ruby / Rails
- Security
- Slack
- Software
- Software Diagramming
- Software Engineering
- SQL
- Technology
- Temporary Services
- Testing
- Time/Date
- Tools
- Trainer's Websites
- Tutorials
- User Experience (UX)
- Validation
- Videos
- Xamarin / MAUI
- YAML
Accessibility
Ansible
- Vagrant Cloud
- Checking if a file exists in Ansible
- Ansible Bookmarks
- Everything about Ansible Loops
- Getting Started with Ansible - Wiki
- Getting started with Ansible - Video Series
APIs
ASDF
Authentication / Authorization
Azure
Blazor
- How to deploy ASP.NET Blazor WebAssembly to GitHub Pages
- Blazor University
- Deploy a Blazor app on GitHub Pages
Blogs
Build Tools
C#
- Simplifying Events with Commanding
- Getting rid of warnings with nullable reference types and JSON object models in C#
- Coding Helmet
- Is C# pass by value or pass by reference?
- What is the difference between a DTO and a POCO (or POJO)
- DictionaryEntry
- Unit testing in C#
- Set object property using reflection
- Major.Minor.Patch
- Standard numeric format strings
- How to use StringFormat in XAML elements
- Bulletproof Interface Deserialization in Json.NET
- How to update value in a List using LINQ
- Swagger Editor
- Generic Parameter Constraints for C#
- C# - Action vs Func
- C# code contracts vs input validation
- Exceptions for flow control in C#
- KISS revisited
- Separation of Concerns in ORM
- Marshal and Unmarshal
- The Operation Result Pattern
- C# programming guide
- JSON2Csharp
- How to Deserialize JSON Into Dynamic Object in C#
- Correcting Common Async/Await Mistakes in .NET
- JSON to C#
- C# Fundamentals for Absolute Beginners
- Microsoft Reference Source
- Linq Projection Operators
- Async/Await - Best Practices in Asynchronous Programming
- Fixing NuGet error: Unable to load the service index for source - 401 Unauthorized
- C# Coding Conventions
- C# Async Antipatterns
- Understanding C# async / await
- C# code snippets
- C# Coding Standards and Naming Conventions
- Value types (C# reference)
- Extension Methods (C# Programming Guide)
- Reference types (C# Reference)
- Dot Net Fiddle
- VisualStudio .gitignore
Cheat Sheets
- DevHints.io
- Typography Cheatsheet
- Jetbrains Rider - Keyboard Shortcuts
- Tailwind CSS
- Favicon Cheat Sheet
- Pry Cheat Sheet
- Stimulus Cheat Sheet
- Cheat Sheet Series Project
- Vim Cheat Sheet
- Git Cheat Sheet
- SQL Basics Cheatsheet
- SQL Cheat Sheet
Code Best Practices
- Code Review Guidelines
- Tools for Better Thinking
- Essential RubyOnRails patterns
- Rails Service Objects: A Comprehensive Guide
- Conventional Commits
- 7 Patterns to Refactor Fat ActiveRecord Models
- Decorators in Ruby
- Presenter Pattern
- View Objects
- Decorators and Presenters
- SOLID
- Refactoring and Design Patterns
- Design Patterns in Ruby
- Design Patterns in Ruby - github
- Refactoring Catalog
- The 12-Factor App
- Code Review Best Practices
- Code Review Best Practices
- Ruby Best Practices
- Style Guides
- Git Explorer
- How To Remove Files From Git Commit
- Git Version Control Guide
- How to Change the User for All Your Git Commits
- Git Best Practices
- Atomic Commits
Compatibility
CPE Resources
CSS
- Ceaser CSS Easing Animation Tool
- Flex Cheat Sheet
- Grid by Example
- Suit CSS
- Flexbox Guide
- HSL Tool
- Grid Guide
- CSS Stats
- CSS Matic Tools
Design
- Colour Lovers
- Layout Lab
- Coolor Color Generator
- CSS Named Colors
- CSS Clip Path Generator
- Noise Texture Generator
- Paletton
- Lorem Pixel
- Subtle Patterns
- Coverr
- Kuler
Docker
- Docker Images
- Backup and Restore of Docker Volumes: A Step-by-Step Guide
- How to migrate Docker volumes to a different host
- How to wait for MSSQL in Docker Compose?
- Best practices when writing a Dockerfile for a Ruby application
- Docker Hub
Documentation
- Microsoft Documentation
- MDN
- ISO 8601
- Document Templates
- ASCII
- Google Web Fundamentals
- Resource-Oriented Client Architecture
- Reporting with SQL
Domain Driven Design
Email Design
FreeBSD
FreeNAS
- FreeNAS Essentials: How to set up SMART Tests and Scrubs
- How to Replace Failed HDDs in FreeNAS 9.3
- How to Replace a Bad Hard Drive in a FreeNAS 9 Encrypted Raid Array
GitHub
HTML
Image Optimization
Images
Java
- Java .gitignore
- WebJars
- A Start to Finish Guide to Docker with Java
- Spring - Command line support
- Three Ways to Create Docker Images for Java
JavaScript
- Import and Export
- The Ultimate Guide to yarn.lock Lockfiles
- Javascript: How to create chainable functions
- Function Chaining
- How to Use Fetch with async/await
- Second-guessing the modern web
- IIFE
- Mocking Callbacks in Jest
- ES6 Modules without Webpack/Babel
- Jest URL Mocking
- You Might Not Need jQuery
- Regex Builder
- John Resig Learn
- JSLint
- jQAPI
- JSFiddle
- JavaScript Encyclopedia
Jekyll
Jest
Leadership
- How to Exhibit Leadership as an Individual Contributor
- Mastering the Art of Managing Up: A Developer's Guide to Career Advancement
Levelling-up
- Front End Center
- Brilliant
- Dotnet Maui Developer Roadmap
- Mountain Goat Software
- Destroy All Software
- Succinctly Series
- JS Complete
- Execute Program
- Flexbox Froggy
- CSS Grid Garden
- Exercism
- The 30-Day Code Quality Challenge
- LukeW Ideation + Design
- Gymnasium
Linux
- SCP Reference
- Zsh/Bash startup files loading order (.bashrc, .zshrc etc.)
- .bashrc vs .bash_profile
- Linux Delta - How-To Guides
Markdown
Miscellaneous
- Secure Tunnel
- Kent C. Dodds - Links
- Rich HTML in GitHub README
- Floating Point Accuracy problems
- Recovering from CTRL+S in Putty
- GitHut
- Meta Tags
- Falsehoods Programmers Believe About Names
- Remote Work Guide
- User Stories
- Developer Roadmap
Network Tools
Networking Resources
News
Pair Programming
Performance
- Performance Budget Calculator
- Page Speed Insights
- Web Page Test
- HTTP Archive
- GZip Test
- Performance Rules
- Nibbler
- Pingdom Website Speed Test
Product
Programming
- RegExr
- Learn X in Y minutes
- TIOBE Index
- The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)
- Typing the Untyped: Soundness in Gradual Type Systems
- From Bash to Python
- Rubular
- Naming
- Rails Documentation
- Rails Instance Variables
- Git Immersion
- Use Different Git Email Addresses
- Rails Casts
- Git Book
- Git Tips
- Ruby Koans
- PHP Package List
- Ruby Tapas
- PHP Manual
Python
React
- A guide to module mocking with Jest
- React Reference Guide - Hooks API
- How to use Props in React
- Jest .fn() and .spyOn() spy/stub/mock assertion reference
- Fetch Data with React Hooks
- Why React Context is Not a 'State Management' Tool (and Why It Does not Replace Redux)
- Using Redux Toolkits createAsyncThunk
- Smarter Redux with Redux Toolkit
- How to Test React Components: the Complete Guide
REST
REST
Ruby / Rails
- Rails HTTP Status Codes
- The Rails Style Guide
- React on Rails: Building a Simple App (with React)
- How I code without service objects
- Ruby and dependency injection in a dynamic world
- Using application-wide variables in Rails 4
- How I organize my Rails apps
- Binding.pry
- Heuristics for Object Oriented Design in Ruby
- Documentation for Ruby
- Ruby For Beginners
- Back to Basics: HTTP Requests in Rails Apps
- Sandi Metz' Rules For Developers
- Let's Not
- RailsDiff
- Active Model Validations
- SimpleForm: forms made easy
- List of Rails Status Code Symbols
- Finder Methods
- Rails ActiveRecord Class Methods
- Enhanced Ruby on Rails Architecture
- Decorator on Rails
- Iterator/Reducer Quick Reference
- Rails Design Patterns
- Rails API
- Ruby Docs
- Rails Forms
- Date/Time Naming Conventions
- Rails Console Tips
- View Models
- View Models & Form Objects, Etc.
- Load Paths
- Rails SQL Injection
- Ruby OOP
- Design Patterns in Ruby
- How to Learn Ruby on Rails
Security
- Content Security Policy
- OWASP Dependency-Check
- Perfect Passwords
- Have I Been Pwned
- OWASP WebGoat
- Ping Sweep in Kali Linux 2020
- Securing Public Web Servers
- Security Headers
- Mozilla Observatory
- Web Security
Slack
- View Objects
- How to Get Better at Things
- How to Configure RSpec
- Babel Present Env
- Ten Principles for Growth as Engineer
Software
- Web Sequence Diagrams
- Quantity Always Trumps Quality
- 7 Ways To Make Software Developers Happy
- The Product-Minded Software Engineer
- Embrace Beginner's Mind; Avoid The Wrong Way To Be An Expert
- What I've Learned in 45 Years in the Software Industry
- Why We Argue: Style
- Clean Code Ruby
Software Diagramming
Software Engineering
- Gerald M. Weinberg
- Karl Wiegers
- Writing User Stories With Gherkin
- The Pot Roast Story
- How To Implement Micro-Frontend Architecture With React
- If everyone is senior, then no one is senior
- Falling Into The Pit of Success
- Micro frontends
- Pattern: Backends For Frontends
- Micro Frontends
- BFF @ SoundCloud
SQL
- SQL Connection Strings
- SQL Join Types – Inner Join VS Outer Join Example
- Creating Reusable Components with .NET MAUI
- Easily control the executability of Commands using MVVM Source Generators
- RSA Encryption In C# using Microsoft Cryptography Library
- C# RSA encryption-decryption with my own key
- Removing async void
- Postgresql User Account
- SQL Associations
- Modifying Data With SQL
Technology
Temporary Services
Testing
- BDD vs TDD vs ATDD : Key Differences
- TDD is a lot easier with the right tools
- Integration testing or how to sleep well at nights
- Mocks Aren't Stubs
- How We Test Rails Applications
- TestPyramid
- What are the different kinds of Rails tests...
- Unit testing best practices with .NET Core and .NET Standard
- Test Driven Development
- High-Low Testing
- Testing JavaScript with Jest
- Mocking Fetch with Jest
- Learning Jest Through Practice
- xUnit Test Patterns
- F.I.R.S.T. Properties of Unit Tests
- Testing Rails
- Better Specs
Time/Date
Tools
Trainer's Websites
Tutorials
User Experience (UX)
Validation
Videos
- The Deep Synergy Between Testability and Good Design
- RubyConf 2017: Get Off the Tightrope by Tom Stuart
- Therapeutic Refactoring by Katrina Owen
- Refactoring to Form Objects in Rails
- Learn Enough Ruby
- Confident Code
- Refactoring Fat Models with Patterns
- Practical Object-Oriented Design in Ruby
- SOLID Object-Oriented Design
- Turn the Ship Around
- A Fresh Look at Tell, Don't Ask
- Get a Whiff of This
- Refactoring Live: Primitive Obsession
- How to Stop Hating your Test Suite
- Full Stack Fest 2015: Nothing is Something
- RailsConf 2014 - Debugger Driven Development with Pry
- Agile Product Ownership in a Nutshell
- Refactoring from Good to Great
- The Magic Tricks of Testing
- What we can learn about testing from the wheel
- Write tests. Not too many. Mostly integration.
- All The Little Things
Xamarin / MAUI
- How To Work With CollectionView in Xamarin Forms
- App Configuration Settings in .NET MAUI (appsettings.json)
- Using ConfigureAwait to improve your application
- MVVM - Going async with async command
- Improve app performance
- Where to put database initialisation code in Maui App
- A simple Navigation Service for Xamarin.Forms
- SQLite-net
- Store data locally with SQLite
- Why is the control inaccessible due to its protection level
- Responsive Layouts in .NET MAUI with OnOrientationExtension
- .Net MAUI data binding not carrying through to custom component
- Deploying your .NET MAUI apps to production
- MAUI: Customize an Entry
- Useful converters in Xamarin Forms
- How to set the flyout menu only on a certain page - .NET MAUI
- Run method in viewmodel after receiving object in AppShell .NET MAUI
- awesome-dotnet-maui
- How to check the multiple permission at single request in Android M?
- Xamarin.Forms Shell : Navigation
- MAUISqlite
- Exploring Layout Options in .NET MAUI
- Xamarin.Forms to .NET MAUI: How Layout Behavior Has Evolved
- Binding to Static Property
- Configuring Life Cycle Events in .NET MAUI Apps
- ARGB Hex Values
- Entry Text Validation Behavior
- Simplify your local data storage with SQLite-net
- Styling Apps with CSS in .NET MAUI
- Removing async void
- Setting up a basic MVVM architecture in .NET MAUI
- Dependency injection using Shell in MAUI
- .Net Maui Samples
- Unit test projects can't reference Maui multi target projects
- Validation
- Platform-Specific Code in .NET MAUI Using Dependency Injection
- Find Resource in Code-Behind
- Maui Docs
- Centered StackLayout within StackLayout does not center
- Syncfusion Examples
- Splash Screen in .NET MAUI
- Use Navigation Page in Maui
- David Ortinau Videos
- Avoid async calls in view model constructors
- Turn Events into Commands with Behaviors
- Pass OnAppearing to a ViewModel in Xamarin Forms MVVM
- Run Methods in View Model after Receiving Object in AppShell .NET MAUI
- Adding SQLite to the .NET MAUI application
- C# SQLite
- dotnet-maui-samples
- Async / Await and Task best practices for Xamarin
- Syncfusion, Inc Videos
- Injecting Services into View Models
- Global Exception Handling in Xamarin.Forms
- Planning a Network Caching Strategy (VLOG)
- Why is async void bad and how do I await a Task in an object constructor in C#?
- Improve Xamarin.Forms App Performance
- Xamarin.Forms application fundamentals
- App Icons Generator 2
- Ask Xammy
- SwipeView Interaction with Xamarin.Forms
- Implement DependsOn without Fody
- How to create a simple Web Service for your Xamarin Application
- Improve Xamarin.Forms App Performance
- eXtensible Application Markup Language
- Stateless View Models
- Stop Putting State In Your View Models
- XAML Naming Conventions in Xamarin Forms
- Xamarin Coding Standards
- Using Data Binding in Xamarin Applications
- The Coordinate System in Xamarin.Forms and Android
- Safe Area Layout Guide on iOS
- ListView Data Sources
- Introduction to Enterprise App Development
- Get started with Xamarin
- Xamarin Tutorials
- xamarin-101
- Xamarin.Forms documentation
- Xamarin List view guide
- Xamarin documentation
- Microsoft Classes