Autographs – Who to Ask For One?

by Xavier Comments: 0

Many years ago, Pele (Edson Arantes do Nascimento) visited Costa Rica. I was a kid and someone recommended I should get an autograph. And so I did.

To be honest, it is the only autograph I’ve ever asked for. Here is the reason.

He may have been the greatest soccer (or futbol) player on Earth, but hearing about how K. Scott Allen (Ode To Code) passed away today got me thinking that people like Scott are the ones who people should ask for autographs.

Why? Because people like him are the ones uplifting others, helping them, teaching – great deal of it with Pluralsight. Nothing against Pele, he was great but the impact in the world that a teacher like Scott had can change the lives of those who he helped.

Anyway, this may be a not too popular opinion, especially for soccer fans, but I do believe in the power of teaching.

Upgrading a .NET Application with Solr and SolrNet

by Xavier Comments: 2

Today I took the task of updating a .NET application that I’ve had since sometime around 2013.

I created this application with a few people at the time of .NET 4.0 and Solr 4.10, with its corresponding SolrNet.

Today I moved it to Solr 8.4 and with .NET 4.7.

There are a few interesting changes that you need to take into account, which I may expand at some point. But just in case, if you are in the same scenario, here are some upgrade tips for you to consider:

#1 When you move from Solr 4.10 (and older versions) to 8.4, there are some changes to take into account

  • The default field is now _text_ and not text
  • Some types may have changed
  • Default now is managed-schema, not schema.xml
  • Some changes are required in solrconfig.xml

So, what I did is downloaded, installed and started a Solr 8.4.

Then I created a core

bin\solr.cmd create -c <name>

Next, I configured Solr so that I do not use schemaless mode. Use this link for more info: Switching from Managed Schema to Manually Edited schema.xml

Don’t forget that besides changing the ClassicIndexSchemaFactory, you also need to disable schema guessing, which allows unknown fields to be added to the schema during indexing.

Then I indexed some data. This didn’t change much.

Now, a fun one. I have a custom request handler, which wasn’t working. Oh dear, I forgot for a second that the qt parameter no longer works unless you explicitly configure Solr to work.

This is straightforward. Comment out your select request handler, and add the handleSelect attribute to true in the RequestDispatcher node. Like this:

<requestDispatcher handleSelect="false" >

Also, comment out the select requestHandler.

Restart Solr and happy searching!

Welcome to Big Data TV – Or The One That Started It All

by Xavier Comments: 0

Hello and welcome, I am Xavier Morera and I am very passionate about helping developers understand enterprise search and Big Data.

And today, I welcome you to the first post of the Big Data Inc Series (which will soon be joined with Big Data TV).

So, you might be wondering… what is the Big Data Inc Series?  Easy. It is a series of bite size posts that explain enterprise search and Big Data.

What is my objective? At a high level, each post will take between 5 to 7 minutes, and will provide an overview of one particular topic – and only one – to give you enough information to understand what is the purpose of a particular platform, language, project or anything else that touches enterprise search and Big Data

Why am I doing this? First of all, I am really passionate about search and Big Data… like a kid on Christmas day. I do have to agree that I have my preferred platforms, languages, and projects.  However, it does not hurt to have an idea of what each one is about.

Also, why are the posts so short? Well, I could go on and on for hours – believe me, or at least my friends who say that a 45 minute presentation for me is just like warming up – but the point is that I want to be very concise, straight to the point, and give you an overall idea. The Big Data Series is not meant to be tutorials. For trainings I have several courses at Pluralsight which include topics like Spark, Cloudera CDH, Solr, Hue, Hive, JSON, code profiling and more – as well as having done and helped on trainings for Cloudera, Microsoft/HP/Intel.

I will cover a topic, give you a general idea, and let you decide if this is a technology that could be useful in your toolbelt. In many cases, I will point you in the direction of where to go learn more or I will tell you a story or two of how these technologies are used in real life.

So please join me on this journey with the Big Data Series. In our next post, we will talk about how Big Data started, with Hadoop. Also don’t forget to subscribe to be notified of new released posts, videos, like and share. Also, you can follow the links below in the description.

And as we Costa Ricans say, pura vida!


Learning Apache Solr – Online Training – Instructor Led Training – Book

by Xavier Comments: 0

Search is one of the most misunderstood functionalities in IT. Everyone takes it for granted unless it is missing or badly implemented.

The other day I was asked how can I learn search, with Solr?

There are manyways, although I’ve done what I can to help others learn enterprise search. Here are three resources:

Pluralsight Online Solr Training

I created two trainings that teach you what you need to know to get started with Solr and create a search API with Solr and SolrNet (oriented towards Microsoft-centric technologies, i.e. C#).

Best part is that it is only $29 a month to get a subscription to Pluralsight and you can learn about many other topics that are relevant for your career.

Getting Started with Enterprise Search Using Apache Solr

Implementing Search in .NET Applications

Cloudera Search Instructor-led Training

If you prefer to take an instructor-led training, Cloudera has a great training, with amazing instructors to teach you Solr. If you were not aware, Cloudera Search is actually Solr but running on top of a Hadoop cluster. So hello Big Data!

Cloudera Search Training

SyncFusion Apache Solr and SolrNet Book

I published a book on Solr for SyncFusion. It is part of the Succinctly Series, so it is a condensed resource that helps you get started. And it is free.

Apache Solr Succinctly


Hope they help. Ping me on twitter @xmorera if you have any questions!

Deploying Cloudera on Microsoft Azure

by Xavier Comments: 0

Are you in interested in Deploying Cloudera on Azure? If so, I invite you to watch this course that I created at Cloudera for Microsoft that teaches you how to install and deploy Cloudera on Azure in multiple different ways. Best of all, it is a free course! Please follow this link to watch Deploying and Scaling Cloudera on Microsoft Azure

The modules covered are:

  • The Building Blocks of Microsoft Azure for Deploying Cloudera
  • Cloudera on Azure – Cloud Deployment Best Practices & Patterns
  • Deploying CDH on Microsoft Azure Using Cloudera Manager & Azure Marketplace
  • Automating Deployments in Microsoft Azure Using Cloudera Director
  • Cloudera Altus in Azure Cloud – Machine Learning and Analytics as Platform-as-a-Service
  • Final Words

A Few Resources to Get Started with Search and Big Data

by Xavier Comments: 0

The other day I saw a question on where to start to learn Big Data. Well, it dawned on me that I have created a few resources that might be useful and so I share them here. It feels good to have a few resources that can help people get started.

If you want to set up Hadoop clusters using Cloudera you could watch these online trainings:

Creating Your First Big Data Hadoop Cluster Using Cloudera CDH

Preparing a Production Hadoop Cluster with Cloudera: Databases

Deploying Hadoop with Cloudera CDH to AWS

Deploying and Scaling Cloudera Enterprise on Microsoft Azure (this one is FREE)

They get you started with a development cluster, then a production grade cluster, then a deployment in the AWS cloud and then on Azure, including a module on managed Big Data with Cloudera Altus

Once you have a cluster, you can watch this course to use HUE to work with Hive, Pig, Impala and more.

Take Control of Your Big Data with HUE in Cloudera CDH

If you want to learn about search engines, you can check these on Solr

Getting Started with Enterprise Search Using Apache Solr

Implementing Search in .NET Applications

And regarding Spark, which IMHO is one of the best platforms that you can learn now then you can take either of these courses, which help you get started with either Python or Scala

Developing Spark Applications with Python & Cloudera

Developing Spark Applications Using Scala & Cloudera

I hope this helps. IMHO, learning Big Data is one of the best moves that you can make at the moment.

Next Conference: Pluralsight LIVE 2018

by Xavier Comments: 0

And so it is time to get ready to my next conference, Pluralsight Live which will take place in August 28-30 in Salt Lake City. I will be presenting on how to deploy Cloudera clusters on Microsoft Azure. Hope to see you there!

Use discount code 3061 to register at


The Power of Experience and Maturity in Programming (and Life)

by Xavier Comments: 0

It was a Friday night like any other. At least that is what I thought, until a small accident occurred that made me think hard about the power of experience in life and and my career as a computer programmer. So, what happened?

Over the course of the week, I had already clocked somewhere between 60 to 70 hours of work between my day job, keeping the wheels turning in my service application software, over-seeing my small support center, and working on my Pluralsight authoring.

My wife was probably twice as tired as I was, having cared for our two young kids, which is unimaginably more demanding than sitting or standing in front of a keyboard, several monitors, lots of emails, and abundant CPU power.

In any case, I was more than ready to spend some quality time with my wife, talking about the same things as we always do on Fridays. Being an entrepreneur—albeit a small one like me—means working a lot, so we barely see each other during the week.

I usually leave home at 5:40am to my day job, work all day, then do the one hour drive back at 5pm to show up for bedtime, see my family, and go straight back to my personal office located a few miles away, where I stay until some time between 10pm and midnight.

It all depends on when my body reminds me that I am not that young anymore, and that I should get some sleep.

That Friday night we could hear the girls laughing loudly in their room. When kids are two and four, they are beyond adorable and their laughter is what makes you tick and keep working crazy hours towards distant goals in spite of false starts and setbacks.

The Accident


And then it happened. A loud “crack” followed up by something that I cannot describe as crying. It was screaming, as I’ve never heard it before.

I ran to the room and found the two-year-old face down in her bed. The four-year-old was standing looking down, knowing that something bad had happened, but not really understanding what it could be.

We asked the older one what had happened, and she said that she stood on the two-year-old’s back and “pulled on the sled’s handles.”

The result? A dislocated elbow. And a rush to the hospital.

As you would expect, nothing—especially not my evening work routine—is going to come between seeing that my family has my full attention when they need it most.

The Children’s Hospital of Costa Rica

We arrived at the hospital sometime around 8:30pm with a little girl that couldn’t stop crying. She could not stretch her arm without screaming. We were told it was a “simple fix.” Any doctor could just perform a specific maneuver, and the elbow would be back in its place.

Call me a skeptic, but I believe that the proof is in the pudding.

After a short wait, the doctor greeted us and asked us to come in.

Judging a Book by its Cover

I am not that old and traditionally minded. I am in my mid to late thirties. However, I do think that you need to dress appropriately for the position you hold. I’m not saying you need to be overdressed, but believe you should never be underdressed.

Don’t get me wrong. I am a computer programmer and even though my current assignment requires that I dress business casual, usually I work in jeans and t-shirt or, in some cases, a button-up shirt with Skechers.

But here is a doctor, in his mid thirties, wearing an un-tucked Iron Maiden t-shirt, with something that looks like Air Jordan shoes and wrinkled jeans. I was single at some point in my life between living with my parents and getting married, so I fully understand the wrinkled clothes, but this is not what I was expecting from a professional, let alone one that is going to affect the wellbeing of my child.

On the other hand, he seemed to be extremely confident that he knew what he was doing, which kind of convinced me that we were in good hands.



And here is the problem. My little girl is in pain. I absolutely want the best doctor that money (or my insurance) can buy. I want my little girl to have zero pain. Nil, null, cero, zero, none— absolutely no pain. I want her laughter back. And I want it now.

I will not take any chances at all.

But I was told it was a “routine fix”. So he performs the maneuver. Pulls her arm, twists it slightly and tells me that I should go outside with her for five minutes and come back to confirm all went well.

And so I did. We came back a few minutes later, but nothing had changed. My girl was still in a lot of pain. So he sent us to X-ray to check for any cracks in her bones.

We took the X-rays and came back to the doctor. He couldn’t find anything, so he tried the maneuver again.

Another five minutes. Nothing improved. There were more X-rays and still nothing changed.

Desperation & Giving Up

At this point my girl was still crying and screaming, holding her little arm. I felt like I wanted to join her.

It is true what they say: you experience your kids’ pain. As nothing had worked, the doctor sent us to get a cast for my little girl.

So we went with the technician who was going to help us by putting a cast on my little girl’s arm. In hindsight, that would’ve been a catastrophic decision as the elbow was still dislocated and putting a cast on it would not have let it heal as it should, but this is not what happened.

The AngelDoctor

We are greeted into the room where everyone walks out with what’s commonly known as a “sign here” trophy—a cast. The person in charge is older. He is the technician in charge. He is not a doctor, but he has probably worked there many years and helped thousands of kids.

I believe he is around 60 years old, has gray hair, and is impeccably dressed. I get a great first impression which is the total opposite of what happened about an hour before with the Iron Maiden t-shirt doctor.

He asks me, “What’s wrong?” and I tell him.

He sighs and mumbles: “Oh, these young doctors.” Then he points to his hair and his next words marked me for life. He says: “Do you see these gray hairs? They are called experience. Your girl does not need a cast. She just needs someone with experience. I am not a doctor, but watch this.”

For a moment I start to feel a slight panic attack. I don’t want anyone hurting my girl, but she is already in quite a bit of pain. He takes my hand and puts my finger on my girl’s forearm. He says: “I will move her arm and you will hear a crack twice, but then five minutes later she will be jumping and laughing.”

Crack, Crack

It all happens exactly as he predicted. He stretches her arm, and folds it back. Two cracks, my girl shivers and then we go and sit outside. Five minutes later, my girl is jumping, laughing and for the first time in several hours, she is back to normal and more.

Had he not intervened, my girl’s elbow would not have healed, and she would’ve been in pain unnecessarily.

Why is This Relevant?

Because I feel that we live in an age where people are starting to forget the value of experience. Everybody wants it all and they want it now.

“Play now and pay later” seems to be the new credo instead of the “Pay now and play later” of my parents’ generation.

We live in an age where media makes many think that they can do things that they really don’t have the necessary experience for.

I am a firm believer that you need to pay your dues first and then reap the rewards. It is a process and it requires patience and hard work.

So let me tell you about several of the key lessons from that day that directly relate to your life as a computer programmer, which I believe are really important.

#1 Dressing Up: First of all, always dress for the occasion. The occasion does not necessarily mean suit and tie, but always dress as expected within your work environment. Overdressing might not be too much of an issue in some cases and might even be desirable if you have a specific agenda, but underdressing most definitively will. An Iron Maiden t-shirt with Air Jordans is not the kind of attire I expect from a person who cares for one of my most precious possessions. Similarly, I might not want to bet my hard earned money on someone who looks more like a person waiting for 420 than like a seasoned consultant who looks like he knows what he is doing.

#2 Rookie Smarts: You may be very confident in what you are doing. But keeping an open mind, being open to another’s opinion, and being ready to doubt yourself can be very powerful—this is what’s called rookie smarts or the wisdom of the eternal learner. You might think you are always right and maybe some people around you even tell you that you are always right, but they’re most likely wrong. We all make mistakes and being ready to accept that you are not always right puts you in a privileged position. One that—when leveraged correctly—can give you an edge over those that put their ego first.

#3 Being Humble: The doctor thought he knew how to “fix” my daughter’s elbow. And he probably did, but this is the human body. It is not like putting together Lego, where things only fit in one way. There are many variables to consider, and he should have stopped, thought twice, and looked for a second opinion. But never for a moment did he doubt himself. And, as we now know, he was wrong.

#4 Experience Matters: The fourth takeaway from this story is that experience matters and it makes a difference. In order to avoid making mistakes you usually need experience, but to get experience you will make many mistakes. By applying what he had learned through the years, my angel used his experience to save my daughter from a lot of pain and maybe even an operation.

The Aftermath


Looking at the big picture of that Friday night in retrospect, I learned that there are things in life that really matter and make a difference way beyond what I thought they did. I have never been a great dresser, even though I try to fit in as much as possible. I never thought that I would judge someone by how they dress. Yet I did, and my intuition based on that judgement ended up being correct.

Also, I realized that sometimes the person with the most experience is not the one with the biggest title. In theory, a doctor should know more than a technician, but not in this case. This definitely also applies in programming, where sometimes the architect does not really know how things work and where a developer with a smaller title could hold the key to fixing a critical system.

The final gem is the reminder that family should always come first. No professional success is important enough to put your family in second place.


Thanks to John Sonmez for the opportunity to write in his blog. If you want to supercharge your carreer, follow him!

This post originally appeared in

Protect Your Meeting’s Productive Time

by Xavier Comments: 0

Time flies.

Time is of the essence.

I don’t have enough time.

If I had only one more day.

These are some of the phrases that I hear on a daily basis in regards to time. It seems like the days pass too quickly and there is never enough time to get everything done.

Haven’t you wished a day could be 26 hours long?

In most cases, however, the problem is not that the day is only 24 hours long. The problem is how you spend your productive time.

Time Is the New Currency
Antique clocksI recently wrote a Simple Programmer post about how to Protect Your Productive Time, in which I covered many of the reasons why most developers — and many other workers in knowledge-based industries — can’t seem to get enough done in time.

In most cases, the problem lies not in the amount of work they have to do, but in how they choose to invest their time.

How much can you do in a year? I consider myself a very productive person. For example, over the past year, I worked on enterprise search consulting with Solr and SolrNet; ran my own small support center; managed my micro hosting company that leverages AWS, Azure, and Rackspace; created a few training modules for Pluralsight; wrote a book for SyncFusion; delivered a few public speaking engagements and training for the Atlanta.NET User Group LIDNUG and Search Technologies; led development of my SaaS solution for used car dealerships; developed the next version of my VIN application; and, on top of this, continued being a dad of two extremely active little girls, as well as a very helpful husband.

Nevertheless, I’m put to shame by John Sonmez’s feat of creating a staggering number of training modules for Pluralsight–55 of them–in only a year and a bit more.

As a fellow trainer with John, I attended an open space with him this year at Pluralsight’s author summit, where he walked me and a few other authors through the steps to supercharge programmer productivity. To be honest, I was impressed.

But being impressed hasn’t helped me much. Rather, it’s been taking John’s advice to apply my own personal experience to meet day to day challenges that’s made all the difference for me. (For those of you who have not yet attended an open space with John, you can learn his method in his recently released course: 10 Steps to Learn Anything.)

So, let me offer you some tips and point out some areas of potential improvement for increasing your productivity. One of my main suggestions in my previous post was to minimize meeting time and instead focus on getting things done.

This was a tricky proposition, as meetings cannot just be skipped altogether. Meetings can be a powerful way of reaching consensus, communicating progress, and, as per the cliche, getting everyone on the same page.

I’ve also written a few times before on this topic, for Pluralsight’s blog on tips for meetings, for my personal blog about my take on meetings, and how to make your meetings rock.

However, I wanted to write this follow up post to cover how to improve productivity in your day to day meetings in more detail .

Meetings: The Green Eyed Useful Monster
Meetings are a double edged sword. They can be extremely beneficial, or they can be a great time waster.

Indeed, meetings are so consistently abused that my Outlook often cringes in pain!

Sometimes I’ve felt as if I’ve been party to a meeting inception. Have you ever seen the movie Inception where people get in other people’s dreams and then go one more level into the dreams within dreams? That’s how it makes me feel!

In some of the projects that I have participated, it even feels like we have meetings to plan for meetings!

Eternal déjà vu. A glitch in the Matrix?

Most commonly, meetings are called to discuss issues that might not yet merit a meeting. In these scenarios, attendees are typically confronted with a set of unclear objectives, which are presented to far more people than are actually needed for the proposed initiative. Let’s dissect this idea.

Inviting Unneeded Talent
How many times have you been in a meeting and you see people staring directly at their laptop typing from time to time, appearing to be in their own personal bubble? What are these people actually up to? Three possibilities come to my mind:

They might be watching Facebook/Twitter/CNN/Insert-Your-Personal-Time-Waster-Here.
They are working. They had been trying to get stuff done, but they were summoned to attend this meeting, where they may or may not be needed. However, as we all know, declining meetings can be thought of by some managers as impolite, or even a sign of “not being committed to the team.”

They are active in the meeting, and they are trying to find a valuable piece of evidence to present to the team.

What percentage of the time do you think each one occurs? I leave this to you to decide, but I’ve arranged it to descend from most likely to least likely.

Boring presentation. Group of young business people in smart casual wear looking bored while sitting together at the table and looking awayConsider this. Time goes in parallel in meetings. Think of it in terms of billable time. If you summon 10 people into a room for a 1 hour meeting then it is not a 1 hour meeting. It is a 1 x 10 hour meeting. You just took away 10 hours of productivity time, or 10 billable hours, from a project. Let’s run some hypothetical numbers just for fun. If each person in that room is billed at $165 an hour, then your meeting just cost $1,650! You could’ve bought a new Lenovo Carbon X1 laptop with that time! And that’s a pretty nice laptop, I must say.

How do we avoid this kind of waste? The first step is for the meeting organizer to invite only those that are absolutely required. Sometimes a general distribution list is set up, for example the Team Leads DL, and everyone is invited. This may be necessary for weekly checkpoints, where the meeting’s purpose is general review to make sure everyone is in sync. For more specific issues, however, you should involve only the people that have something of value to add in that specific meeting.

And how do you determine this? Well, it is easy.

Clearly Defined Meeting Agenda and Objectives
Meetings are sometimes used by some as a way to appear busy. For them, attending a meeting is working. Do not fall into the trap of imagining an equivalency between meetings and work. Attending the meeting and being busy aren’t really the same as being productive. This mistake is common among underachievers who are big talkers. You may have noticed this group often includes managers. We all know a few.

Before you select who to invite, you need to have a clearly defined meeting agenda with a list of objectives.

But more important this, ensure that it’s crucial that the meeting take place. If the objective is not immediately important or required, then simply defer it until it is the right time.

A meeting without a clearly defined agenda typically ends up going on a tangent. Time is needlessly consumed and, very often, a follow up meeting is required. There’s another potential laptop lost to a useless meeting.

A good tip, especially when you are starting to make meeting objectives very clear, is to use a board for tracking the progress of your meeting’s objectives, ideally a Kanban board. It helps track progress so that all objectives are visually clear and a feeling of productivity is felt as you move along.

Scheduling Meetings
Argumentative persuasive businessmanBe sensitive to your team’s needs when you’re preparing to schedule the meeting. I understand how hard it is to work around everybody’s busy schedule. Depending on your specific role, you will view time in a unique way. A developer needs uninterrupted focus to be productive and create, whereas a manager’s responsibilities involve knowing what the developers are working on, so managers tend to view time in a different way.

Nevertheless, it is necessary to find a way for both of them to work harmoniously and get all their stuff done. This is why meetings are essential to meet production goals.

When it comes to scheduling meetings, try to find a time that allows for developers to maximize productive time.

A good strategy is to schedule meetings at the start/end of the day or before/after lunch. This protects blocks of productive time in the middle of the morning and afternoon.

Which brings me to my next tip: establish a working agreement to protect core working hours.

This is a practice that many organizations employ, wherein a team sets a schedule determining when meetings may be held. The schedule is respected both by the team and other bodies within the organization.

Here’s an example of a working agreement:

Big Data Inc. team’s daily scrum is at 8:30 am every day. From 8:45 am to 9 am all emails and inquiries will be responded to. Then, the team goes into core working hours from 9 am to 11:30 am.

During core working hours, all team members will focus on work items and bugs based on priority, critical, and high defects first. Important features are next in line. Further, during core working hours, developers will focus 100%, leaving IM, emails, and meetings until after core working hours are done.

Additional focused time can be scheduled individually by team members in the afternoon, priorities withstanding. The only exception is when there is a critical emergency that needs to be addressed and can’t wait. For example, a production down incident, in which case only specific and required team members may be required to help

Also be mindful that even during non-core working hours, you should interrupt developers as little as possible. As I said it before, developers need blocks of uninterrupted time to design/create software or fix bugs. Conversely, managers tend to see their time as 30 minute or 1 hour blocks that are perfect for scheduling meetings.

For the sake of both ensuring productivity and making sure everyone is working together, a balance must be created.

Talkers vs. Doers
We’ve all worked with very different kinds of developers. We all know the guy who is really good at talking, but usually doesn’t work much and instead gets others to do his work.

Then there’s the guy that sits quietly in a corner not saying much, but works like an ant.

When both attend a meeting, it will very likely be the Talker who takes the microphone and rants for a while–often about things that aren’t relevant to the meeting. At this point, the guy who needed to talk, the Doer, sits quietly in a corner.

How does a meeting organizer manage these different types of people to ensure they’re contributing meaningfully to the meeting and getting the most out of their coworkers’ contributions?

Well, first of all, you should have an agenda, so stick to it to limit the potential for others to go off on a tangent.

And second, on each point of the agenda, the meeting organizer must make sure that all parties involved in the issue under discussion speak their mind.

This can be tricky, but it’s fully achievable.

Action Items and Objectives
When your meeting is over, your team should have an actionable outcome or have made a decision regarding the points under discussion.

If a decision can’t be made over one or more meetings, you might be going directly into “analysis paralysis”.

I’ve been in that frustrating situation where repeated meetings never brought the team closer to a solution. It was like being on the set of Groundhog Day, but in a billion dollar corporation! Again, a lot of everybody’s time is being wasted.

If you keep having the same meetings again and again, reinforce the advice that I just offered and escalate if need be. Rinse, wash, repeat, and tame the green-eyed useful monster: meetings!

Do your best to make progress and move forward.

man points with fingers in the right sideLet’s summarize some of the points that I covered:

There never seems to be enough time to get everything done. The problem in most cases lies not in the amount of work, but instead how people choose to invest their time.
If you manage your time well, you can be very productive. But no matter how productive you are, there is always the potential to be more productive. Increase your productivity by protecting your productive time.
Meetings are a double-edged sword, as they interrupt your productive time, but are also necessary to make sure everyone is working together efficiently.
So whenever a meeting is required, invite only those that are most necessary.
Make sure you have a clearly defined meeting agenda.
Schedule meetings at times where they don’t interrupt the productive time of developers.
Get everyone to speak to the points that are of concern to them.
And do your best to have an actionable item, or make a decision by the end of the meeting.
I wish you a very productive time inside and outside of meetings!


Thanks to John Sonmez for the opportunity to write in his blog. If you want to supercharge your carreer, follow him!

This post originally appeared in

Failing at Entrepreneurship While You Are Young Is Great

by Xavier Comments: 2

My Perfect Job

It was early 2006, and I had what most people would consider a perfect job.

I worked as a Developer Platform Evangelist for Microsoft Corporation, delivering labs worldwide to Microsoft Partners and teaching how to migrate applications to 64-bit computing. I was working as a contractor, commonly called a v-(dash) in the Redmond/Bellevue corporate lingo.

My life was great, and it was also great for my main employer. “Rent-a-geek” as I call it, is very profitable given the right customer, and we always delivered to Microsoft on time and on budget.

One week, I was in Silicon Valley, then London, India, Seattle, Sweden, Boston, the Netherlands, Korea, Building 20 (the old main campus training center), and the list goes on. If you are curious, you can take a glimpse of my globetrotting in my post, Road Warrior.

The usual joke with my fellow trainers was, “What continent are we in today?” We lived in an eternal state of jet lag, but who doesn’t want to travel the world, all expenses paid, while doing something you love? It was the perfect job.

Then I quit my job to go headfirst into entrepreneurship.

I failed.

And it was the best thing I could have done in my life.

The Opportunity

Good newsIt all started when I received an email from an ex-Microsoft employee who was starting his own company and asked me to help him with a potential project he had. I traveled to Seattle and was interviewed by a project manager (although if you have worked at Microsoft Corporation, you might notice that everybody seems to be a project manager).

The interview went great, and the project was approved.

That same night, I got a “formal” proposal from a hotmail address. A very nice rate for a three month project. Three months! It seemed like a tough choice and a risky one as I had a perfect job, and I’d been working for more than five years with the company that gave me the opportunity to work with Microsoft.

On the other hand, I had an offer for a short term contract that might be extended and turn into something better… Or maybe not.

Did I mention that, in my home country of Costa Rica, severance packages are mandatory and pretty high, unless you quit? It wasn’t an offer to start a company; it was a leap of faith to do a project, and if it worked we could take it to the next level.

I also had a hunch that this guy may not be the best choice. I ignored it.

What I learned: A hunch or gut feeling is your subconscious detecting a pattern that you can’t yet explain. Listen to it, but consider all factors as sometimes making the wrong choice can be good for you as well.

Letting Go of the Perfect Job

And I did it anyway. I picked up the phone, called the Human Resources department, and told them I was leaving.

Did I fear failure? Of course, but not enough to hold me back.

I also learned: To move ahead in life, you need to take action. John Sonmez said it very nicely in his Soft Skills book. If you start moving, it is easier to correct your course because you will have momentum.

Sometimes, you overthink too much, commonly called analysis paralysis, and opportunities pass you by. More than opportunities, life passes by, and you may wake up one day and regret everything you had an opportunity for and your own inaction.

Depositphotos_64017541_m-2015Human resources tried their best to keep me in the company. Just as an interesting note, I’d been asking for a raise for a while, and they always said no. They were probably very confident that no one would leave the perfect job. They offered me heaven and earth, including doublingmy salary. That actually made me want to leave even more as it just reinforced how valuable I really was to them.

I sent in my resignation letter that same day.

It was a very direct and friendly Dear Company, I quit. Thanks a lot! letter. I still had a good relationship with them, so no bridge was burned. I was counting on it in case my contract was not renewed after three months, forcing me to crawl back with my tail between my legs to ask for a job at half my leaving salary.

Something I learned: Leverage is really powerful. You might be in a position where you are 100% sure you are being downplayed, but if you don’t hold enough bargaining chips, you might not come out with flying colors out of the negotiation. I am not saying you should quit to get a raise, but it has worked for me twice in my life.

And a word of advice: You have to be also very careful of not falling completely on the other end of the spectrum. Some people believe they deserve more than what they have earned. I’ve seen this trend especially with very young developers who think they will land a job at Facebook or Google right after graduation and make several hundred thousand a year.

You first need to work hard to reap the benefits. You need to earn it first.

And then my adventure began at age 26. I took a plane straight from Boston to Seattle without going back home to Costa Rica.  All the time that I was traveling, I was using a corporate credit card, which I had to send back.

I only had $300 in my wallet and a $500 limit on my personal credit card. Finances were tight! I was young and totally used to swiping my corporate credit card and sending an expense report. This was a totally different experience as I was on my own.

I landed in Seattle and rented a car for a week (goodbye $500 limit on the credit card) and stayed for the first few days in a $29-a-night room near the Seattle airport. In theory—cross my fingers—I was going to get a cash advance from the new project and then get all the details sorted out.

About one week later, I got a $1000 cash advance, and soon after, all legal and financial details got sorted out. I could finally move into a shared apartment near Lake Sammamish in Redmond, about two miles from Building 120 where I was going to provide my rent-a-geek services in Microsoft’s main campus.

The cheap hotel was one hour away, but it is impossible to get anything cheap in the Bellevue/Redmond area.

What I learned: Sometimes getting started means you have to take a chance or two, and you will probably have to make sacrifices and compromises. Measure your risks, take action, and hope for the best.

I Am on My Own

I started working with Microsoft InfoSec, helping secure high business impact information. This was the three month project. It went well so I got another project, this time with Microsoft Consulting Services creating a SharePoint portal for CEOs and business people. I participated in a few more projects until, one day, I had a talk with the person who hired me.

At this point, I was providing consulting services on a one-project-at-a-time fashion, but he got me thinking: what if I went back to Costa Rica, and we started a company together? It sounded like a good opportunity to scale and get the company to grow.  We were going to be business partners.

What I hoped for: For this job, I got paid per hour worked. Creating and scaling a company (even at small scale) means getting people to work for you and getting paid for the hours they work, not only your hours. And I knew that I wanted to create my own company.

Starting The Business (The Second Opportunity)

People Working with Photo Illustrations of Startup BusinessIt was another opportunity, so I took it. Without telling anyone, I booked a flight back home. I remember getting to my parents place to say hi, and they asked me with a very surprised face, “What happened?”

Nothing happened. I just took a chance to create something bigger.

A few months later, I bought a house, and it was still empty; thus it became the first company office. Two floors, three bedrooms. I lived in one bedroom, and the other two became offices.

In a stroke of luck, I had two friends who quit their job recently, and they were working on their own dream—game design—but needed work to support their initiative. So they joined as well, and one of them is the best developer I know. He was known as TOC, or table of contents, as he always had the answer for your question. I still admire his skills to this day and hope to get the opportunity to work with him again.

We started to scale.

My now business partner who lived in Seattle was in charge of selling, managing US financials, and getting contracts. I was in charge of delivering, hiring, Costa Rican finances, legal work, dealing with bureaucracy, programming, project managing, pre-sales, delivering, presentations, demos, and pretty much anything required to grow the company.

I was basically the jack-of-all-trades swiss-army-knife guy for a while. In fact, I hired an assistant until we hit the 12 employee mark and an office manager at the 20 mark. The office stayed at my house until we had 8 employees. I took the “he lives at work” phrase literally. Even days when I had parties at home, I always had to remind my guests not to use the servers to place food or beverages!

What I experienced: Unless you are a funded or backed up startup, it usually means that you may have to do all kinds of work. I was president, janitor, and everything in between.

Growing the Company

The company kept growing, projects were delivered, and we kept hiring. It was quite a challenge, more than I am sure my business partner ever realized. We had a couple of problems.

Our first problem was that we were a small startup company where the office was in the 26-year-old president’s house in a third-world country ,and we were providing services to Microsoft Corporation. If I brought in someone for an interview, it may sound a little bit farfetched. If we were providing services to one of the biggest companies in the world, shouldn’t we also be in a fancy office?

Not quite.

People tend to forget how some big companies start in a garage. When you are getting started, it is critical that you plan ahead and save as much money as possible. Contracts and payments from customers may delay, but payroll must never be late. You should never ask your employees to wait for their paycheck!

Something we did right: If you keep your burn rate low, it gives you more runway to scale and adapt. Extra cash means being able to hire employees before you need them, allowing you to train them and get them up to speed instead of hiring them when there is an urgency and throwing them to the wolves to fend for themselves.

So many projects fail because people are not trained properly, and that’s why online training is so important, as Pluralsight can indicate.

But the first problem did not come alone. I ran face first into Costa Rican culture. In my home country, the employee mentality is rooted deep down in most people. Entrepreneurship is not the most common way to go.

Instead, everyone wants to get a job, work their hours, get a paycheck, rinse, wash, and repeat. When I was hiring, I had to inspire people into joining this small company that would grow and do great things! Come join me! You can work on world class, bleading edge SharePoint or Dynamics CRM projects!

Whenever I was doing an interview, if I liked the prospect, I had to switch hats and sell him or her the idea that we were what they needed to get ahead in life. It was tiring, but I did a very good job as I hired some great guys.

Brilliant ideaWhat I learned: If you inspire people, you can get them to work for more than just a paycheck. They can join you in a quest.

I also had to pull a few Houdini’s from time to time. Two weeks before we got our first real office, we received an email that a Microsoft Director of ISV Marketing and the CEO of a Microsoft Partner were in town and wanted to see the office. Crap! Which office? The unfinished one or my house full of cables and servers?

Also, being young, I had two big, off-roading, vintage Land Rover cars with no windows and an oversized, lifted Dodge Ram that was in no way fit for carrying around a couple of execs. I solved this problem with flying colors by:

  • Asking my uncle for his nice executive style car to tour them around
  • And instead of taking them to the office (or my house), I took them around the Free Trade Zone office complexes where Intel, Amazon, HP, Sykes, Microsoft, Boston Scientific, and many more transnational corporations have their technology and support centers. I made such a good impression that the CEO of the marketing company opened an office in Costa Rica which now has about 200 employees.

As a side note, Costa Rica used to be big on coffee and tourism, but now it has evolved into technology and call centers. After my initial failure, one of my next ventures includes owning a small call center, and my US customer is delighted with our level of service!

What I learned: Do the best you can with the resources at hand. You will be impressed at what you can do with some imagination and careful planning.

Realizing I Made a Mistake

Time went by, and that’s when I realized how I made a mistake.

When we decided to open a company in Costa Rica, we never discussed what was my percentage of ownership. We talked about ranges but we never decided an exact amount, and worst of all, we did not put it clearly in writing.

You see, when we started, it was all very fast, so we started under my Costa Rican company with an aim to create a new and fresh company once the startup took off. This could’ve been potentially disastrous to me if the startup failed as debts and employees were solely my responsibility.

As a real world example, one of my college professors started a game development company with some people from California, and when the company failed, he was personally liable for all debts, which he will probably have to work for 150 years to repay.

Luckily for me, that’s not what happened, but it could’ve ruined my life early in my twenties.

What I learned: Just like in the story of the chicken and the pig, be careful if you are committed while others are just involved. Take risks, but calculated risks. Share financial responsibilities with the others involved, and always make sure you know what the worst case scenario can be.

The Mistake

When it came time to take it to the next level of creating a fresh new company, that’s when it bit me in my behind. As the percentage of ownership was not clear, I couldn’t negotiate more than 5%, when I was personally responsible for the development success.

I am horrible at sales, but without my development lead, the company would not have grown the same way. If you need some help in estimating your percentages, there is a great method called “The Founder’s Pie” that I recommend you take a look at.

What I learned: You need to put everything clearly in writing as early as possible. You need to think of any possible outcomes and be in a position that you are comfortable with. My grandfather was a very prominent politician, and he used to say, “I trust you, but sign here first.” Sadly, I failed to follow his advice.

Something else I learned: Don’t ask for too much, but don’t undervalue yourself. That’s the part I always used to fail at. I usually undervalued myself too much. And yes, it is hard to estimate what you are worth.


Depositphotos_48589665_m-2015But how am I so sure of my value? It is very simple.

I already had a few difference of opinions with my business partner, but the one I think was the trigger of me leaving was that, in a Starbucks in Bellevue circa 2008, we negotiated what was going to be my end of year bonus as a partner in the company if we reached a certain amount of sales.

Our agreement was clear to me. He offered three bonus levels based on company performance. Given that I trusted him, we didn’t put in writing the exact scenarios with amounts. I flew back home hoping for the big paycheck next year when we met our objectives.

As you probably are already expecting to read, when the year was over, we met and exceeded the quota, but my partner used the “we need to save cash” excuse to avoid paying me what I was owed.

He knew the number, he knew I was right, but in an episode of undervaluing myself, I accepted only 10% of what I earned in all rights.

But it wasn’t the crisis. Now that we were profitable, I think greed took over, and he realized that he didn’t want to share the profits with a 20-something even though I was the reason the company flew.

I later found out this was his third attempt at creating a company; the previous two failed.

So I decided this was the end. It was Friday morning, and we were having a heated conversation. I just told him, “Find someone else,” and hung up.

This was probably the most stressful couple of days for this guy since I just hung up and never took any more calls from him, being as upset as I was. And even though I was the owner of only 5% of the company, I had unlimited power as president of the company—and did I mention we had a quarter of a million dollars in cash in the bank?

With this money and current contracts, my full bonus was not that significant. The story could be totally different for everyone involved, but it wasn’t. As I left the building, I just logged into the online bank manager, paid myself the last two weeks salary, and took off. I didn’t take a cent more, not even what I was rightfully owed.

Word of advice: Be careful with money. I could’ve taken my bonus and severance, but that would’ve probably ended up in a legal battle and I did not want to take it to that level.

The Beginning of the End

My business partner flew from Seattle, and negotiations were very sour. I still owned the domain and access to a lot of things that he didn’t even have. If he didn’t get everything I had from the company, it could be badly affected.

But this is not only a company.

It was a group of 24 hardworking individuals and their families. If I did something to hurt the company, I would also be hurting them. I ended up negotiating with one of my initial hires and gave up everything for a fraction of what my shares were worth.  It was a big loss for me, not only in terms of money but also because I loved the people I worked with in Costa Rica.

What I did: I chose to lose to avoid affecting those I cared for. Don’t be evil. Karma will take care of you later in life, so don’t be the one causing damage. And always keep a cool head and avoid your impulses. You are a master of those words that you keep but slave of those that you say.

Starting From Scratch… Again

This was me starting from scratch again, just like that day I took a plane to Seattle to stay in a $29-dollar-a-night hotel.  However, my situation was different now since I was engaged. I was on my own then, but not now.

I left the company on February 13, just one day before Valentine’s Day, and I was going to get married in 4 months. All preparations were ready for the wedding, but now being “jobless” and really tired of the drama was totally different than 2.5 years ago when I was excited to start a new adventure.

What I learned: When you are down, it is time to pick yourself up, shake your shirt, roll up your sleeves, and move forward. And so I started my new journey.

The Effect of Me Leaving the Company

Depositphotos_62880447_l-2015I mentioned before how I thought I was one of the main driving factors for the company’s growth. Why am I so sure? As soon as I left the company, it slowly started to downsize even though it had some of the best developers I’ve worked with. The company went from 24 employees down to 3 after about 4 years, at which time it was salvaged (acquired is a more friendly term) by another company.

So the reason it was moving forward was simple: I led the company to deliver results. Remember, delivering matters.

And so I started the next phase of my life at 29. It took me a day and a half to find a contract, not a job, and I have moved forward since then. I became a Pluralsight author and an author for Syncfusion Succinctly Series; run my own blog; own a small Support Center; created several cloud applications (success in progress, as I call them); have spoken at several conferences and meetups, including Microsoft’s SharePoint Conference, Atlassian Summit; and have been working as a consultant on multimillion dollar enterprise search projects with Apache Solr and FAST in addition to other areas like JIRA Agile, and Microsoft technologies.

Life has been great, and I am thoroughly enjoying every step of the way. I am working on things that I love, and it keeps getting better. If I think about it, had I not made the mistake of leaving my perfect job that spring of 2006, I would not have experienced all the adventures that I’ve had and would probably be working for the same company from 8 to 5 on a different project.

This mistake taught me how to run a company, and more importantly, it taught me what I want to be in my life.

Let me finish by adding a few more things that I have learned along the way:

  • Take opportunities in your life. A single email I sent out of the blue is how I got started as a Pluralsight author. That’s how I met John Sonmez.
  • There is no shortcut or easy path—at least that I am aware of. You need to put up the hard work, and it becomes easier as you get more momentum. Yet a lot of people spend their nights watching TV while saying what they want to do. Stop saying and start doing!
  • If you start young and with less responsibilities, you can take more calculated risks. Now I have two daughters with whom I love spending time with. But this means that I start working later every night, usually from 9 pm to 11:50 pm. I do it strictly Cinderella style—that is, I am in bed before midnight. And this is on top of my 40 to 45 hour work week.
  • Entrepreneurship is a marathon, not a sprint. I have this rule to work strictly until midnight because if I stay up too late, I’ll be next to useless the following day.. You are going for the long run; don’t burn yourself too quickly. But this is my biological clock. Yours might be different. And yes, I love so much what I do that sometimes I want to keep working, but a rule is a rule.
  • A failed project may turn into something good. I tried to set up a reseller service for an automotive SaaS (software as a service) product from a US corporation in Latin America. We failed, but this lead to an opportunity to set up a call center for this company, and I have been providing this service for three years now.
  • Every decision I make and every action I take is a stepping stone to becoming a better person and a better developer. I am working hard at mastering my craft and gaining control of my life, which brings a question to my mind: are you in control of your life? I recommend you read this post as well.
  • There is one constant in life: it goes on. Don’t live in the past, but learn from your mistakes.
  • And making mistakes is ok in most cases. There is always something that you learn out of it that can help you in the future. A mistake can be success in progress!

Since the day I failed I have been working hard day and night to create my dream. Yes, everybody dreams, but only those who take action, make a plan, and move forward get ahead.

Be positive. There is a sea of opportunities out there but only for those willing to devote themselves entirely to making them happen.



This post originally appeared in: