• Open positions
  • Get to know us
  • FAQ
Open positions

Senior Python Engineer

Senior Python Engineer
B2B140 - 170 PLN NET PER HOUR
LOCATION + Remote Poland: Gdańsk, Katowice, Kielce, Kraków, Rzeszów, Warszawa, Wrocław
Apply now

VirtusLab is a leading European software consulting and engineering company, home to over 350 EU-based professionals. Our mission is to craft clean code and practical solutions with precision and purpose. We foster a dynamic culture rooted in strong engineering, a sense of ownership, and transparency, empowering our team. As part of the expanding VirtusLab Group, we offer a compelling environment for those seeking to make a substantial impact in the software industry within a forward-thinking organization.

About the role

We’re looking for an engineer to join a small, startup-like team building a tool for deploying and configuring local AI inference on local devices like NVIDIA Spark. You’ll work on managing the model lifecycle (start/stop) and connecting coding agents—such as Claude Code, Codex, and others—to locally hosted models.

Your daily work will be on the backend: adapting LiteLLM configuration as agent APIs (Claude Code, Codex, etc.) evolve, managing the lifecycle of docker images that ship the agents, integrating with the Hugging Face API for model downloads, and getting the production essentials right—idempotent endpoints, retries with backoff, and straightforward migrations.

The team already has an internal MVP and talks directly with potential users. We’re on the road to making it open source. If you want to shape a developer tool from the early stages, this is it.

 

 

Python Expert
Asyncio / concurrent programming Advanced
FastAPI Advanced
Docker Regular
LiteLLM / LLM proxy layers Regular
English Advanced
vLLM or ollama Nice to have
HuggingFace API Nice to have
GPU inference setups (CUDA, NVIDIA hardware) Nice to have
Coding agents (Claude Code, Codex, Aider) Nice to have
View available projects
Project
Local Inference Platform for Python Engineers
Project Scope

A desktop application for deploying and configuring local AI inference on local devices (e.g., NVIDIA Spark / DGX Spark), managing model lifecycle (start/stop), and connecting coding agents like Claude Code and Codex to locally hosted models. Currently an internal MVP, on the road to open source.

Tech Stack

Python, Asyncio, FastAPI, LiteLLM, Pydantic, PostgreSQL, AWS, Agent layer: LLM proxy routing from agents to BE

Challenges

Building a desktop control plane for local AI agents that abstracts away the messy parts of running LLMs on heterogeneous hardware — model lifecycle, proxy routing, agent configuration, and OS-specific quirks (path separators, signing, packaging) — while keeping the system extensible enough to evolve toward open source. Visualising model statistics and system load on top of a backend that actually does the deployment.

Team

Small, startup-like team on the JetBrains side — no bureaucracy, direct contact with potential users, fast iteration. Code reviews as part of the process.

What we expect in general:

  • Strong Python skills with experience in backend frameworks such as FastAPI or Flask.
  • Solid understanding of concurrent and asynchronous programming.
  • Ability to rapidly prototype and iterate on emerging ideas.
  • Engineering pragmatism: cutting complexity while keeping the system extensible.
  • System-level thinking: understanding how the Docker lifecycle, LLM proxy routing, model management, and the agent layer fit together.
  • Hands-on experience using LLMs daily, with the judgment to know when they help and when they don’t.
  • Self-motivation and the ability to take full ownership of features end-to-end.
  • Fluency in English, with good communication skills for a remote-first team.

 

Nice to have:

  • Experience using Docker for local deployment and service orchestration.
  • Experience setting up and maintaining an LLM proxy layer such as LiteLLM or OpenRouter.
  • Experience with vLLM or ollama.
  • Familiarity with the HuggingFace API and model distribution patterns.
  • Experience with local GPU inference setups (CUDA, NVIDIA hardware)
  • Background working with coding agents (Claude Code, Codex, Aider) and their configurations.

 

Seems like lots of expectations, huh? Don’t worry! You don’t have to meet all the requirements.
What matters most is your passion and willingness to develop. Apply and find out!

A few perks of being with us

Building tech community
Building tech community
Flexible hybrid work model
Flexible hybrid work model
Home office reimbursement
Home office reimbursement
Language lessons
Language lessons
MyBenefit points
MyBenefit points
Private healthcare
Private healthcare
Training Package
Training Package
Virtusity / in-house training
Virtusity / in-house training
And a lot more!

Apply now

Senior Python Engineer

"*" indicates required fields

Accepted file types: pdf, Max. file size: 5 MB.
Please submit a CV no longer than two pages.
Current recruitment process: For the purpose of recruitment, I hereby give consent as per art. 6.1.a of the GDPR to processing of my personal data (other than that listed in art. 22 [1] § 1 Labour Code) by Virtus Lab Sp. z o. o. (as Co-Controller for a full list of joint controllers, see Privacy Policy) with its headquarters at Szlak 49 Street, 31-153 Cracow. At the same time I accept the Privacy Policy of the Data Controller. I acknowledge that my personal data will be kept for the duration of the recruitment process and as regards any potential claims, for the period of 36 months maximum, and that I have the right to access this data or have it rectified or deleted on demand. This consent can be withdrawn at any time, but this withdrawal does not make the previous processing illegal*.(Required)*

Current recruitment process: For the purpose of recruitment, I hereby give consent as per art. 6.1.a of the GDPR to processing of my personal data (other than that listed in art. 22 [1] § 1 Labour Code) by Virtus Lab Sp. z o. o. (as Co-Controller for a full list of joint controllers, see Privacy Policy) with its headquarters at Szlak 49 Street, 31-153 Cracow. At the same time I accept the Privacy Policy of the Data Controller. I acknowledge that my personal data will be kept for the duration of the recruitment process and as regards any potential claims, for the period of 36 months maximum, and that I have the right to access this data or have it rectified or deleted on demand. This consent can be withdrawn at any time, but this withdrawal does not make the previous processing illegal*.

(Required)
Future recruitment processes: I hereby give consent as per art. 6.1.a of the GDPR to the processing of my personal data by Virtus Lab Sp. z o. o. (as Co-Controller for a full list of joint controllers, see Privacy Policy) with its headquarters at Szlak 49 Street, 31-153 Cracow, in order to use this data in future recruitment processes. I hereby agree to possible storage of my personal data for this purpose in Virtus Lab’s database for a period of 36 months maximum. At the same time I accept the Privacy Policy of the Data Controller. I acknowledge that I have the right to access this data or have it rectified or deleted on demand. This consent can be withdrawn at any point, but this does not make the previous processing illegal*.

Future recruitment processes: I hereby give consent as per art. 6.1.a of the GDPR to the processing of my personal data by Virtus Lab Sp. z o. o. (as Co-Controller for a full list of joint controllers, see Privacy Policy) with its headquarters at Szlak 49 Street, 31-153 Cracow, in order to use this data in future recruitment processes. I hereby agree to possible storage of my personal data for this purpose in Virtus Lab’s database for a period of 36 months maximum. At the same time I accept the Privacy Policy of the Data Controller. I acknowledge that I have the right to access this data or have it rectified or deleted on demand. This consent can be withdrawn at any point, but this does not make the previous processing illegal*.

Aleksandra Grabowska
Coordinated by
Aleksandra Grabowska
IT Talent Acquisition Specialist
linkedin
Senior Python Engineer
B2B140 - 170 PLN NET PER HOUR
LOCATION + Remote Poland: Gdańsk, Katowice, Kielce, Kraków, Rzeszów, Warszawa, Wrocław
Apply now
group of people gathered together
Not sure if this role is right for you?
It doesn't mean that you don't match. Tell us about yourself and let us work on it together.
Contact us
We create and engineer software
Privacy Policy