Industry: Software Development
JetBrains products used: PyCharm
Organization Size: 30+
Country: Germany
“PyCharm has a unique set of features compared to other IDEs. The most important one is its reliable and comprehensive refactoring capability. Another unique feature of PyCharm is its support for advanced run configurations. Furthermore, I like the “cockpit feeling” of PyCharm: It’s a centralized space that allows me quick access to all the tools necessary for my work.”
— Moritz Renftle, Data Scientist, Scieneers GmbH
I studied Computer Science at the University of Konstanz and Karlsruhe Institute of Technology (KIT), with a focus on databases and data science. I joined Scieneers in 2022 and, since then, have been developing and deploying data solutions for companies from diverse sectors. My work requires a broad skill set that includes analyzing data, developing custom models, reading up on recent machine learning techniques, and deploying data pipelines in the cloud.
Scieneers strengthen our clients’ teams or offer them our teams to design and develop complete data products and bring them to production. In addition to our clients in business and research, we also support numerous projects in the non-profit sector. Various samples of our work can be found on our website: https://www.scieneers.de.
First of all, I like the “cockpit feeling” of PyCharm: It’s a centralized space that allows me quick access to all the tools I need for my work. These include a code editor, a version control system, a terminal, and a database browser. Compared to using these tools in separate applications, PyCharm works with less friction and uses up less “brain energy” on context switches.
Furthermore, PyCharm has a unique set of features compared to other IDEs. The most important one is its reliable and comprehensive refactoring capability. Compared to other tools, PyCharm performs such refactorings very reliably and ensures that my existing code keeps working.
Another unique PyCharm feature is its support for advanced run configurations. For instance, I can effortlessly set up a run configuration that executes a Python script locally as a “Before launch” task before running the main application on a remote machine.
I also like the remote SSH interpreter integration in PyCharm. The SSH interpreter can be a bit difficult to set up, depending on network settings and other factors. But once it’s running, it works very reliably. Moreover, I love the ability to debug code on a remote machine. For instance, it’s particularly useful when training a machine learning model on a remote machine that has a certain GPU that I cannot test locally. I also love how easy it is to run remote Jupyter notebooks via SSH in PyCharm. Last but not least, PyCharm helps me prevent accidental uploads of code between different customers by specifying exactly which directories to upload to which remote machine.
PyCharm has helped me:
Here are some features that stood out to me while using Jupyter notebooks in PyCharm:
We had a bug in a preprocessing step of our ML pipeline that resulted in implausible values from our models. To debug this issue, I used PyCharm’s debugger on a remote GPU machine that executed the ML pipeline. We were quite certain that the bug was in our own code and not in an external library. Hence, during debugging, I used the “step into my code” feature of PyCharm and skipped any intermediate calls of library code. We were able to effectively track down and fix the problem by setting breakpoints and plotting intermediate data frames.
PyCharm enables the scaling and realistic testing of ML models by executing them remotely on a machine with the same hardware as the deployment environment.
I plan to try them out at the first opportunity I get. It would be great if one could use a local ML model or a self-hosted one for AI code completion.