Industry: Software Development

JetBrains products used: PyCharm

Organization Size: 30+

Country: Germany

Scieneers

Scieneers is an IT company made up of 35 experts in IT, data, and data science who are passionate about data and extracting value from it. They offer focused data engineering and data science services to extract valuable insights and maximize the potential of data.

“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

Can you please introduce yourself and what your company does?

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.

What prompted the choice of PyCharm as your primary IDE?

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.

What challenges has PyCharm helped you overcome in your development?

PyCharm has helped me:

  • Reduce context switching between multiple applications and tools.
  • Perform refactorings quickly and reliably.
  • Easily encapsulate multiple local or remote execution steps in a single run configuration.
  • Execute and debug code on remote machines, while preserving data privacy.
  • Experiment and prototype with remote Jupyter notebooks.

What are some benefits specifically associated with using Jupyter Notebooks in PyCharm?

Here are some features that stood out to me while using Jupyter notebooks in PyCharm:

  • Access to PyCharm’s refactorings.
  • Frictionless extraction of code from the notebook to a separate package.
  • Access to PyCharm’s debugger from within notebook cells.
  • The ability to run Jupyter on a remote machine via an SSH interpreter.

Can you share an example where PyCharm’s debugging tools were instrumental in identifying and resolving issues in a machine learning project?

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.

Could you discuss the role of PyCharm in the scaling of machine learning models?

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.

Have you already used or are planning to use any of PyCharm’s AI Assistant features?

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.

Contacts