paint-brush
Exploring My Journey: A Software Engineer in Constant Evolutionby@gmena
212 reads

Exploring My Journey: A Software Engineer in Constant Evolution

by Geolffrey MenaApril 12th, 2024
Read on Terminal Reader
Read this story w/o Javascript
tldt arrow

Too Long; Didn't Read

Geolffrey Mena is a 35-year-old software engineer currently based in Nicaragua. He is passionate about understanding the principles, methodologies, and patterns of this field. He excels in development with Python, Golang, and JavaScript/TypeScript/Node.
featured image - Exploring My Journey: A Software Engineer in Constant Evolution
Geolffrey Mena HackerNoon profile picture

Greetings everyone!


My name is Geolffrey Mena, and I am excited to introduce myself as a 35-year-old software engineer currently based in Nicaragua. In addition to my passion for technology, I have a love for nature, accompanied by eight adorable dogs who bring joy to my daily life. During my leisure time, I enjoy playing video games, reading technical and self-improvement books, as well as immersing myself in captivating series.


As an individual, I consider myself a perpetual learner, always focused on creating and innovating in the world of software engineering. I am passionate about understanding the principles, methodologies, and patterns of this field, and sharing that knowledge with others who are on the path to understanding it. I acknowledge my limitations and am open to external influences, understanding that learning is a continuous process that requires humility (you can't always be right).


To be honest, I must admit that I am not an expert in all tools. My focus is on the fundamentals, as I understand that I cannot master every technology at once (it often frustrates me to see too many technologies grouped together trying to solve the same problem), so I prefer to learn each thing as the need arises.


My learning process follows a defined scheme: first, I understand the context of the problem, then I look for the most suitable tool. Sometimes, when I have time, I prefer to reinvent the wheel and create my own tool to better understand how it works. I dedicate time to studying the documentation and understanding the decisions behind the design.


Once the tool is selected, I move on to practicing in a repetitive cycle of creation and refactoring. I strive to polish the implementation, following best practices and clean code. I even adjust function names if I feel they are not suitable for the problem domain.


Currently, I am interested in distributed computing, blockchains, and cryptography, and I am working on my own paper proposing a solution for securely (curated) consuming multimedia content in distributed networks like IPFS.


Regarding my technical skills, I excel in development with Python, Golang, and JavaScript/TypeScript/Node. Furthermore, I have delved into architecture, particularly in event-driven styles with a serverless approach, using AWS services such as microservices with Step Functions and Lambda, as well as tools like Terraform (IaC) and GitOps in Kubernetes environments. My focus on blockchain centers around Solidity EVM (ERC-20, ERC-11155, among others).


Since I understood that software engineering goes beyond the myth of the lone genius, I have adopted a teamwork approach. I firmly believe that everything in software engineering is about teamwork, where collaboration, knowledge sharing, and healthy competition play a fundamental role. I have been inspired by the culture of respect, trust, and humility, which I have found in books like "Software Engineering" at Google.


I have a slight obsession with clean code and best practices, as long as they do not affect my productivity. I am passionate about finding simple and effective solutions, firmly believing in the principle that "simple is better" than unnecessary complexity.


Over the past ten years, I have accumulated valuable work experience in a wide range of projects, from initiatives related to blockchains and exchanges to e-commerce and transportation. However, the most significant project I participated in was international remittances. Additionally, I ventured into starting my own company, although with modest results, the experience was enriching.


I would like to highlight my time at an international shipping company, where I served as a Principal Software Engineer for an extended period. In this company, I acquired fundamental skills related to financial technology, regulations, process analysis, architecture, and customer relationship management.


Operating since 1980, the company faced significant challenges with outdated manual processes that hindered its competitiveness in the remittance market. My contribution focused on analyzing these obstacles, understanding the problem context, and designing and implementing innovative solutions that allowed for a new scalable, and robust architecture.


My last role in the company was as a solution architect, where I led the development of a new application to improve customer relations. This application, which enables free international remittance, could propel the company to the top spot in the regional market between Miami and Nicaragua.


My involvement in this project as a solutions architect and leader of the mobile development team allowed me to implement a scalable and robust infrastructure based on microservices with serverless and step functions.


Currently, I am in search of new job opportunities. Despite not being employed at the moment, my commitment to excellence and desire to continue learning make me a valuable candidate for any company that values the experience and potential of its employees.