Prepare the farro according to the package directions.
Meanwhile, in a large mixing bowl combine the ground beef, eggs, breadcrumbs, and 1/2 of the onion. Use your hands to mix everything together, taking care not to overwork the meat. Divide the mixture into 18 rounds.
Heat the olive oil in a large soup pot set over high heat. Add the meatballs, working in batches if necessary, and cook for 3 minutes on each side or until thoroughly browned. Use a slotted spoon the transfer the meatballs to a plate.
Add the remaining onion to the pot and reduce the heat to medium. Cook 3-4 minutes, or until the onion begins to soften. Add the carrot and celery and cook 5 minutes. Add the chicken stock and 2 cups of water. Bring the soup to a simmer. Add the meatballs back to the pot and cook 10 minutes, or until cooked through. Stir in the farro, kale, and pesto; cook 2-3 minutes or until the kale wilts.
Serve topped with Parmesan cheese.