Hellooo there! 👋 I'm a passioned programmer with background in Bioinformatics from my Bachelor study 👨🎓 Mainly interested in DevOps, Cloud and Multimedia topics 🧑💻
⚡️ Recent activities
- ❌ Closed PR #67 in tgotwig/vidmerger
- 💬 Commented on #53 in tgotwig/vidmerger
- 💬 Commented on #53 in tgotwig/vidmerger
- 📖 Created new wiki page Section-Subsection in tgotwig/vidmerger
- 📔 Created new repository tgotwig/dotfiles
💡 My Coding Principles
↳ ☝️ General ones
- Check for consistency across tools and platforms — use diff checkers on editor content and use things like the GitHub and Confluence search across all your projects and wiki pages.
↳ ☕ Java, Python, ...
- Keep code compact — limit function parameters (ideally ≤ 3), avoid deep nesting, and stick to a reasonable maximum line length.
- Use consistent and meaningful naming — predictable naming patterns make searching, navigation, and bulk refactoring (e.g., find & replace) much more reliable and efficient.
- Don't write db queries by hand — do it via repository functions.
- Let an code generator generate classes for you — when dealing with an OpenAPI spec.
- Write tests at multiple levels — use unit tests to check always one function without I/O (mock external dependencies where needed), integration tests to check always one function with real I/O, and end-to-end tests to check a full chain of functions (like
Camunda
orSelenium
workflows, or a cli tool).
↳ 🌳 Versioning (Git)
- Use a Git GUI tool like
GitKraken
— a visual overview often leads to cleaner commits and makes advanced Git features (like interactive rebase or working with submodules) more accessible. - Keep commits focused and atomic — aim for “one logical change per commit” to make reviews easier and enable selective acceptance or reversion.
- Maintain a consistent code style — avoid mixing style and functional changes in one commit; first apply the style update, then the logic change.
- Preserve full commit history when migrating repositories — instead of squashing into a single commit, add the new remote and push as-is.
- Write meaningful commit messages — use the imperative mood (“Add feature,” not “Added feature”), and avoid vague messages like “Update” to help others understand changes at a glance.
- Tag commits not only for versioning — but also to highlight other special commits.
- Create a
backup
branch before doing a complex rebase — to not accidently overwrite commits in a wrong way.
↳ 🌐 Networking
- Document the network layout using a diagram that includes key IPs, DNS names, and boundaries between subnets or zones.
- List physical and virtual devices in a table with their IPs, DNS names, and MAC addresses, group them in CIDRs.
- Prefer DNS names over hardcoded IPs, for better clarity and minimal fixes when the IP changes.
- Provide a central "intranet" homepage linking to all important internal services.
↳ ⚙️ Automation
- Build the project ideally with 1 cmd — after cloning it, typically via
Taskfile
, also in CI / CD. - Centralize testing and releasing via CI / CD — and run them mostly during pull requests.
- Monitor your resource usages — and have reportings before server crashes due to it.
- Backup your data frequently in 3 ways — while removing some versions over time.
- Don't try to automate everything — have runbooks for certain tasks.
↳ 🐳 Containerization
- Configure via env vars — better than via files with different encodings and permissions.
- Grant 3rd party access via scoped tokens — avoid overly permissive ones.
- Print all logs to the terminal — for a flexible understanding.
- Develop with dev images — with all your fav tools in it.
- Minimize images — for running in production.
↳ 🔮 Terraform
- Design modules for reusability — for deploying slightly different resources easily.
- Manage the state file in an object storage — ensure it’s versioned, and use a lock file to prevent concurrent modifications. Consider maintaining a shared calendar for coordinated infrastructure changes.
🐿️ ChipChap - GUI app For editing chapter infos in video and audio files. (WiP)
🤓 Dev Links 👉 Chocolatey | Dev | Observable | Stackoverflow | Vagrantup
🍻 Social Links 👉 LinkedIn