Position: Lead/Senior Software Engineer
Category: Python
English level: fluent
Years of experience: 7

- Streamlined DX on several past projects by introducing devcontainers and Nix devshells
- Maintain a small homelab with Proxmox
My responsibilities include communicating with customers, collecting their requirements, making architecture proposals, implementing the proposed architectures.

When it comes to implementation, I like to automate as much as possible, which includes employing the infrastructure-as-code techniques. My favorite IaC tool right now is Pulumi.

Python is the main language on most projects I contributed to, but I do like to learn new languages and technologies. Even if I do not use what I learned immediately, the new knowledge always has an impact on everything I do afterwards. I remember that learning Rust has changed how I structure my Python code to be more functional and more explicit regarding what parts of the code are responsible for what data.

I found it difficult to reproduce development environments sometimes, especially when onboarding new team member to a project and the process of installing all the required system dependencies is not documented properly. I am intrigued by NixOS and the Nix package manager, and I would like to explore the possibility of using nix-shell to set up environments with the necessary binary dependencies for a given project. I'd like to not have to remember to run `apt install libpq-dev` every time I want to `pip install psycopg2` on a fresh system; nix-shell can take care of this for me automatically.
I am looking for a position where I will be able to spend more time focusing on technical tasks (writing code) instead of making slides and proposals :)

I want to have more learning opportunities. I feel like my responsibilities have become very repetitive and not as challenging as before.