Add ground beef, breadcrumbs, cheese, egg, Italian seasoning and a sprinkle of salt and pepper to a large bowl. Mix to combine and portion into small / medium size meatballs.
Meanwhile heat oil in a large pot.Add meatballs making sure not to over crowd the pan. (I had to do two batches).Cook on medium high heat for 2-3 minutes on each side. They don't have to be fully cooked. They will continue to cook in the soup.
Take meatballs out of the pan.
Add in onion, carrots, celery and potatoes. Sauté for 3-4 minutes. (If there is not enough leftover oil from the meatballs add some more in.)Add in garlic and cook for an additional minute.
Stir in broth, tomatoes, seasoning, bay leaves and Worcestershire sauce.Bring to a boil then simmer for 30 minutes.
Add meatballs back to the soup and cook for an additional 15 minutes or until the meatballs are cooked all the way through and the potatoes are tender.Season with salt and pepper to taste.Serve immediately with parmesan cheese and fresh thyme on top if desired.