Skip to content
View cramacug's full-sized avatar
🏠
Working from home
🏠
Working from home

Block or report cramacug

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
cramacug/README.md

An introduction about myself and the code

This page is still evolving, improving and changing, like my knowledge.

The purpose of this repository is to share my projects, test and save configurations and show how I work. The combination of the power of git shows the evolution of my code (and knowledge).

A bit summary of this page. I introduce the technologies and the books I use for coding and explain why. Every developer is a world and every day the technologies change, so I put my grain of sand to help to decide if the step should be done or not, and how to do it (or not)!

Index

About my work experience

I use the pattern DRY :), so:

LinkedIn

My knowledge

Languages

How I love to express and write code. It is easy to figure out that I love speaking JVM languages...

Language Why
Java I really feel comfortable with a Object Oriented language that has a lot of versatility. Having the advantage of a lot of books and patterns that use the power of OO and could use the power of the JVM, make the programming more comfortable.
Kotlin A language that has null protection on compiling time, a lot of language tools that make the code more concise and compact, is still evolving and free, and has a lot of support for the most used frameworks. When you get used to using Kotlin tools, and you change the language that does not have it, you miss Kotlin!
Python I tried and I think that has a lot of power, but I miss some functionalities, like the visibility of the fields and methods, the compiling time, the statically typed field... I still need to know how to charm the snake.
Markdown As I introduce myself, I love the side of the backend to the server. About the frontend languages, I do not have a lot of background. Despite of, I really love markdown to make a powerful Readme.md for the projects to give a great power boost to a new developer to enjoy the project! (And make a bit presentation about myself ;)).
Ansible WIP -- Trying to configure the clusters without pain

Library

Book Notes
Clean code
Clean architecture
Clean craftsmanship
Design data-intensive applications
Microservice patterns and best practices
DDD: Tackling complexity in the hearth of Software
Effective Java
Microservices Patterns
Reactive Design Patterns
Clean Code
Clean Architecture
No rules rules
The pragmatic programmer

Technologies

Technology Notes
Docker Docker, when you can isolate your code from the machine... It is AMAZING. A great improvement to develop and deploy and do not get blocked with the magic situation that works on your machine, in the development environment, but in production... surprise, does not work because is a bare-metal machine, to has different environment variables, or you do not have the root permission, or you have to install a dependency or library conflicts... I think I give a lot of reasons for loving docker.
Kubernetes When you can create and manage a container cluster, then you realize the power that you have in your infrastructure.
Apache Maven Maven, a great tool but very verbose code. I think I had to mention that has a lot of power, but the new requisites for languages and CI/CD pipelines demand more flexibility.
Gradle The new build tool. I really enjoy and has a lot of power that I still discovering. And the Gradle DSL language has evolved and uses Kotlin... it sounds great!
Git You can really that you can develop without git? The answer is not. And IMHO, do not imitate to learn git push and git pull. Explode the power of git, make a nice history tree that simplifies when you have to check what was done in the previous commit, learn how to improve the way to comment, make your developer life better.

Tools

Tool Why?
Vim VIM. I love it, it best tool for writing programming languages. When you have the power to navigate and write code efficiently without using the mouse on ANY machine. Do not depend on the OS or IDE tool, it is amazing. Did I say that I love it? I am working with my dotfiles where one dotfile is my vim config combined with some IDE. Feel free to use, fork and improve.
IntelliJ IDEA I really admit that they are doing a great tool that combined with vim has a lot of power. And I enjoy it due to the has the vim plugin that you can add your ".vimrc" settings to use the same shortcuts actions, set in the ".ideavimrc" file and use in any machine. You can use the power of IDE the power of VIM in any machine and any OS. I add the configuration file in my dotfiles repository, enjoy it! :)
Jenkins I started to use and I find a great power for CI/CD. Has a lot of plugins and it is free. A really good CI/CD tool for developing projects.

Operating Systems

In one word, Unix has the power.

Desktop

OS Why?
Kubuntu Kubuntu. I have to admit that thanks to the Kubuntu project, I get involved in the Software world. A free OS with the power and the tools to customize the OS and develop code is amazing. And a special mention to the terminal, the most powerful way to communicate between machines. When I work, I am using macOS, but most of the improvements that I see in the macOS, previously KDE did a version. Like windows management, widgets, management of desktops... Kubuntu is the best.
macOS Despite my favourite OS is KDE, I have to admit that they are doing a solid and resilient OS, and most of the tools are developed aiming macOS (including the terminal!). Despite the lack of customizations that have macOS, I think they are doing a good work.

Server

OS Why
Ubuntu The power of linux, the community support and free? I need to explain something more? Install and play!
Debian I move to ubuntu server, but the the share a loot of tools and power. So, an honorable mention to Debian :)!

Hobbies

I love to develop a smart world, where the IoT power can help to automate and simplify your life. So, here are some tools/hardware that I used to play and develop!

Arduino Home Assistant Raspberry Pi

Nowadays, a great tool to navigate without the noise of the ads.

Pi-Hole

Popular repositories Loading

  1. scripts scripts Public

    Shell

  2. cluster-config cluster-config Public

    The structure for building a cluster with k8s and MPI.

  3. Kata-VendingMachine Kata-VendingMachine Public

    Kotlin

  4. cramacug.github.io cramacug.github.io Public

    My blog

    Kotlin

  5. .dotfiles .dotfiles Public

    Vim Script

  6. katas katas Public

    Play with code

    Kotlin