Final yr, at Cisco Stay 2025 in Las Vegas, I used to be reviewing every part for my session “DEVNET-3707 – Community Telemetry and AI for Community Incident Response“. I at all times check my demos earlier than my session, so I might be calm figuring out it should work. Nonetheless, this time throughout testing, I observed the metrics in my Grafana dashboard weren’t exhibiting up. I panicked and began troubleshooting. After some time I discovered an error within the Python script that was accumulating telemetry knowledge utilizing NETCONF, however didn’t know why. Supposedly my script ought to at all times work whatever the surroundings but it surely was not working. As a very good engineer, I deleted all of the containers I used, Grafana, Telegraf, InfluxDB and created them once more, time and again till it labored.
The demo labored and my session went nicely, however this was not one thing I needed to repeat. I at all times attempt to make my initiatives comply with my mantra of “construct and neglect” however I did discover that the script utilized by Telegraf was not following my mantra. I used Poetry at the moment and debugging it may take me some time.
Once I say “construct and neglect”, I imply principally to create and configure your initiatives in a means that you would be able to construct them as soon as and neglect about them as a result of they work each single time. That is how I wish to construct and that is what I needed to share in my month of developer productiveness collection on our YouTube channel. It covers the developer productiveness instruments builders and engineers must cease preventing their surroundings and begin coding.
Within the first video I present tips on how to set your surroundings like a professional. As soon as your surroundings is ready, video 2 makes certain your IDE catches errors earlier than they trigger issues. Even with all of that, issues nonetheless go mistaken, so video 3 provides you the instruments to search out out why. And when it really works, video 4 makes certain it really works in every single place, not simply in your machine.
Video 1 – Your Dev Surroundings
In my first video, “Set Up Your Dev Surroundings Like a Professional,” I share some helpful VS Code extensions and settings, together with how Distant Explorer with distant.SSH.defaultExtensions may also help you get your surroundings on a VM immediately and when you configure your SSH shopper to ahead your SSH keys, it seems like magic; having an entire surroundings along with your favourite extensions in a model new VM able to push to GitHub straight away. And when you use containers as an alternative, Dev Containers are the way in which to go. Right here you may outline your surroundings (together with your extensions) in a devcontainer.json file and have it prepared in seconds. Better of all, this configuration is model managed and everybody who clones your repo can have the identical surroundings. You’ll find the video right here, together with tips on how to configure your OpenSSH shopper: Watch the video
Video 2 – Make Your IDE Work for You
After getting your surroundings prepared, it’s nice to ensure your IDE is doing the be just right for you with easy however very highly effective instruments. In my expertise, while you don’t use these instruments, it is vitally arduous to comply with the code and perceive what’s going on. In my second video I configure formatters like Prettier and Black, linters like Pylint, Ruff and sort checkers like Pylance and ty. Each time you save your Python code, Black codecs it properly, Ruff and Pylint examine for errors, Pylance and ty examine for kind errors. And with editor.codeActionsOnSave set to supply.fixAll: "specific" and editor.formatOnSave set to true, Ruff may even repair a number of the errors for you, each time you save your code. The second video is right here: Watch the video
Video 3 – Debug Like You Imply It
After the surroundings and your IDE are executed, a reasonably widespread process is to debug your code. Errors are so widespread, particularly when coping with distant knowledge buildings like YANG fashions, the place you don’t have a transparent REST API schema and also you solely have the YANG schema, which isn’t that simple to comply with. Right here a debugger is right on condition that relying on how your gadget is configured, the information you expect could be lacking. The launch.json file helps you configure your debugger so, with a easy F5, you can begin debugging your code shortly. Breakpoints, watch expressions, the debug console (REPL), conditional breakpoints and logpoints are a few of your greatest buddies when issues go south and also you don’t know why. In my third video I clarify the launch.json file and undergo these debugger instruments: Watch the video
Video 4 – Ship It Wherever
Lastly, it’s time to ship your code, and one thing that contradicts my mantra “construct and neglect” is the “it solely works on my laptop” thought. The “neglect” half applies wherever, your laptop computer, your coworker’s laptop computer, a server, a pipeline, and so on. In case you are growing with Python, I’ve discovered that uv is nice for reproducible builds. Use it accurately and you’ll at all times have the identical dependencies and similar surroundings, so your code will at all times work. Neglect about points with dependencies which can be damaged and will not be in your management, the dependency hell. However uv alone isn’t sufficient, to get essentially the most out of uv you would possibly want to make use of particular flags and instructions which with time you’ll neglect (no less than I do), that’s why uv + make is a good mixture. I solely have to recollect easy instructions like make construct and make run and the Makefile will care for the remaining. And when you put that on a container, you might be certain it should run wherever. I cowl this very helpful sample in my fourth video: Watch the video
Bear in mind the mantra “construct and neglect” and apply it to your initiatives; it should make your life simpler. I’ve been following this mantra for all my newer initiatives they usually simply work, and I can loosen up.
Sources
Listed below are a number of the assets I discussed within the movies:
Add any questions or feedback you will have in regards to the movies or the weblog. I will likely be comfortable to reply them.
