By the end of the next decade, we’ll wonder how we ever managed to design products without starting with the software. By 2030, every successful company will be a software product company or a hybrid software and physical product company.

If your business isn’t already designing new products around software, is a great time to get the ball rolling.

HTML language logo
TypeScript language logo
Python language logo
Java language logo
Go language logo
C++ language logo
CSharp language logo
Swift language logo
PHP language logo

About me

Hello, my name is Gabriel Hodoroaga, I'm a software developer.

I started to write software from university days when I discovered that it takes only a few seconds for a computer to calculate a balance sheet and by hand I was able to calculate it in 2 hours. That was the moment when I realized that learning to program a computer will make my work a lot easier.

I have more than 15 years experience in software development and I had the opportunity to learn more than one programming language. While working for an important european institution I gathered important experience with migration of old monolithic applications to the new cloud native technologies.

I am Google Cloud - Certified Cloud Architect, Developer and Data engineer and I am in the process to obtain my certification on networking and security.

On my daily business I guide myself on my ideas of quality, reliability and innovation.

  • Quality

    One of the most important attribute of a software is quality, and by quality I mean: (1) software that does what is suppose to do in the most efficient way, (2) software that is easy to read and understand by other developers. Like Martin Fowler is saying "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." and (3) software that can be easily integrate all the future changes.

  • Reliability

    The second most important attribute of a software, and here I include the whole application is the reliability. To "just works every time" this what user expect from an application, no mater how much you stress it. Like someone was saying "Why the software is not build like the TV, you buy, you plug it in and works without any problem for the next 10 years?". Well, software can be build like this and all depends on the developers. There are many open source projects created around this idea.

  • Innovation

    There is always room for innovation when you talk about software. Every time I rewrite a piece of code I try to improved it, to make it more efficient. Like someone famous was saying "There is alway a better way to do it, you just have to find it"

Skills

I deliver results and meet customer expectations, I have high standards for quality and quantity and I work in a systematic, methodical and orderly way to constantly achieve the project goals.

I use technology to achieve my work objectives and I develop job knowledge and expertise through continual professional development.

I take responsibility for actions, projects and people and I make quick, clear decisions which may include tough choices or considered risks.

I adapt to the team and fit in well, I build team spirit and reconciles conflict, I show respect for the views and contributions of other team members and I consult others and share information and expertise with them.

I set clear defined objectives, I plan activities well in advance and I take in account all possible changing circumstances.

I identify and organize resources needed to accomplish tasks, I manage time effectively and I monitor my performance.

I am adapting to change, I tolerate ambiguity and I'am accepting new ideas and change initiatives.

  • In real life systems we find well-written code, motivated teams and productive systems - but quite often the knowledge about software architecture is hidden in single brains, scattered code or simply lost.

    A few years ago I discovered arc42, the best template to communicate and document your software architecture. Proven, practical and pragmatic. Free and open source, takes the pain out of documentation.

    arc42 has a clear, simple and effective structure to document and communicate your software system. Is is optimized for understandability and adequacy. arc42 naturally guides you to explain any kind of architecture information or decision in an understandable way, easy to maintain.

    https://arc42.org

  • In today’s business environment — where change is almost constant — risk mitigation and adaptability have never been more critical. It’s important to implement microservices best practices so your organization can change quickly, innovate easily, and respond to emerging demands. This will lay a foundation for future-proof business and continuous innovation.

  • Cloud-native applications are a collection of small, independent, and loosely coupled services. They are designed to deliver well-recognized business value, like the ability to rapidly incorporate user feedback for continuous improvement. In short, cloud-native app development is a way to speed up how you build new applications, optimize existing ones, and connect them all. Its goal is to deliver apps users want at the pace a business needs.

    But what about the "cloud" in cloud-native applications? If an app is "cloud-native," it’s specifically designed to provide a consistent development and automated management experience across private, public, and hybrid clouds.

  • Cloud migration processes allow companies to replicate their legacy applications completely into the cloud platform by refactoring them. In this way, you can allow legacy applications to function and concurrently build new applications to replace the old ones on the cloud.

    Refactoring lets you prioritize business processes by moving less critical ones to the cloud, first. This method is cost-effective, improves response time, and helps in prioritizing updates for better interactions.

  • Kubernetes is a portable, extensible, open-source platform for managing containerized workloads and services, that facilitates both declarative configuration and automation. It has a large, rapidly growing ecosystem. Kubernetes services, support, and tools are widely available.

    The name Kubernetes originates from Greek, meaning helmsman or pilot. Google open-sourced the Kubernetes project in 2014. Kubernetes combines over 15 years of Google's experience running production workloads at scale with best-of-breed ideas and practices from the community.

  • Google Cloud Platform is by far the best cloud provider on the market.

    Google differs from other cloud providers in a variety of ways. Below are some highlights:

    • Google-grade security.The Google security model is an end-to-end process, built on over 15 years of experience focused on keeping customers safe.
    • Billing by the second. Compute Engine instances are charged in one-second increments with a one-minute minimum.
    • Big data. Google’s big data technology innovations help you transform your business with powerful data insights.
    • Global network.

    https://cloud.google.com

  • Go's increasing use is due, in part, to the fact that it is a lightweight, open source language suited for today's microservices architectures. Container darling Docker and Google's container orchestration product Kubernetes are built using Go. Go is also gaining ground in data science, with strengths that data scientists are looking for in overall performance and the ability to go from "the analyst's laptop to full production".

  • HTML5 coding is clear, simple, and descriptive. HTML5 also makes placing audio and video content a breeze. It treats that content the same as it would with image tags, and this makes things a lot easier on coders because it allows them to include those multimedia elements without having to use a plugin or API.

  • Angular helps build interactive and dynamic single page applications (SPAs) with its compelling features including templating, two-way binding, modularization, RESTful API handling, dependency injection, and AJAX handling. Designers can use HTML as template language and even extend HTML’ syntax to easily convey the components of the application.

    You don’t need to rely on third-party libraries to build dynamic applications with Angular. Using this framework in your projects, you can reap multiple benefits.

  • Java is one of the most robust programming language used for developing small applications to large end-to-end enterprise software.

    5 Reasons Why is Java the most suitable for building Enterprise Applications:

    • Most oldest & widely used programming language
    • Java supports a vast array of community maintained libraries
    • Shorter Learning Curve
    • Easy integration & scalability
    • Supports multiple devices, low maintenance cost & faster processing
  • As a middle-level language, C combines benefits of both low machine level languages and high-level developer friendly languages. Further, it is fast, structured, portable and has a rich library. These features make C a general purpose programming language, and hence, it finds application across every domain in programming world.

    A super set of C, C++ is an object-oriented programming language and incorporates all the features offered by C. C++ started its journey as C with classes. Gradually, it has evolved and despite the popularity of other programming languages like C# and Java, C, C++ holds its own as one of the most widely used languages for scripting. In applications, C++ is ubiquitous.

Portfolio

When working as a Software-Developer for different companies in Europe I have participated on exciting projects in a multi-cultural environment with nice colleagues. In doing so I was able to lear more than one programing language, and I discovered the differences between them and how each are more suitable for a different kind of applications and some not, also I learned how important it is to choose the right language for the application.

Here are some of my projects that I worked on and I am very proud of.

  • Case management system (SRB)

    Design and implemented the case management and document collaboration system to organize and monitor critical bank financial crises using microservices, service mesh, api gateway and kubernetes.

    https://srb.europa.eu

  • Secure communication system (Europol)

    Design and implementation internal secure communication system based on micro-services using ASP.NET Core on linux containers

    Technologies used: SqlServer 2016, C#, ASP.NET Core, Identity Server 4, ADFS, ActiveMQ, HTML, CSS, jQuery, KnockoutJS, Swagger, Microsoft Service Fabric, Docker Swarm, Kubernetes, TFS, TeamCity, Visual Studio, git, PlantUML, Visio, bash, python, PowerShell, cmd

    https://www.europol.europa.eu

  • SedonaRetail - POS software

    Design and implementation of the complete all-in-one solution for small shops and supermarkets.

    Technologies used: SqlServer, .NET, WindowsForms, Node.js, Firebase SDK

    https://sedonaretail.ro

  • Sedona POS - mobile POS application

    Design and implementation of a complete solution for mobile POS with many integration with mobile fiscal and non-fiscal printers.

    Technologies: Android, Java, Javascript

    Sedona Pos

Contact

If you are interested in a collaboration, please send me a message or contact me via one of the social networks below. I am pleased to make you an offer and provide you my current hourly/daily rate.

Hodo Software Scomm

contact@hodosoftware.be

Avenue des Nerviens 117/45

Company number: 0741.928.650

VAT number: BE0741928650