What's the load?
A Buck needs a catch diode and also an inductor which aren't shown in your schematic. You would also need voltage sense back to the uC to regulate. Overall, using a uC to create a buck driver is not optimal since you have a slow control loop (software) and only 'digital' steps in adjustment (pwm duty cycle). Typically a 'real' switcher IC uses a saw tooth ramp and comparators to enable the duty cycle to be adjusted in much finer 'steps'.
100KHz is relatively high, a npn with a pullup resistor will have quite slow turn off time and if the FET is switching high currents then the FET will dissipate more heat (loss) while switching off. You do realize FETs have high gate capacitance?
Either choose a FET that can be switched at logic levels or find a driver that has logic level inputs. Or better yet, buy an off the shelf switcher IC.
cheers,
george.