If you have to call a “plumber”, check his work and get his cell phone # for …‘recalls,’ while he is there.
Check the # he gives you while he is still there.
This may sound odd but before you call in a plumber try this:
One by one, remove, clean and replace the little screw-on mesh thingy at the end of every faucet in your home. You will most likely find little white sediment granules trapped in the mesh. If stuck in the cap, a toothbrush will clean it out easily.
I have had the exact same problem and when a friend told me to do this I thought she was nuts. Don’t know why, but the water pressure and hot water improved immediately. I do this now from time to time whenever the hot water seems sluggish or not heating well. Works like a charm.
It could also be the valve diaphragm in the water heater. Ours went out last year and caused the same symptoms: low water pressure and the heat lasted only a minute or two. The diaphragm has a service life of 2-5 years. Replacing it was a TW$400 service call including parts and labor.
Or it could be something more simple like the water pressure valve coming into the water heater having been turned down. Most water heaters have two knobs, one controlling the water pressure coming in and another controlling the heat (actually controls the gas pressure). The incoming line on the heater also has one of those mesh filters to filter out sediment in the line and it could be clogged.
Personally I’d call the water heater guys first. We just called the service number printed on the water heater.