Ricardo Sanchez
Coder, Photographer, Youtuber, Blogger

Career

A weekend of code, ideas, and diversity

This past weekend I attended the 2016 Diversity Hackathon organized by Women Who Code Austin. This event was a 3-day hackathon and a celebration of diversity. This type of event sparks my curiosity and creativity in a very particular way. There are always constraints of time, resources, equipment and space. And yet, somehow people at these events create interesting applications. It is very exciting and motivating to be part of a hackathon.

Photo: 2016 Diversity Hackathon

ATX Diversity Hackathon 2016

 

These events usually start with a networking meeting where hackathon participants have an opportunity to talk about their ideas, listen to other people’s ideas and to form new teams. The networking is also a good ice-breaker, and it helps participants feel a bit more relaxed and comfortable, knowing they’ll be working surrounded by strangers for up to three days.

Many people participate in hackathons as an opportunity to try a new programming language or framework. Others are looking to start a startup and see a hackathon as the perfect place to create a prototype of their app and perhaps even find people who can join them in their efforts. For example, I met a group of individuals who had just completed a computer programming boot camp in Austin, TX. They signed up for this hackathon to force themselves to write an application using the newly acquired knowledge and skills. One of them created a chat application using Angular, FireBase, and Bootstrap while the other group ended up creating something using Heroku, React, and MongoDB.

When I first heard of this hackathon, I noticed they were looking for mentors, and so I signed up as one. But after the second day, I didn’t have much to do, and so I decided to create a little app of my own. My goal wasn’t to use a new programming language or framework. Instead, I wanted to see what I could do with the Stack Exchange API. After brainstorming for a bit, I decided to visualize user data from StackOverflow.com on a map using the Google Maps API. The result was a fun application that lets you see where developers are in the world and what countries, states, and cities have the biggest concentration of them. I called my project, Hacker’s Map.

In the last day of the hackathon, there was a bit of chaos as the deadline to stop writing code was approaching. We had until 2:00 PM to write code and by 2:30 PM we had to send an email with a link to the app’s code repository, the app name, description, tech stack used, and some screen shots of the application. By 3:00 PM teams started demoing their project to all attendees, including a group of judges who was voting for the top 4 applications.

Everyone had a chance to explain what their app did. Each team had only a few minutes to present, so you needed to get to the point and try to show and describe your app as much as possible in just two minutes. It feels great to do a presentation under this pressure. There is something about it that I enjoy.

All in all, it was a great weekend. Three days of code, ideas, and diversity. I enjoyed mentoring, meeting people, writing code under pressure, eating sandwiches and drinking tons of coffee. I am already looking forward to the next hackathon.

If you are a new developer and are trying to get more experience under your belt, hackathons are a perfect place for this. Also, if you are an experienced developer but haven’t had a chance to participate in a hackathon, I urge you to sign up for one as soon as possible. You can take part as a hacker or a mentor. Either way, you’ll get the benefit of being surrounded by intelligent people, wanting to create something from scratch, under pressure, and with a very tight deadline. It is great, trust me. I am already looking for the next hackathon.

Many thanks to Women Who Code Austin, Capital Factory for hosting it, and everyone else involved in making this such a great event.

What is your dream job?

dream job

Have you asked yourself this question? what’s your dream job? To be honest I am not sure if I can answer this question. My dream job is really a list of things I am actually doing presently and other things I wish I could do as well.

I am curious to know what your dream job is so I created a page where you can answer this question:

http://startupinterns.co/whatisyourdreamjob

So tell me, what is your dream job?

After collecting enough answers I’ll be sending the aggregated results to the email address you use when answering the question in this page.

A new marketplace for Interns and Startups

portfolio-2016-12-65Summer is already here and internship opportunities out there still abound. There are many job sites listing opportunities as well as job fair and hiring events organized by large size companies. Yet, internships and regular job opportunities at startup companies are difficult to find. There are smaller events such as meetups where students and startups can find each other and maybe start a relationship. These type of events might work, but they are hard to scale and don’t reach as many people as an online marketplace can. Therefore, after doing some research and testing the idea using a Google form, I decided to write some code and deploy this website. It is a new marketplace for interns and startups. Continue Reading

Startup Interns

I have always been surprised by the amount of people who need each other but can’t see a way to find each other. This is the problem that online marketplaces try to resolve, some do it good and some others fail to work because they don’t gain the attraction of both suppliers and customers.

With this post, I would like to introduce you to a new marketplace that attempts to connect people looking for internships at local Startups and Small businesses and Startups looking for Interns.

Why is this needed?

I was looking around and noticed that while most large corporations have many ways to reach out to students or anyone else looking for internships – Small Business and Startups don’t have that same advantage or resources. This affects both the Startups and people looking for internships with interesting Startups or Small Businesses. Continue Reading

Programming languages and work opportunities

What is the best programming language to learn these days? this is a question that I hear all the time and this question usually generates all sorts of responses, both good and bad. The reality is that when people ask that question they do it for different reasons and so there is no right answer. Programming languages are like people, they are all alike but yet unique. For someone new to programming I recommend learning about programming without picking a programming language, at least not from the start.

Programming in a hackathon

Learn about programming before picking a programming language

Learning about programming is much more than just learning a programming language. Programming is about finding solutions to a problem and you do this by performing tasks such as understanding and analyzing these problems to find the right solution for these problems. There are many things to be learned about programming that do not require the commitment to a programming language, start with that, learn about logic, computing, and start by playing with some programming languages once you understand the concept of programming.

When you are ready to learn your first programming language or are already a software developer and perhaps are looking to learn a new programming language just for fun, then I recommend you just start playing with a dynamic language and a static one.

Static or dynamic Languages

If you are new to programming, let me explain the difference between static and dynamically typed languages. In short, a statically typed language is where the type of a variable is known at compile time, this means that you as a programmer must specify the type of each of your variables as it is the case in static languages such as C, C++, C#, Java, etc… In dynamic languages the majority of its type checking occurs during runtime as opposed to compile-time. As a programmer, a dynamic language allows you to move a bit faster as you don’t have to specify the type of your variables, etc.

Marketability of programming languages

If instead you are looking to increase your marketability, then here is some data to help you decide. The numbers below are changing constantly, however the general position for all programming languages listed below is very consistent. All of the data from the chart below came from digging in the number of current job openings in the Unites States for the specified programming languages in the following job listing sites: Indeed, Dice, LinkedIn, StackOverflow Careers.

Number of Job openings by programming language in the U.S.

One programming language that has become popular in recent years is JavaScript. In the past, JavaScript was mostly used as a utility language and most programmers used it to compliment (and hack) their user interfaces. With the increase of HTML5 apps and the many JavaScript based frameworks, this programming language has become more relevant and the number of companies (and startups) looking for experienced JavaScript developers has increased, a lot.

Currently, JavaScript is the second most popular requested skill in programming jobs posted in the largest job search engines out there in the United States.

Conclusion

If you are looking to learn a programming language to increase your chances of being hired, look at the chart above, keep monitoring the demand as it might change in the future AND learn at least one static programming language such as C# or Java and one dynamic language such as JavaScript, Python or Ruby.

A good programmer is the type of person who is always learning, and enjoys doing it. Most programmers I know are highly skilled with one programming language but familiar with most. Knowing a bit about multiple programming languages gives you the flexibility to learn and become more experienced with certain languages when you have the need. For example, for many years I was a Visual Basic developer until the day came when most job openings from companies working with .NET technologies where looking for C# developers, I started looking at the language, tried to create a few simple programs and eventually got a job as a C# developer.
After getting into C# I started to learn PHP and JavaScript as I ran across a few projects that needed that expertise. Learning these programming languages wasn’t hard, it was mostly teaching myself to do things differently, discovering and taking advantage of each of these languages’ capabilities and features instead of complaining or getting stuck on its differences.

Today, I try to keep myself current with some of the newer programming languages and frameworks, it is our duty as professionals to stay current and as challenging as this is, learning is always enjoyable. If you have any thoughts or questions about the chart above please leave a comment below.

Phone Screen Interview

When you are hiring a developer and start looking at resumes or LinkedIn profiles it is very common to find people with a great resume or professional profile – but be careful because having a great looking resume or awesome LinkedIn profile doesn’t always translates into greatness – this guy must be great, it has tons of LinkedIn recommendations and many connections!

A phone screen interview is a very common filter used when hiring for a tech position. As a software developer myself I’ve participated in a fair amount of phone screen interviews both as the candidate and as the interviewer. The phone screen interview is what the name implies, it is a relatively quick way to screen candidates and filter out the best candidates from the group of people who look good on paper (or LinkedIn). A phone screen interview can be very useful to determine if a candidate is truly a great candidate that you want to invite to a face-to-face interview with your team or just someone with a good resume.

When done right, the phone screen can save you and your team from spending hours interviewing the wrong person for the job.

The first rule of thumb is to try to talk as little as possible, just ask a few key questions and let the candidate do the talking. Listen carefully and notice how they respond to questions they know and pay special attention to how they answer and elaborate on things they are not too familiar with. This will tell you a lot about their personality and how they behave when they are under a bit of pressure. The phone screen interview should not take more than 30 minutes and ideally, it should be split into two basic sections: personality and technical skills. Remember that the goal is to decide if you want to invite this person to a face-to-face interview and not making a hiring decision over the phone.

Here are some tips that can help you get started.

The agenda

  • The phone screen interview should be kept at about 30 minutes.
  • Ask questions, listen and thank the candidate for their time.

The personality part

  • Communication skills and story telling. Ask about their decision to be in the technical field. This usually helps to tell how good are they at story telling and it also helps to know how much they love (or not) what they do.
  • Ask about their opinion about a certain framework. Most technical people, specifically developers are very opinionated and passionate about their craft and the tools and frameworks they use.
  • Ask about the reasons they want to join your company, and if they are open to it ask them if they want to share the reason they are leaving their current employer.

The technical part

  • Ask about what technology stack they have more experience with and let them go into details.
  • Once they tell you what technology stack they prefer ask a few more in-depth questions about it, this will help you figure out how much experience they really have about it.
  • Ask if they can explain how the architecture of a website or application like yours work (if applicable).
  • Ask a plain technical question such as how to reverse items in a list or characters in a string. You can also ask something more generic, for example how to handle errors in a web application.

The above has worked very well for me, I have used it more than a few times in the past with really good results. If you are the one being interviewed, my suggestion is to offer to answer some of these questions even if the interviewer does not ask you this; unfortunately many times the one person doing the phone screen interview is someone from an HR department and it might be beneficial to you if you drive the interview by offering to talk about the things mentioned above. If you are hiring for a technical position other than a web developer then you might want to change the technical questions around, just keep in mind that the goal here is to get the best candidates for a face-to-face interview that will and should contain more in-depth technical and personality questions.

Cheers.