I love Docker, Notion and beekeeping. Want to know more?

Career

As a Full Stack Developer, you must have experience with a variety of tools. Why do you consider Docker to be your favorite, and how has it influenced your work or workflow?

Docker has been a game-changer in my journey as a Full Stack Developer. The beauty of Docker lies in its simplicity and capability to create a consistent development environment.

And here's a little secret: all my development work is done in devcontainers! Even while using my old and trusty Dell i3437 laptop, which might be considered outdated, I don’t encounter any issues with performance because all of my development environments run on a server with significantly more capacity:

Devcontainers

Here are a few reasons why Docker, and especially devcontainers, have become indispensable in my workflow:

  • Consistency Across Environments: no more "it works on my machine".
  • Microservices Architecture: It supports my work with microservices, allowing me to encapsulate each service with its dependencies into a single container, which can then be managed independently.
  • Easy Deployment: Docker containers can be effortlessly deployed to any platform, improving the CI/CD workflow.
  • Isolation: Containers isolate the applications and their dependencies, reducing conflicts between development teams while managing libraries and dependencies.
  • Resource Efficiency: Docker utilizes resources more efficiently than traditional virtual machines, as it doesn’t need a full OS stack for each instance.
  • Community and Ecosystem: The Docker community is vibrant and growing. The vast ecosystem of Docker images available on Docker Hub has made it incredibly easy to find pre-configured images to suit almost any development need.
  • Quick Start: I can quickly start a project with a Dockerfile, defining my app’s environment, and ensuring that every team member is on the same page from the get-go, reducing onboarding times for new developers.
  • Security: Docker adds a layer of security by isolating applications from each other and from the system.
  • Easy Rollbacks: If something goes wrong, Docker allows me to roll back to a previous container version, ensuring stability and minimizing downtime.
  • Utilizing Devcontainers: Despite using an older laptop, my development work is unimpeded as I utilize devcontainers, executing all the heavy computing and processing on a more capable server. This not only ensures that my local machine is not overburdened, but it also allows me to work from pretty much anywhere, knowing that my environment is consistent and reliable.
Can you tell us a bit about your experience and the expertise you bring as a Full Stack Engineer?

Over the past decade, I've thrived as a full stack engineer in a public sector institution in my country, steering major projects from conception through to operational stages. My role not only demanded robust technical prowess but also required proposing solutions autonomously and decision-making for better system architecture. This vast experience has honed my ability to foresee challenges and innovate. Furthermore, my background in administration and finance has cultivated a unique blend of analytical and strategic thinking, enabling me to grasp both the technical and business facets of a product. I'm excited to bring my diverse expertise to a collaborative team setting, ensuring the delivery of high-quality software and a seamless user experience.

Describe a project that you worked on that you are proud of

One of the projects I'm most proud of is the development of a comprehensive HR administration system I've been immersed in over recent years. This endeavor covered the entire lifecycle of software development:

  1. Needs Assessment: It began with meticulous consultations with staff to genuinely understand their needs. I didn't just accept the surface requirements; I dug deep to ensure that the solution would be tailored precisely.
  2. Software Evaluation: I assessed the existing software to identify its gaps and understand how the new solution could enhance operations.
  3. Legal Compliance: I reviewed both internal regulations and national laws governing public sector HR. This ensured our solution would not only be functional but also compliant, reducing risks and ensuring smooth operations.
  4. System Development: I was responsible for both frontend and backend design and development. This involved writing efficient and clean code, optimized for performance and scalability.
  5. Server Management and Deployment: I configured servers, ensuring optimal performance, security, and reliability. Moreover, I set up automated deployments, ensuring that new features or fixes could be rolled out seamlessly.
  6. Testing and Support: Once the system was developed, I oversaw rigorous testing phases and provided final user support to ensure a smooth transition.
  7. Integration with Biometric Devices: A particularly challenging aspect was integrating time attendance biometric devices. This required delving into bit-level operations, reminiscent of my days as an electronics engineer, to effectively implement the communication protocol these devices used in JavaScript. Consequently, I developed a user-friendly REST API to ensure smooth interaction with the broader system. Read more about this here .
  8. Rabbit MQ Implementation: To handle intensive processes, I implemented Rabbit MQ for efficient background operations.

Overall, while the system's development was an immense challenge, it encapsulated various aspects of software development, integration, and management. My holistic approach, combined with my technical acumen and dedication, ensured the project's success.

What is most important to you in your next role?

Over the past decade, I have primarily worked on major projects as a sole engineer within a public sector institution in the legal domain. This has been immensely rewarding, working independently has afforded me the latitude to propose solutions to existing issues and make autonomous decisions, carrying projects from conception through to the operational stage. But I've found that recently, I've mostly been maintaining systems and projects I've previously developed, which are now running stably. This has led me to feel that my current position might be limiting my professional growth.

In my next role, I'm keen on joining a collaborative team environment. Working closely with diverse colleagues will provide perspectives and experiences that I believe will further my continuous professional development. Additionally, with my background in administration and finance, I'm eager to transition into roles that allow me to combine these skill sets, possibly leading towards product management or similar leadership positions.

Furthermore, I value a setting that encourages innovation and creativity. I'm excited about a role where I can actively contribute ideas, be proactive in pioneering new concepts, and leverage not just my software development expertise but also my broader experiences and insights in other fields.

Please indicate your proficiency in JavaScript

I have substantial experience with JavaScript, dating back to 9 years ago when I completed my first project using jQuery. Subsequently, I developed two medium-sized projects and one large project using AngularJS. I have used Express, React, and Vue for some small projects. Lately, I've been learning about modern frameworks like NestJS for the backend and Svelte/SvelteKit and Astro for the frontend. I started using TypeScript approximately 5 years ago and have continued to use it since then. In addition, I've published some small libraries on NPM, with my most popular one currently being downloaded ~1200 times a week 👇

zip-build npm package

Can you elaborate on your experience with one or more front-end web frameworks?

Certainly. During my earlier years at the public sector institution where I've been for the past decade, I extensively used AngularJS, primarily because it was among the top choices available when diving into frontend development. While my depth with AngularJS is substantial, in recent years, I've shifted my focus more towards backend development, business logic, CI/CD, and infrastructure. When it comes to React, I've explored it in minor projects. Vue intrigued me due to its similarities to AngularJS, but I haven't had ample opportunities to work with it.

Lately, I've been immersing myself in learning Svelte, SvelteKit, and Astro. I'm genuinely captivated by their potential, especially appreciating their simplicity and developer-friendly nature. The minimal boilerplate and intuitive design of these newer frameworks are aspects I find particularly appealing and promising for future projects.

Given my adaptability and continuous learning mindset, I'm poised to leverage my diverse experience and new learnings to contribute effectively in any frontend environment.

What’s your professional experience with Typescript?

Although I began my programming journey with dynamically typed languages like PHP, JavaScript and Python, over the past approximate 5 years, I've transitioned and deeply immersed myself in TypeScript. Initially, the shift required a learning curve, but once I grasped its potential, I wholeheartedly embraced it. TypeScript's features have enabled me to develop robust and fault-tolerant systems, and I've never looked back since. This experience has honed my skills in crafting type-safe, maintainable, and scalable applications.

Do you have experience with REST or GraphQL?

Absolutely. As I highlighted earlier, my recent focus has predominantly been on backend development. Over the past decade, I've architected and developed numerous RESTful APIs using a diverse range of frameworks and languages. Specifically, I've utilized Slim in PHP and both Express.js and NestJS in JS/TS to devise scalable, secure, and efficient services. My solid grasp of HTTP ensures that I am well-versed in navigating protocols, methods, and enhancing API performance. While I have been learning GraphQL lately, my profound hands-on expertise is majorly rooted in RESTful API development and its underlying principles. Notably, even though it isn't explicitly mentioned in the list, I possess a strong affinity for SQL and pride myself on my robust background in designing resilient and efficient relational data models.

Do you have any experience with Linux, sys admin and devops?

Certainly! Let me shed some light on my experience with Linux, sys admin, and dev ops.

Tell a short story about the last time you needed to learn a new technology stack, how long it took, and what you learned from it.

Earlier this year, I was tasked with developing a mobile application for inventory-taking PDAs, which required integration with the fixed assets system API I had previously built. Having no prior experience in mobile development, I delved into research and chose Flutter. My decision was influenced by the PDAs running on Android (and Flutter being a Google product) and my drive to venture into an unfamiliar technology.

I dedicated about a month to learn Dart and Flutter. Within three weeks, I had a functional MVP, and in less than three months from the project's inception, I delivered the final product. One of the challenges I encountered was Dart's strict JSON parsing, which initially felt overly intricate compared to JavaScript or PHP. However, I soon realized the rationale behind it: its stringency ensures enhanced data type safety. This understanding later resonated when I started learning Rust, emphasizing the importance of rigorous type checking for software robustness.

Read more about this project here.

Personal

What's the best way for people to get in touch with you?

The best way to reach me is asynchronously via WhatsApp, email, or social media. I value focused time and prefer not to be interrupted by phone calls, especially from numbers I don't recognize in my contact list.

What words of advice would you give your younger self?

If I could offer advice to my younger self, it would be:

  1. Pursue Systems Engineering. You'll find it as captivating as electronic engineering, it offers more opportunities for remote work, and you will really like it.
  2. Bypass the Restaurant Venture It's not where your passion lies, and you won't want to dedicate the time it demands.
  3. Start Your Family Earlier. You've always wanted a big family. Embrace those aspirations sooner to navigate the challenges ahead.
Tell me more about involvement and leadership role in community service?

I embarked on my Rotary journey in 2019, and it's been an enlightening and enriching voyage ever since. Being the youngest member of the club, I was immediately entrusted with the role of 'New Generations' Chair, which plunged me into the vibrant world of youth exchange programs, a responsibility I manage to this day at a district level, coordinating across four countries - Costa Rica, Nicaragua, El Salvador, and Panama. From there, my journey took a leap as I served as the secretary of the club, and last year, I had the honor of presiding over our club during its splendid 90-year celebration of service to the province.

This involvement and leadership in community service have been incredibly impactful both personally and professionally. Personally, it has deeply embedded values of empathy, responsibility, and a commitment to societal contribution. Professionally, it has honed my leadership, organization, and collaborative skills. Spearheading various community projects, coordinating with members, and ensuring our activities align with overarching social service goals have fine-tuned my project management and strategic planning capabilities. It also allowed me to build a network with a diverse group of professionals and community leaders, opening doors to new perspectives and insights, which have proven to be valuable in my professional career. The immense joy and fulfillment derived from meaningful community service continue to inspire me to weave social responsibility into every facet of my life and work.

Rotary Club of David - Board of Directors 2022-2023 Rotary Club of David - Board 2022-2023 See my rotarian profile

If money were not an issue, what would you be doing right now?

If money were not an issue, there are several things I would be doing:

  1. Community Service through Rotary. I would dedicate more time to community service via Rotary. In my four years with the organization, I've come to deeply appreciate the fulfillment that comes from helping those in need.
  2. Permaculture Project I would invest more time into my permaculture, apiary, coffee farm, and tourist cabin project. I'm passionate about sustainable agriculture and eco-tourism.
  3. Makerspace Dream I've always harbored the dream of opening a makerspace in my city. I adore creating varied things, ranging from welding to woodworking, and such a space would not only satisfy my love for making but also provide a communal platform for like-minded individuals to share, learn, and create.
  4. Politics I have a keen interest in local politics to address issues in my community. I even harbor the ambitious dream of becoming a mayor one day.
  5. Travel and Open Source. If there's time left, I'd love to travel the world and contribute to the open-source community, giving back to the platforms and tools that have benefited me.

In essence, without financial constraints, I'd immerse myself in endeavors that not only satisfy personal passions but also contribute positively to the community and the larger world.

How did your journey into beekeeping begin, and how has this hobby integrated into your life and future plans?

My journey into beekeeping began about 10 years ago, sparked by pure curiosity. After tumbling down a rabbit hole of YouTube videos, I found myself crafting my own protective suit and reaching out to the Faculty of Agronomy at the University of Panama, which led to an enlightening visit to their apiary.

From purchasing tools on eBay to acquiring my first bees, what started as a hobby has become a sweet part of my life, maintaining between 5 and 10 hives and selling our produce to family, friends and a small clientele.

A few years ago, we invested in land amidst the pristine mountains of Boquete, away from conventional agriculture, with a vision of producing high-quality organic honey. We're currently conditioning the area and eagerly anticipate our first harvest early next year, marking a milestone in this delightful journey.

Beekeeping

Random

Please tell us about a time you hacked a system (not necessarily to do with computers!)
  • In my home, I enjoy fixing things that break. Some time ago, the washer in my laundry center broke down. I dismantled everything and, since the dryer was still in good condition, I mounted it to the wall using an air conditioner bracket and bought a separate washer.
  • Another time, the membrane keyboard of my microwave oven broke - a common issue in the tropical climate where I live. I dismantled it, traced the keyboard and membrane paths, and for the three buttons I use most frequently (pause/cancel, +30 sec, start), I installed physical buttons. It's still working, and here’s the video of the repair:

    Creative Fix: Revive Your Microwave with Recycled Buttons!

  • On a technological note, in the last system I worked on, we needed to connect to several biometric attendance control devices, which required a Windows machine and specific software to download and sync records. Luckily, I found the TCP/UTP communication protocol of the devices, which I was able to implement in JavaScript. From there, I developed a CLI and an API, enabling the system to use these devices to download attendance records and also to manage the devices. This hack saved us several thousand dollars.

    Read more about this project here.

Give us an example of when you went to extreme lengths to get something done.

One of my hobbies is beekeeping. Last year, I was raising queen bees, which requires several steps with strict timing between each one. At the end of the process, I had to place a cage over the queen cell before the new queens were born. If not, the first queen born would kill all the others, and all the work would be lost. On the day I needed to do this, it rained a lot, and the small creek I have to cross to get to the apiary grew larger. I had to tie a rope to a tree and leave my protective suit and smoker behind to cross it. I got stung a few times, but luckily, I got the job done.

What's the most useful business-related book you've ever read?

Execution: The Discipline of Getting Things Done by Larry Bossidy and Ram Charan has profoundly influenced my approach to business. The book emphasizes that great strategies are meaningless without effective execution. It underscores the inseparable link between strategy and implementation, the vital role of leadership in driving execution, and the importance of open communication. One of its standout lessons is the focus on three core processes: People, Strategy, and Operations. This framework has provided me with a clear roadmap to ensure that strategies are not just designed but are effectively brought to life. The book has been instrumental in shaping my professional discipline, ensuring that I not only set goals but actively and efficiently work towards achieving them.

What's your favorite non-business book?

The Monk Who Sold His Ferrari is my favorite non-business book; it's a profound reflection on life, purpose, and self-discovery, presented through a captivating and transformative narrative.

Reading this book was an enlightening experience. It serves as a reminder to prioritize inner growth, continuous learning, and genuine human connections over mere material success. In our often hectic lives, this book provides a blueprint for living with greater intention, purpose, and joy.

What's the most creative thing you've ever done?
  1. 1. As a child, while deep-sea fishing, the suction pipe of the live bait tank became clogged. In a quick burst of ingenuity, I repurposed an empty soda bottle by fitting it over the blocked conduit and sharply pressing down, using the air pressure to clear the obstruction. This quick fix ensured we could continue our fishing trip without worrying about the bait.
  2. 2. A few years ago, I purchased a plot of land in a remote mountainous region. Recognizing the need for shelter, I designed and constructed a compact, modular cabin that we were able to dismantle, transport, and assemble all within a single day. Modular cabin construction in the mountains of Boquete, Chiriqui
  3. 3. In the realm of software development, I needed to designing a form field to select an item from a tree-like structure. I conceived a sleek and compact design that featured functionalities such as element search, selective item removal up to a predetermined level, and the display of sub-codes, all presented in a user-friendly and intuitive manner. Tree form field
© 2024 Ricardo Tribaldos Made with ❤️ and in David, Panama.
v1.6.0