I am an experienced software developer and IT operations engineer with a pragmatic approach and preference for stability over experimentation. My motivation comes mainly from building something of value and use to others. Although I can still appreciate the intrinsic beauty in a well designed algorithm, elegant data structure or clever expression of computational logic, I see software systems as a means to an end; any perfectly engineered application does not matter if nobody uses it.
Having often worked in small teams with a large responsibility surface, I have out of necessity learned how to design low-maintenance systems. Instead of specializing in a narrow area, I learned how to be effective and productive across the stack. As a result, my standards for the development experience are very high: Short feedback cycles, stable, mature and battle-hardened software tools, well documented workflows and automation of mundane tasks. An application must be comprehensible and its behaviour transparent; to this end, automated testing, error reporting, logging, and metrics reporting are invaluable tools.
A crucial fact in software development: Code is much, much harder to read than it is to write. Therefore, documentation, readability and maintainability are extremely important to me. Not only for the code we write, but also for the libraries we depend on. I prefer to utilize established, mature tools that work and do not surprise the user, rather than experimenting with the latest fad of the week. This approach allows developers to get the job done and keep focus on higher levels of abstraction.
I am an avid Linux user who lives in the terminal. I invest a lot of time to learn the ins and outs of the tools I use regularly. For example, I use a tiling window manager and have learned most common operations in muscle memory, as well as the majority of the keybindings in my text editor. I find these skills essential in order to get things done effectively and leave mental capacity for higher level ideas.
I am patient and humble, and a reliable team player. I have a strong sense of fairness and value good reasoning over arguments from authority. Being an introvert and analytical by nature, I perform best on problems that are given due time for focus, deep work and reflection. An effective workplace needs to balance the need of close collaboration versus focused work, and I will not thrive in an environment which focuses solely on either extreme of that scale.
My core technological skills revolve around Python and web programming. Here's a summary of the tools and technologies I'm skilled in and use regularly:
- Desktop environment:
- Arch Linux, Sway, Alacritty, Firefox, VS Code, Sublime Text, vim, Obsidian. (See also my public dotfiles)
- Python, Java, Scala, Flask, Django, PostgreSQL, SQLAlchemy, RabbitMQ, cryptocurrency/blockchain.
- DevOps and SRE:
- Git, Docker, Kubernetes, Travis CI, Let's Encrypt, Prometheus/Grafana, Sentry, Google Analytics, Google Cloud, AWS.