javascript, saas, data viz, lean and other stuff

Working Remotely From Costa Rica

Coming back to Costa Rica and enjoy my country while working on software applications is one of the best decisions I ever made. Check out these pictures I took with my phone at Playa Manzanillo, near to Santa Teresa – Mal País. Feel free to contact me if you are looking for advise or network with the development community. >

playa-manazanillo-sunset vacas-playa-manzanillo playa-manzanillo-reef rocks-playa-manzanillo

#Hack4Good in Costa Rica

Hack4Good is global hackathon that gathers the worlds greatest expert engineers, designers, product builders and entrepreneurs for 48 hours to develop applications for helping humanity. Themes will include hacking to help: environment, disaster and emergency solutions, education and learning, workplace and jobs, poverty and hunger.

There will be prizes, of course, both locally and globally, but the biggest prize will be the reward of helping make the world a better place together.

The event will take place on October 4th-6th in multiple cities: San Francisco, San Diego, Los Angeles, New York, Philadelphia, Paris, Londres, Berlín, Moscú, Tel Aviv, Santiago, Cincinnati, Minsk, Kazan, Kathmandu, Topi, New Delhi and San José, Costa Rica.

The hackathon starts on Friday at 04:00pm and ends on Sunday at 05:00pm, at 6:30pm winners will be announced.

The location will be published soon. You can register at for joining us at the Costa Rica location or for participating online.

See you there !

Choosing the Database for Your Web App

When choosing a database for your application, you need ask yourself many questions and there are important rules about Data Architecture

  • there’s no standard solution that fits all
  • the business and it’s data defines the architecture
  • you need to find the right tool that does job
  • you can use multiple databases, different types depending on the characteristics of each data subset


It is very important to decide carefully, after your application grown it could be very difficult to change. The CAP theorem, also known as Brewer’s theorem, states that it is impossible for a distributed computer system to simultaneously provide all three of the following guarantees:

  • Consistency (all nodes see the same data at the same time)
  • Availability (a guarantee that every request receives a response about whether it was successful or failed)
  • Partition tolerance (the system continues to operate despite arbitrary message loss or failure of part of the system)

CAP Theorem - Venn Diagram

Data Visualization in Costa Rica

I’m very excited to announce that we’re starting a data visualization meetup group in Costa Rica!

At the last Hack Hackers SJO event I finally had the pleasure to meet Yuri Engelhardt in person after months of exchanging emails and ideas about data visualization in Costa Rica. Yuri is the co-founder of Show Me Data, an annual multidisciplinary course and public event that brings together the University of Amsterdam (UvA) and the Utrecht Graduate School of Visual Art and Design (maHKU) students to get familiar with the world of data visualization.

Over a couple of beers Yuri expressed me his idea of watching and discussing together MOOC videos from his video library, I thought that was really rad! … I´m very interested in data visualization and all the possibilities you have to make the world a better place using these technologies. After the event we exchanged  a couple more emails on the topic and we decided to create a meetup group to bring together all professionals and data visualization enthusiasts to share our knowledge and ideas. That’s how the Costa Rica Data Visualization Group was born.

Data Visualization Costa Rica  is a non-profit professional group that aims to meet monthly to discuss data visualization, data communication, infographics, exploratory data analysis, charts and graphs, perceptual psychology, and more! Our members are data journalists, programmers, data scientists, business intelligence professionals, and others who tell stories with data. Meeting topics will vary and range from tutorials on basic concepts and their applications, to success stories from local practitioners, to discussions of tools, new technologies, and best practices.

AngularJS Learning Resources



AngularJS Best Practices

Miško Hevery discusses the advantages and disadvantages of various design choices when structuring an app in AngularJS, and some of the best practices.

A series of free video tutorials with great content. If you want to learn AngularJS well this is a good starting point. Check out the first video on data binding.

Introduction to Reflection in Javavascript

In English, one of the meanings of reflection is “introspection” : contemplation of one-self. In other words, reflection is the ability of a thing to talk about itself.

In programming languages, the incarnation of this definition appears as follows [BGW93]:
“Reflection is the ability of a program to manipulate as data something representing the state of the program during its own execution. There are two aspects of such manipulation : introspection and intercession. Introspection is the ability for a program to observe and therefore reason about its own state. Intercession is the ability for a program to modify its own execution state or alter its own interpretation or meaning. Both aspects require a mechanism for encoding execution state as data; providing such an encoding is called reification.”

Reflective computational systems allow computations to observe and modify properties of their own behavior. The concept of reflection is best understood by reaching back to the study of self-awareness in artificial intelligence: “Here I am walking down the street in the rain. Since I’m starting to get drenched, I should open my umbrella’‘. This thought fragment reveals a self-awareness of behavior and state, one that leads to a change in that selfsame behavior and state. It would be desirable for computations to avail themselves of these reflective capabilities, examining themselves in order to make use of meta-level information in decisions about what to do next.

Recommended Podcasts, Screencasts and Blogs

5by5 podcasts


Founders Talk

This is my favorite one, it’s awesome. I have learned a lot about building online businesses, I feel I need to thank Adam for running this podcast. I highly recommend it.

“Founders Talk is an interview podcast all about awesome, in-depth, one on one conversations with Founders. Tune in for a new show every week!” – Adam Stackoviac


The ChangeLog – Open Source Moves Fast. Keep up.

The Changelog is a weekly podcast and blog that covers what’s fresh and new in Open Source.


Javascript Jabber

Simply the best Javascript podcast out there. By Charles Max Wood, Joe Eames, Merrick Christensen, AJ O’Neal, Jamison Dance, Aaron Frost

Recommended Lean Books

The Lean Startup - Eric Reis

The Lean Startup

Eric Ries defines a startup as an organization dedicated to creating something new under conditions of extreme uncertainty. This is just as true for one person in a garage or a group of seasoned professionals in a Fortune 500 boardroom. What they have in common is a mission to penetrate that fog of uncertainty to discover a successful path to a sustainable business.

Rather than wasting time creating elaborate business plans, The Lean Startup offers entrepreneurs – in companies of all sizes – a way to test their vision continuously, to adapt and adjust before it’s too late. Ries provides a scientific approach to creating and managing successful startups in a age when companies need to innovate more than ever.

Do one important thing: make better, faster business decisions. Vastly better, faster business decisions. Bringing principles from lean manufacturing and agile development to the process of innovation, the Lean Startup helps companies succeed in a business landscape riddled with risk. This book shows you how.


Running Lean: Iterate from Plan A to a Plan That Works

“Running Lean is a systematic process for iterating from Plan A to a plan that works before running out of resources.”
-Ash Maurya

What is Running Lean ?

Recommended Javascript Books

Javascript: The Good Parts

JavaScript: The Good Parts

This books is must read for every javascript developer. It is a really little book (around 150 pages) that will help you understand the fundamentals of the language and most important what are the good parts of the language and practices you should avoid in your programs.


Eloquent JavaScript

Eloquent JavaScript is a book providing an introduction to the JavaScript programming language and programming in general.

“A concise and balanced mix of principles and pragmatics. I loved the tutorial-style game-like program development. This book rekindled my earliest joys of programming. Plus, JavaScript!”
—Brendan Eich, the man who gave us JavaScript