Uploading sketches and debugging over WiFi with a NodeMCU

I have a project that is powered via the USB serial interface. Is there a way to upload sketches over WiFi and be able to use the Serial monitor to view debugging statements so I don't have to keep my computer connected to the NodeMCU?

for upload use ArduinoOTA library.
for debug use Telnet server. I made a simple library for it