I have been thinking about starting a blog for a few years, and I feel this is now the right time.
Why this blog?
There are multiple reasons for starting this blog.
First of all, it’s a way to document my journey as I face new challenges, learn new concepts and apply recently acquired knowledge.
Secondly, explaining deepens your understanding. This blog will help me deepen my understanding of concepts and principles through my attempt to explain and communicate my findings in a clear manner.
Finally, it is my opportunity to contribute back to the community. The software engineering community has provided invaluable content that helped me grow professionally since my first steps into this industry. Hopefully, this blog can give something back by sharing content that can help a few fellow software engineers.
Why is now the right time?
I have recently switched jobs, and I am now in the phase of trying to build a new skillset and apply my previous knowledge in a new domain and environment. This phase comes with new challenges and different problems to solve.
One of the exciting changes in my day-to-day work is switching from a 7-year experience in Object Oriented Programming using C# to an exciting new chapter using Go.
C# and Go use quite different programming paradigms. Because of this, some software patterns used in C# are not applicable in Go. Similarly, some properties/features of Go are not available in C#.
This difference gives me an excellent opportunity to review my understanding of software engineering concepts I learned during the last years in a different context. It will also allow me to explore how common principles can be applied using different tools that may offer more or less flexibility.
It is, therefore, a great time to share my views and findings as I come across many common software engineering problems and apply this newly acquired knowledge.
What will this blog talk about?
In this blog, I will be writing about
- My views and findings as I apply my previous knowledge in my journey of learning Go
- Present and analyze challenges I have faced with possible solutions
The blog’s main topics are:
- Go programming - Patterns and Best Practices
- Software Design principles and patterns
- Software Architecture
- Software processes