VSCodium
My main general-purpose editor for larger projects, broader navigation, and work that benefits from an integrated graphical environment, with the additional advantage of avoiding the default telemetry of the standard build.
Tools
This page is an overview of the software I use most often. It is not meant to list every installed utility, but rather the tools that best represent how I work: a Linux-based environment, a strong command-line workflow, dependable development tools, and practical applications for media and documents.
Operating System
Linux is my operating system of choice because it fits naturally with web development, scripting, automation, local servers, and the general command-line workflow I prefer. It keeps the system inspectable and makes it easy to combine smaller tools into repeatable tasks.
I also value that Linux tends to age well, works comfortably on modest hardware, and supports open formats and open tooling. That matters to me more than visual novelty, especially for teaching, research, and maintainable personal projects. I also keep a custom kernel build in use, which fits well with the more hands-on and adjustable style of system maintenance I prefer.
My everyday desktop setup is based on bspwm with sxhkd, polybar, dunst, and dmenu. That combination keeps the environment lightweight, keyboard-oriented, and predictable, which is exactly what I want from the system layer beneath the rest of the tools.
For file management, I use lf on the terminal side and Nemo when a graphical file manager is the more practical choice.
Development
My main general-purpose editor for larger projects, broader navigation, and work that benefits from an integrated graphical environment, with the additional advantage of avoiding the default telemetry of the standard build.
The editor I use when I want a faster and more focused terminal-based workflow, both for direct editing and for larger projects where a keyboard-first environment is the better fit.
A lightweight text editor that remains useful for quick edits and simpler tasks where I do not need a heavier development environment.
Still the baseline tool for version control, history inspection, and keeping changes reviewable and maintainable.
A practical database for local tools, prototypes, and smaller systems where simplicity is more valuable than running a full database server.
An essential part of current web tooling, local scripts, build steps, and JavaScript-based development work.
Tools I keep available for Java-based work, builds, maintenance, and selected academic or legacy project contexts.
Useful for lower-level debugging and for keeping common project commands explicit, repeatable, and easy to rerun.
Part of the practical infrastructure side of my setup, from local service work to configuration and deployment-oriented tasks.
Programming Languages
Foundational technologies for the web and a natural part of both teaching and hands-on front-end work.
A core language for modern web interfaces, tooling, and many of the practical development workflows around web applications.
Still relevant in my work through web development, practical server-side systems, and long-lived web stacks.
A practical language for scripting, data work, automation, and many of the smaller utilities that support teaching and research workflows.
A language I use constantly for shell scripting, automation, and for binding smaller tools together into practical command-line workflows.
A language I use for statistics and analytical work when the task is more closely tied to data exploration and quantitative analysis.
A language I keep in regular use for academic work, maintenance, and the kinds of projects where the Java ecosystem is still the practical choice.
A language I use when performance, systems concepts, or lower-level control are closer to the centre of the task.
Part of the lower-level side of my programming interests, especially when working close to machine architecture and operating-system topics, with NASM as the assembler I use in practice.
Virtualization
My main tool for virtual machines and system-level experimentation, especially when flexibility matters more than a polished interface.
A practical graphical layer over virtualization tasks when I want easier overview and management of guest systems.
Useful when I want lightweight isolated environments for development, services, or reproducible local setups.
Writing and Research
Useful for everyday document work, quick tables, and office-format compatibility when collaboration matters.
The toolchain I prefer for more formal technical writing and document preparation, especially where structure and typographic control matter.
My reference manager for collecting, organising, and reusing academic sources in a more disciplined way.
Useful for ebook management, format conversion, and keeping digital reading material in order.
A practical tool for converting and preparing media files when documents, video, or teaching materials need clean output.
A lightweight document viewer that fits well with a keyboard-oriented desktop and quick reading workflow.
Web and Media
My preferred browser for daily browsing and general web use.
A text browser I still value for quick reading and simpler cases where a full graphical browser would be unnecessary.
Useful as a secondary browser when I want an additional rendering engine for compatibility checks and general web testing.
A straightforward media player I use for reliable video and audio playback.
A simple image viewer that matches the lightweight and keyboard-oriented style of the rest of the desktop.
Useful when I need a more complete tool for browsing and organising photo collections.
A practical image editor for adjustments, cropping, annotation, and other smaller graphics tasks.
A dependable screen recording tool for quick captures, demonstrations, and similar tasks.
A useful image-processing tool I use less often, mostly when I need quick conversions, resizing, or other direct command-line image adjustments.
Security and Sync
My password manager for local credential storage and disciplined handling of login data.
A practical tool for direct device-to-device synchronisation without needing a central cloud workflow for everything.
A simple backup tool I use when I want routine copies and a clearer local backup workflow.