Final 12 months, 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 all the time check my demos earlier than my session, so I may be calm figuring out it would work. Nonetheless, this time throughout testing, I observed the metrics in my Grafana dashboard weren’t displaying up. I panicked and began troubleshooting. After some time I discovered an error within the Python script that was amassing telemetry knowledge utilizing NETCONF, however didn’t know why. Supposedly my script ought to all the time work whatever the surroundings however it was not working. As a superb 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 effectively, however this was not one thing I wished to repeat. I all the time 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 mainly to create and configure your initiatives in a method you could 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 wished to share in my month of developer productiveness sequence on our YouTube channel. It covers the developer productiveness instruments builders and engineers must cease combating their surroundings and begin coding.
Within the first video I present learn how to set your surroundings like a professional. As soon as your surroundings is about, video 2 makes certain your IDE catches errors earlier than they trigger issues. Even with all of that, issues nonetheless go incorrect, so video 3 offers 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 Setting
In my first video, “Set Up Your Dev Setting Like a Professional,” I share some helpful VS Code extensions and settings, together with how Distant Explorer with distant.SSH.defaultExtensions can assist you get your surroundings on a VM instantly and in the event you configure your SSH consumer to ahead your SSH keys, it appears like magic; having a whole surroundings together with your favourite extensions in a model new VM able to push to GitHub straight away. And in the event you use containers as a substitute, Dev Containers are the best way to go. Right here you’ll be able to 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. Yow will discover the video right here, together with learn how to configure your OpenSSH consumer: Watch the video
Video 2 – Make Your IDE Work for You
Upon getting your surroundings prepared, it’s nice to verify your IDE is doing the give you the results you want with easy however very highly effective instruments. In my expertise, while you don’t use these instruments, it is extremely 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 kind 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 sort errors. And with editor.codeActionsOnSave set to supply.fixAll: "specific" and editor.formatOnSave set to true, Ruff may even repair a few 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 completed, a fairly frequent process is to debug your code. Errors are so frequent, particularly when coping with distant knowledge constructions 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 straightforward to comply with. Right here a debugger is right on condition that relying on how your gadget is configured, the info you expect may 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 pals 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 Anyplace
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 pc” concept. The “neglect” half applies wherever, your laptop computer, your coworker’s laptop computer, a server, a pipeline, and so forth. If you’re growing with Python, I’ve discovered that uv is nice for reproducible builds. Use it appropriately and you’ll all the time have the identical dependencies and similar surroundings, so your code will all the time work. Neglect about points with dependencies which are damaged and should not in your management, the dependency hell. However uv alone just isn’t sufficient, to get probably 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 in the event you put that on a container, you may be certain it would run wherever. I cowl this very helpful sample in my fourth video: Watch the video
Keep in mind the mantra “construct and neglect” and apply it to your initiatives; it would make your life simpler. I’ve been following this mantra for all my newer initiatives they usually simply work, and I can calm down.
Sources
Listed below are a few of the sources I discussed within the movies:
Add any questions or feedback you might have concerning the movies or the weblog. I will likely be blissful to reply them.