I’m focusing on helping my kids learn analytical skills, everything else they need to learn will be more accessible to them than this, now and in the future. STEM, leadership, and other career-specific skills are often (but not always) learned while working, most adults would agree with that.

A big difference between poor kids and rich kids are the options they are given from an early age. Kids from a low-income family are often given directions to do things, instead of analyzing things and make decisions on their own; they have little or no choice about the things they can do.

When people are given options from an early age, they learn to analyze them; they learn to compare and choose what option(s) are better for them. They learn critical thinking skills and use this knowledge to solve problems and make decisions.

One of the most significant differences in early education between different social classes, in my opinion, is the access to options and the ability to make decisions about those options.

Allowing kids to think and showing them that they can pick their homework, their chores, their schedule, etc. based on the information they have at hand, and letting them discover the output based on these decisions is critical.

Analytical skills will prepare them better for life, and this, in fact, might have a more significant impact than learning technical skills for example. This is one of a thousand things that can help with the inherited disadvantage.

STEM skills should be taught, but not instead of analytical skills, especially to those kids in disadvantaged households. Most technical and job-specific skills are learned while working. So, while it is great to bring attention to the gap in STEM education for example, I believe it is just as important if not more, to teach our kids analytical skills to teach them how to think, how to make decisions, and how to have a perspective on the things that they will encounter in their future.

 

Last week as I was asked to describe what a JavaScript callback is to someone without any technical background. I thought about it for a few seconds and couldn’t think of a non-technical way to explain that a callback is a function that gets executed after another function has finished its execution, so then I was asked to explain a 500 error instead.

Explaining what a 500 status code is to someone with zero technical knowledge sounded more interesting and fun to me so this is what I remember saying…

A 500 status code is what you’ll get when a something has gone wrong on the web application’s server but the server doesn’t have any specific details.

Imagine a home with many doors, in this example, each door is a “web application” and the home is the “web server”, the place where all these doors are.

Now imagine that you open a door, and while the door does exist, there is nothing behind it, at this point the home will tell you that nothing specific exists behind the door so in web server language, that would be similar to a 404 status code which means “Not Found”.

What about the 500 status code? Well, if you attempt to open any other door and nothing works inside of it, the home will tell you that there’s something wrong with it, but not sure what it is. For example, there might be no lights or no water, but the home won’t tell you that, it just tells you that there’s something wrong and in web server language that’s usually what a 500 error means. Something is wrong with the web server or the app but it doesn’t know what it is.

If you can’t explain it simply, you don’t understand it well enough.
~ Albert Einstein.

By now you’ll probably already pulling your hair, and I understand, this is painful. My explanation or attempt to explain this to someone with zero technical knowledge wasn’t good enough, at least not in my opinion. But that isn’t the point of this, the point that I am trying to make is that it is very hard to explain something technical that is well understood by us and people that we work with, but not by anyone that isn’t technical and has zero knowledge about programming or web servers in the above example.

In my experience, having the ability to translate a technical problem or solution to a non-technical audience is key, it is something that you as a software engineer, for example, will need to do many times when communicating with business partners, customers, or anyone that isn’t a software engineer or has any technical knowledge.

How do we get better at this? Well, this is something that the more you do, the easier it gets, but it never stops being difficult. You might memorize a couple of examples where you can explain a couple of things, but with technology changing so rapidly it will be hard to have a template or an example of how to translate something technical onto something that anyone can understand.

The ability to tell a story is key to accomplish this, and without at least trying to get good at storytelling, your chances of confusing people and not being able to communicate something technical clearly are very low.

Also, be empathetic and patient. If you are trying to explain a technical concept be aware of who your audience is and tune your technical speak to their level. There might be times where you’ll replace the technical talk with something that your audience will understand, remember that your ultimate goal is to communicate and to do it clearly.

In conclusion, I learned something about myself and this blog post is the first step to improve it, I don’t think too much about how to improve my communication skills when trying to explain a technical concept, idea, or problem, to someone who doesn’t have the technical knowledge or experience with technical terms.

Here are some resources that I am using to help me with this subject:

If you had the option to select a laptop for software development, and the options where between something portable like a very capable ultralight laptop, or a much bigger, and much powerful laptop, which one would you choose?

The specific models aren’t important really, as you might be reading this post many months or perhaps many years after and so the particular laptop models today, would be irrelevant in the near future. What’s important here is the idea of getting a much lighter but capable laptop for software development instead of getting a much more powerful laptop, with the drawback of being much more prominent, heavier and less battery efficient.

Why the need for portability?

As a software engineer working remotely 100% of the time AND someone who likes to travel and visit coffee shops, portability is something I’ve always appreciated when it comes to my gear. However, as I continue to get more involved with larger projects, the ultralight laptops I’ve used so far aren’t cutting it anymore. In general, laptops are much lighter and much powerful than ever before, but if you want or need a laptop with at least 32GB of RAM and a Quad processor, then you’ll have to compromise and get a bigger laptop.

Today, more and more people can work remotely, and many of them are taking it a step forward by traveling around the country or internationally and getting work done while on the road. I’ve done this a couple of times and while it isn’t perfect when it comes to communication with your team due to time zone changes, etc. it works well for many people as long as expectations regarding time and availability are well-defined between the members in the team.

(more…)

Everyone is naturally biased, but when hiring and promoting people, we want to avoid our bias to eliminate discriminatory actions. In 2016, an article from the Harvard Business Review reported the following:

“When sociologist Lauren Rivera interviewed bankers, lawyers, and consultants, they reported that they commonly looked for someone like themselves in interviews. Replicating ourselves in hiring contributes to the prevalent gender segregation of jobs, with, for example, male bankers hiring more male bankers and female teachers hiring more female teachers.”

What can we do to make sure we hire a diverse team and avoid being bias during the recruitment and interviewing phase? One way to avoid this is to make sure you offer interviews to candidates based on merits and nothing else. A good start is to expand your personal network to increase the candidate pipeline with more women, people of color, and other underrepresented minorities. With a wider and more diverse pipeline, you can then focus on selecting people based on merits and nothing else.

Be blind

We need to be blind to information such as names, age, gender, or any other information that isn’t experience or skills. Companies like Applied, Blendoor, Edge, GapJumpers, Interviewing.io, Paradigm, and Talent Sonar offer services to help you remove this information from applicant tracking systems to avoid any sort of bias. These services these companies offer can be integrated with existing candidate tracking applications to remove information that can cause discriminatory actions.

Structured interviews

Being blind to some of the candidate’s information is a good start, but it isn’t the final solution. After the initial process of qualifying candidates based on merit, you’ll want to interview the candidates in person, phone, or a video call. In order to do this and remove any bias, you should have a well-defined and structured interview process. Make sure you ask all candidates the same questions, and in the same order, and encourage the interviewers to rate each answer as soon as the candidate answers the question. Standardizing this process will allow for clear comparisons between all candidates and leave very little room for bias.

Avoid group interviews

Another thing to consider is avoiding panel or group interviews altogether. For once, it is difficult to diversify the interview panel and there isn’t any data that proves that a panel or group interviews result in better hires. People interviewing candidates should be independent of each other to get the benefit of a personal and unique perspective about a candidate. After interviewing a candidate, submit their assessment before meeting with others to discuss the applicant. Individual interviews will allow you to collect multiple data points and different perspectives instead of one data point from a group of interviewers.

Work-sample exercises instead of resumes

Resumes are really not a good resource to determine if a person has the skills and experience for a job. Work-sample exercises require applicants to perform tasks or work activities that mirror the tasks employees perform on the job. Prepare work-sample exercises that candidates can use to demonstrate their know-how. To make these work-sample exercises and its results unbiased, do not include the name, gender, age, race, or any other unneeded information about the candidate.

The above suggestions can help eliminate some of the biases, but it will not stop all of our shortcomings. This isn’t perfect but it is a good start to help reduce our biases which can then lead to discriminatory actions.

Want to learn more and participate in our Diversity in Tech Meetup? Please join our meetup and attend an event if you are in Austin, TX.

Image credit: Gary Waters/Ikon Images/Getty Images

Thanks for reading! 🙂 If you enjoyed this article, hit that share button below ❤ Would mean a lot to me and it helps other people see the story.

 

The other day I saw the following tweet from Lara Hogan and it inspired me to do something about it.

The first thing that came to mind was what is the difference between mentoring and sponsoring, then I read the article, and while its focus is about women being over-mentored instead of sponsored, the article painted a clear picture about the differences between the two.

In short, the idea is that while women and other underrepresented minorities are being mentored more than ever, the number of them being sponsored is still low. Sponsoring within the context of helping them get a job, get a raise, a promotion, funding, etc.

This article and the tweet made me think about ways that I could help sponsor women and other underrepresented minorities to get their foot into tech and succeed in it.

Many years ago I was sponsored by a small business owner in Minnesota who believed in me. At that time I was a young Hispanic man who had just graduated from a technical school, didn’t have any professional experience, and couldn’t even speak English clearly (I am still working on it). This person knew that I didn’t have the experience but he saw something in me, he trusted me and took me under his wing. The way he sponsored me was by hiring me to take care of his small office local area network (LAN), maintaining the computers in it, and taking me with him to see his clients where I learned about the business, sales process, and how the business worked. Within a year, I was writing software, meeting with clients to explain the technical side of the projects, and helping with hiring and other tasks.

By the time I left this job to move to Texas (Minnesota winters are long and harsh), I had developed a few web applications, a couple of desktop apps, and an automated process which helped increase the revenue of this business and it also created new revenue streams and offerings to new and existing clients. I acquired experience and self-confidence. It was a win-win.

Today, while I am not in a position to hire or promote someone, I can help others get more exposure and self-confidence. As an organizer of a meetup group and a techie, I can sponsor underrepresented minorities by promoting them, their businesses, and their ideas with the rest of the Austin tech community.

I think we can all agree that diversity in tech (and everywhere) is not only beneficial for the people in these minority groups of which I am part of, but it is also beneficial for the company and people who work around them. A company who embraces diversity and inclusion in the workplace will have the advantage of having access to a variety of viewpoints, increased adaptability, and new perspectives and ideas.

There are already many organizations and programs to help bring underrepresented minorities to a level where they can compete for a job or start a business. However, there is still a lot of work to do to help them get to the finish line, or near it. Once people gain the skills and are ready to start a business or apply for a job, we can still do something to help them get a job, a promotion, a meeting with an investor, etc.

I can help by providing a framework and a platform for underrepresented minorities to expose themselves, their experience, their ideas, and their businesses. There is also a new list on Github that I created today where people can add themselves, a short bio, and a link to their website, business, etc. The goal is exposure and promotion.

This will at the very least increase their exposure and help them create those connections that are indispensable in any industry to succeed.

This is what I can do today.

journeyThere are some of us who are very optimistic about the future, and some of us who aren’t. The difference is clear – pessimistic people believe the best days are a thing of the past and anything new is not as good as it was. Optimistic people see the future as an opportunity to be and to do better, even if every day that passes means we are one day closer to the end.

Are you optimistic or pessimistic? Being optimistic about the future means you don’t only adapt to change but you embrace it. You believe there is always a chance to make it better. It also means you are confident (or naive) enough to think you and the people around you are capable of improving the present to live an improved future. (more…)

experimentswithpurposeFirst of all, stop being a people pleaser. When you try to please people around you, it makes it hard to try experiments, to take risks, and to embrace change.

Failing isn’t popular, and it is scary for many people. Some people are OK with failing fewer times, as if there is a right number of times to fail. The more you fail the more you learn. If you aren’t failing often, you aren’t taking enough risks and not trying enough experiments.

Fear is the biggest blocker of change. It is the main reason people don’t experiment enough. There is fear of failing and being ridiculed. We have been thought all of our lives that failing is what irresponsible people do. By experimenting and embracing failure, you are already ahead of most people. After enough failures you’ll learn what most people don’t and eventually, you’ll find the successes that most people won’t.

Experiment, fail, and do it all with purpose. The best way to experiment is when you do it with purpose and when you measure the results. An experiment cannot be successful if you fail and then ignore what didn’t work. A successful experiment has to prove something, then you find out what worked and what didn’t and start again.

Experiment, connect, disturb, inspire, and keep learning. That’s the only way you can truly learn and spread your ideas.