Ricardo Sanchez
Coder, Photographer, Youtuber, Blogger

Create a NuGet package from a VS project and include all referenced dependencies

It’s been a while since I had to build a NuGet package, a long while. While as a developer I use multiple NuGet packages all the time in my applications, I think I’ve created only a few of my own. Needless to say, I am a total noob when it comes to building AND publishing NuGet packages.

So the other day the need to do this presented itself, and while building a Nuget package isn’t difficult at all, that said, there are times when you need to do something that isn’t as basic as the multiple examples given on StackOverflow or Microsoft Docs. This was one of those times, I needed to create a NuGet package that will contain just one public method but in order to run properly, it required references to multiple project dependencies.

As I was doing this I also run into other errors that perhaps someone with experience building NuGet packages wouldn’t ever run into as my problem was that I didn’t know about specific options that you need to include when building your NuGet package. This is a small post about those two very important command options and hopefully, when you run into a similar problem, this works as a solution for you too.

If you don’t have the nuget.exe in your computer yet, you can download the latest version from here.

TL;DR;

  1. Open a command window and browse to where your project file is.
  2. nuget spec
  3. nuget pack -Prop Configuration=Release -IncludeReferencedProjects

Continue Reading

Run code from your code editor

The other day I discovered this useful extension that allows you to run your code from within the Atom editor. The name of the extension is Script Runner, and while there are many other extensions that do this, I really like how this one shows the code results on the right side of your screen, allowing you to easily see your code and the result of it after running it side-by-side.

After discovering this tool my first thought was, can I find the same extension or similar for the VS Code editor? The answer is Yes. The best extension I found to run your code while in the editor is Code Runner, and while this extension shows you the results in the console window, it still displays the results in a clear way by only adding the result and the time it took to execute the code. Very useful tool!

Why are these tools useful? For starters, they allow you to see the result of your code right away, without the need of setting up a unit test, or anything else really. You still have to output your result by doing a console.log for example, but you don’t have to run it in a browser or anything like that.

Below is an example of a FizzBuzz program using Atom and Script Runner:

And below is the same code using VS Code and Code Runner

They are very similar and I will be using both, I really like how easy it is to run and see your code’s output right from the editor.

To download and install these extensions, just click on the links below, and happy coding!

Script Runner – extension for Atom editor

Code Runner – extension for Code editor

Portability vs. Extra Power – What type of laptop to use when writing code

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.

Continue Reading

How to find great developers.

In response to those companies, hiring managers, interviewers who keep asking the same question:

Where can I find great developers?

A developer becomes a “great developer” when the company, team, resources, projects, recognition, etc., are compatible with that person. Under that logic, I believe any programmer can be great if they desire to do so and find the environment and motivation to thrive.

Most technical interviews fail to find the right people because interviewers and hiring managers usually go at it with an “idea” of what a “great developer” looks like to them. In most cases, everyone ends up hiring people who don’t work out and miss out on people who could have become the “great developers” there were looking for in the first place.

Cloudy days

It’s been cloudy in the city of Austin for a few weeks now, and while this isn’t uncommon for this time of the year, it has been impactful for me as it reminds me of the type of weather we’ll find in Seattle. Why is this impactful to me? Well, my family and I are planning on moving to the Seattle later this year, and I certainly cannot wait for it. Seattle is a city I enjoy visiting, which I have multiple times and during different times of the year. Yes, I am aware that there are many days where the word “overcast” is the standard word coming out of local Seattleite’s weather experts, and I am OK with that. You see, overcast weather makes me feel inspired and creative, don’t know why. Cloudy days have a positive effect on my energy and state of mind. While it relaxes me, it also brings good energy to me and the need to write, read, code, or do something creative like that.

Rainy days are beautiful in my opinion, and I am not referring to stormy weather but those rainy days that if you are lucky you’ll see from time to time, and hopefully you’ll give yourself some time just to see it and enjoy it. I am a coffee drinker, and also like to enjoy a hot cup of chamomile tea sometimes. Rainy weather makes me want to drink more coffee and more tea. Drinking coffee is like a drug, and I don’t fight against it, I just enjoy it and to be honest, I just cannot resist it even if I wanted to when it is overcast or rainy outside.

There is also the colder temperature; it is common for the temperature to drop just a bit when it is overcast or when it is raining. There is something about having to wear a jacket or a hoody that I enjoy; it just feels right. And while it might be cold outside, it is far more comfortable to be in colder weather than to have to deal with hot temperatures as we do here in Austin, Texas every summer… and fall.

I don’t know about you, but I usually see more people reading, writing, or just having a conversation with each other in public places when it is cloudy and rainy. Perhaps since the weather is “bad,” people tend to stay indoors and talk to each other more than if it was sunny and warm outside, I don’t know. Also, are you less hungry when it is raining? I am, which is yet another reason I have perhaps more time to read, write, code, chat, or any other activity but eating. I overeat, consistently, and I don’t feel guilty because enjoying food is still one of my favorite pastimes.

It’s been cloudy and rainy in Austin for a few weeks now, and I love it. I think this is the world preparing us to be ready for Seattle weather, or at least that is what I tell myself. Oh, and yes I know Seattle doesn’t get as much rain as other places in this country, but they certainly have a fair share of overcast and rainy days, and I am looking forward to it.

What can you do with Azure Functions? Here’s one example.

Last week I attended a tech conference where I learned about Azure Functions. This new service from Azure, Microsoft’s cloud platform, is something that got me interested. Microsoft is promoting this new service as a server-less option for simple APIs, triggers, notifications, and anything that you can think of that can be processed by a function, regardless of the programming language used.

It’s worth mentioning that just like with any other cloud service or feature, Azure Functions isn’t the solution for everything. However,  Azure Functions are really helpful in supporting your application without the need to provision a new full-featured API, servers, etc.

In this blog post, I will show you an example of an Azure function that serves as an API endpoint, returning text from a simple call to it. Continue Reading

Create and Deploy a React App to Azure using .NET Core and Azure CLI on Mac

Prerequisites

Getting Started

In this tutorial, you’ll set up your Mac to do development using .NET Core and Azure. The tutorial also shows you the new and powerful .NET Core Command Line Interface (CLI) Tools.

After you have installed the .NET Core SDK and Visual Studio for Mac, open a terminal window and type the following:

$ cd /users/

$ cd users/yourusername/projects

$ mkdir samplereactapp 

$ cd samplereactapp

The above commands will do the following: browse to the Mac user’s Projects directory and create a new directory to place the react app that we are about to create.

.NET Core CLI

.NET Core’s Command Line Interface (CLI) is very powerful, it allows you to do a lot without leaving the command line which allows for the simple and fast creation of these projects. Double-check your current directory is the new directory you’ve created, in our example this is samplecreateapp. 

To make sure the .NET Core was installed properly, type dotnet –info in the terminal, you should see output that looks like this:

Once you have confirmed that you have all the needed prerequisites, let’s continue to build the React web app. Continue Reading

Remove Bias Out of Job Interviews

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.

 

Traveling instead of vacationing

If you are reading this chances are that you have the ability to travel. Many people out there, entire cultures even, don’t have the ability to travel, at least not outside of their own country. Think about that for a minute. We have this amazing opportunity to go out and discover new places, new cultures, new people, new food, new perspectives. It is all out there, waiting for us to be discovered.

Travel, not vacation

People who travel beyond popular places like beach resorts and the like are people who understand and appreciate people who are different. It opens up your mind and your understanding of new and different ways of living and doing things. You see, people fear things that they don’t know and don’t understand. When you travel, you become a global citizen and start appreciating the differences between you and other people. It’s hard to appreciate or not be afraid of what you don’t know or don’t understand.

Iceland – 2017

Traveling is all about learning about the place where you are, and you do this by eating where locals eat, visiting the places that aren’t necessarily popular with tourists, learn about the people who live there, about what they do, etc. In my experience, walking a city gives you the best opportunity to learn about it. Walk everywhere and you’ll find the small shops you wouldn’t find otherwise, appreciate the architecture, see how the city runs, etc. I also understand that walking long distances or all day might not be feasible to everyone, use public transportation before you try a taxi or a Lyft, Uber or whatever private car service is available in that city.

But travel is expensive

Traveling requires some money, but it doesn’t have to cost a lot unless you travel as if it was a vacation. Traveling as opposed to vacationing is less expensive. When you travel you don’t need to stay at expensive hotels or any hotel, in fact, staying in a house, a bed & breakfast, or a hostel is usually less expensive and it gives you a better sense of the culture and the people who live in that city. When you stay at a hotel, it’s nice because everything is taken care for you, but what you end up experiencing is the hotel’s culture and what they want you to see and feel. You are in a bubble, and there is nothing wrong with that, but if you are there to travel and live like a local, this isn’t what you want. It is commonly more expensive too.

Airbnb in Brooklyn – July 2016

Below are some resources to find places to stay when traveling:

When you travel you want to eat at locally owned restaurants, markets, and also cook your own food. This will save you a ton of money and it will give you the opportunity to taste local food, and usually very authentic too. If you are a foodie, this is an opportunity to discover new flavors, so have an open mind and eat what locals eat.

View from B&B in Florence, Italy – 2014

Another difference between traveling and vacationing is that when you travel you can still do some work and earn money. If you travel abroad and are planning on staying at a place for several weeks or months, try getting a job there. There are many opportunities to work abroad, and a job abroad could potentially cover all your expenses while you are out there.

Below are some resources to find work while you travel abroad if you are interested:

There are many more resources, a simple Google search for finding work while traveling abroad will return many results.

Pack light

We all know that when you go on vacation we should pack light but most of us never do it. In most cases it isn’t a problem as most people have a destination and bringing a lot of stuff isn’t much of a problem. However, if you are planning on traveling and not vacationing, make sure you pack light and that you bring only the things that are absolutely necessary. Think about it, if you are traveling around a country or many countries you’ll be hopping on planes, trains, buses, etc. It is impossible to do this if you bring lots of luggage. Instead, bring the things you’ll need like a good pair of sneakers, a few t-shirts, a pair of pants, and a jacket.

Haleakala National Park, Hawaii – 2015

Think about it, if you are traveling around a country or many countries you’ll be hopping on planes, trains, buses, etc. It is impossible to do this if you bring lots of luggage. Instead, bring the things you’ll need like a good pair of sneakers, a good travel backpack, shorts, jeans, t-shirts, and a jacket. Most other things such as toiletries you’ll be able to find almost everywhere you go – unless you are truly traveling to a remote location, then just buy it before hopping on the airplane.

Here is an excellent article from Lonely Planet with detailed information on how to pack light: tips from an expert packer.

That’s it, and by the way, if you need a little bit of motivation, watch Given on Netflix, it inspired me to write this post and it is a great movie/documentary.

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.

Expand your personal network and be part of the solution

Last week I wrote an article where I mentioned we need more color in tech leadership roles. This was the second of a series of articles I am writing on the topic of diversity. I received a lot of praise for the article but also some unexpected reactions to it, like the example below:

 

The purpose of that article wasn’t to force or pressure anyone into doing anything they don’t want, obviously.
Oh and by the way, here is the definition of people of color in case another person out there starts making fun of that term again.

Thankfully, most of the feedback I received about the article was positive. And the reason of this post is an answer to a question that has come up repeatedly.

Where do I find qualified people of color for tech leadership positions?

My answer to this question is simple, reach out and build relationships with us, people that aren’t white and with no European parentage, also known as POC.

Hiring managers, executives, and even recruiters are overwhelmingly white women and men, and it isn’t uncommon that their personal networks aren’t filled with POC.

Therefore, while we try to increment the number of POC in these positions, white men and women need to make the effort to expand their network beyond people who looks AND behave like them. Diversity in personality is just as important.

Diversity is important, and it is good for business too! I don’t need to list all the benefits of having a diverse workforce, we all know the benefits. My personal favorites are the variety of perspectives and personal networks you find in diverse environments! Both crucial to be a competitive business in today’s world.

How do you expand your network? Reach out to POC within your organization, invite them to coffee, ask them about their ideas, promote them, make them part of your life. Also, attend events and make it a priority to talk to POC.

I host the Diversity in Tech Meetup here in Austin, TX, and you’ll be surprised by the small number of white men who attend the meetup. We need to increase the number of white folks who attend and invite them to be part of the solution, without them, it’ll be hard to move the needle towards getting more diversity in tech and other areas.

We don’t want to exclude white men from the diversity and inclusion programs, everyone is welcome and everyone is needed for true diversity to take place in tech.

What are your thoughts about this? Think of your personal network and decide if it is time for you to reach out to POC and minorities in general.

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.