Your network increases optionality

This is a guest post from Karl Hughes. Enjoy.

Dear new developer,

I was in your shoes in 2011. I was finishing up a degree in mechanical engineering that I would never use and looking for a way to join a startup as a software developer.

Maybe it was the entrepreneur in me, and maybe it was just naivety, but instead of applying for jobs, I decided to start emailing interesting companies instead. I made a list of technology startups in the education industry and emailed each of them my pitch.

Two of them got back to me and one (Uloop) had an office three hours away in Nashville. I drove to meet their CEO and after a few conversations, they brought me on as a freelancer. When I graduated a few months later, they offered me a full-time role managing their blog and writing custom WordPress plugins.

Since then, I’ve worked at three different edtech startups and never once had a formal “job interview.” Every company I’ve worked for has hired me because I met someone there and stayed in touch for months. When a job opened up, they reached out to me to see if I was interested.

My first job hunt showed me that your strength as a software developer is not in your resume, your knowledge of algorithms, your ability to keep up with the hottest frameworks, or even your problem-solving skills. The most powerful tool you have is your network.

The Employer’s Perspective

As a job-seeker, you know that looking for a job is scary, but from an employer’s perspective, hiring is scary too.

After sitting in the hiring manager’s seat several times in the past few years, I can tell you that I’m as scared of hiring the wrong person as you are of screwing up the job interview. If I make a bad hire, I look bad to my boss, and my team’s productivity will suffer. Having to fire someone kills morale and hurts the manager’s reputation, so nobody wants to do it.

This fear is why managers look for people in their networks or work with recruiters. The very last place employers look for applicants is the cold resume bin.

How I Built My Network

If you want to avoid the black hole of submitting your resume online, you need to build a network. I don’t know you well enough to give you a perfect formula for your situation, so I’ll just tell you how I built my network. I hope some of these ideas resonate.

First, I started as a freelancer before I ever had a “real” job as a programmer. Most people don’t recommend this approach for new developers, but it forced me to learn to “sell” myself really well. When I started with Uloop, I often had no idea how to accomplish a task, but I bet that I could learn it before they discovered I was making it up.

After getting that first job, I started attending meetups and conferences regularly. Uloop was a small company, so there wasn’t much opportunity to network within the organization, but I had moved to Chicago, where there were plenty of programming meetups and tech events to attend.

I tried meeting people at these events, but it was hard. I’m not that outgoing, so instead, I would email the event’s speaker or organizer afterward and invite them to a one-on-one coffee or lunch. Some of the people I met like this are among my closest mentors and friends today.

As I attended more meetups and got to know speakers and leaders, people started inviting me to give back. I was little more than a junior developer at the time, but I was asked to speak at bootcamps, meetups, and even a couple of small conferences because of my network.

Naturally, I was nervous the first few times I got up in front of a group to share my experience. I knew there were people in the crowd with decades of experience on me, and I expected them to stand up and call me out if I made any mistakes. I found that practice and gradually increasing the stakes helped me. By trying a talk out at a local meetup and slowly working up to larger audiences at a conference, I gained confidence over time.

Giving a talk at a meetup or conference is a lot of work, and you don’t typically get paid for it. That said, I knew how helpful it was hearing developers who were more experienced than me back when I was first learning to code, so I have always enjoyed the opportunity to give back.

One side effect of speaking is that you get even more opportunities to increase your network. At some point, I switched from being the one asking speakers to meet with me to the one that attendees were asking to speak with. I always enjoy these interactions with new developers, and the opportunity to encourage or help others is my primary motivation for speaking and writing this letter.

Keeping in Touch

Everyone who talks about networking tells you to go out and meet more people, but that’s worthless if you don’t keep in touch with anyone. As I started to meet more people in Chicago, I realized that I needed to come up with a way to have more encounters with each of them.

“It takes on average about 3 encounters — and by that I mean intentional rather than passing interactions where you’ve gotten together primarily to just hang out — to really see if there’s potential for a relationship with someone.” – Brett McKay

The first step was to start a spreadsheet of people I wanted to keep up with. Most of them were more experienced than me, but many were peers or newer developers I “clicked” with or found interesting.

Next, I made a reminder to reach out to 1-2 people on the list every week. I’d ask how they were doing and see if they wanted to get lunch or coffee sometime. I tried to find organic reasons to connect (birthdays, an article related to their industry, etc.) and ask them questions about their lives. One of the easiest ways to make someone like you is to get them talking about something they like. People love talking about themselves.

While this sounds calculated, I do genuinely enjoy these conversations. We’re all busy, but having a system like this ensures that I don’t forget to maintain my network. If I ever feel like I’m no longer getting along with someone, I remove them from my list and no harm is done.

The reason most people don’t do this is that it takes a lot of time. I still spend 4-6 hours per week keeping in touch with or expanding my network. It may seem like a lot, but the investment has paid dividends and afforded me many interesting conversations and relationships along the way. This strategy of intentionally staying in touch with people has led to friendships, co-workers, job offers, and clients.

Make It Yours

No career advice will work for everyone.

I didn’t write this letter to give you a formula for networking, but rather to let you know that unconventional approaches can work. My network has been an invaluable asset, but luck and privilege played a huge part too.

If I hadn’t been able to drive three hours to take a meeting with my future boss, would he have hired me? If I needed to be home after work to help care for a family member, would I have been able to network at Meetups? If I weren’t a white male in an industry dominated by white males, would people have taken the time to meet with me?

I don’t know.

I have no idea what your career path will look like, but I hope my story gives you the courage to build a path that works for you.

Signed,
Karl

Karl is a former CTO and freelance writer. He’s currently the founder of Draft.dev where he helps companies create content that reaches software developers.

Learn a Little Network Engineering

This is a guest blog post from Allan Wintersieck. Enjoy.

Dear new developer,

I realize that just trying to learn basic programming principles can feel daunting enough, but if I may, I’d recommend adding one more task to your list: learn a little bit about network engineering.

Networking underpins everything web and app developers do, since almost every web app communicates from the frontend to the backend regularly. Most developers understand the basics of making API calls and how data flows over the internet, but taking a small dive deeper will help you debug issues for years to come.

The goal is to build your underlying knowledge so that when you encounter related issues in the future, you understand enough about how it all works to intelligently tackle the problem. For example: the reason everyone complains about CORS (Cross-Origin Resource Sharing) being confusing is because it doesn’t make sense without first understanding the basic principles of networking and security.

A quick list to get you started:

  1. Read up on the basics of routing. No need to dive into how the protocols work, but understand why it’s set up this way and how internet traffic gets to where it needs to go.
  2. Read the basics of DNS, and understand how a DNS request is resolved.
  3. Read a brief rundown of the OSI model. Focus on understanding one or two examples of things you’ve dealt with in the past that exist at each layer.
  4. Review the difference between TCP/IP and HTTP, and why they exist at different layers in the model.
  5. Read up on the basics of what a “proxy” is.

An overall analogy that I find helpful: networking is like sending mail via the postal service.

  • Routing is the process of putting mail in your mailbox, having a postal worker pick it up, and it eventually reaching its destination.
  • DNS is the process of looking up someone’s mailing address so you can send them mail.
  • The OSI model is a fancy name for making it clear that there’s a lot of details the postal service takes care of for us. Most people understand how addresses and mailboxes work (let’s call that the equivalent to the Application layer), but don’t really understand all the internal details of how the postal service gets your mail to its destination. All those details are the first 6 layers of the model.

With that background knowledge in place, tackle some of these additional questions to lead you to more learning:

  • How do CDNs (Content Delivery Networks) work?
  • What’s the difference between “regular” HTTP and WebSockets?
  • How does SSL (HTTPS vs. HTTP) work, at a high level?
  • What can nginx be used for?

And as a last exercise, sketch out a complete picture of a work app or side project: what DNS calls get made, what servers are involved, are there any proxies, what protocols are in use, what OSI layer those protocols exist on, etc.

I promise that spending the first few years of my career as a network engineer only slightly biases me towards learning this stuff.

Sincerely,
Allan Wintersieck

Allan Wintersieck is the CTO and co-founder of Devetry, a software consultancy in Denver that provides strategic partnership for software architecture and engineering.

 

Tips for Building Your Work Network

Dear new developer,

I talked previously about a technique to help you network with strangers.

But networking isn’t just about meeting strangers and starting up conversations easily. The easiest way to build your network is to foster it at work. Again, this will help you if you are looking to hire, learn more about an interesting company for a job or partnership, or want to ask someone about technology they’ve used or problems they’ve faced.

Here are some tips that will help you do so.

  • Use LinkedIn. I’ve already written about that, so I’ll just say that you should keep your profile up to date with your positions and accomplishments, as well as link to folks you have met in a professional context.
  • Never leave a job on bad terms. This means giving the requisite notice, running through the finish line by documenting your work and preparing for a handoff, and not speaking ill of your former employer (of course, I am not a lawyer and there are definitely grounds for speaking ill of your employer if they’ve violated laws). You may be very excited about the new job, but think about how you’re leaving your current position, and treat your teammates as you’d want to be treated. Doing so means that when you want to tap your network, they’ll respond.
  • Reach out periodically. This can be as simple as sending them a LinkedIn note when they have a work anniversary or have changed jobs. If you know they are interested in a technology or domain and have run across an interesting article (perhaps via your RSS feed or your online community) send it to them with a quick note. If you are going to be in the town where they live, suggest meeting up for a coffee to catch up.
  • If someone has a request for their network, try to help. Depending on how strong your relationship, you may want to reshare the request, think of someone who could help, or attempt to help yourself. Be wary of doing too much for the strength of the relationship. I was overly enthusiastic once and sent a bunch of intro emails for a new service an acquaintance was starting. The service didn’t go anywhere and I felt foolish for asking people I was relatively weakly connected to for their help.
  • If you ask for help, follow up if someone provides it. Thank them and let them know how you used their help. Nothing is less fun than helping someone in any way and then having them go dark on you. And don’t ask for help too often from the same person–this is more qualitative and you have to judge the strength of the relationship; the stronger the relationship, the more often you can ask.

I’ve used these tips in the past to keep my network alive and will do so in the future. Unlike in other professions, the bar for network activity in development is very low, so if you do even one of these, you’ll likely stand out.

Sincerely,

Dan

Tips from a recent bootcamp graduate

This is a guest blog post from Jesse Ling. Enjoy.

Dear new developer,

Be comfortable with being uncomfortable. You’ll never know all the things. And that’s ok.

Ask questions – at the right time. There’s a fine line between reaching out for help too early and too late. Struggling is imperative to growth, but reaching out for answers too soon significantly hinders it. You’ll better understand where that line lives over time.

“Stand on the shoulders of giants.” More than likely, your problem has already been solved. Don’t be afraid of trying other’s solutions if it makes sense for your implementation. But do take the time to fully understand why and how it works.

Be persistent. Programming is difficult and often times frustrating. Don’t give up. The feeling of figuring things out after a struggle is amazing.

Network. Talk to devs at, below, and above your skill level. Opportunities can present themselves in mysterious ways. Utilize your network to not only help yourself, but more importantly to help others.

Sincerely,

Jesse Ling

Jesse Ling is a motivated and relentless problem solver, and a recent Turing School graduate seeking web development opportunities.

Use a Conversational Hook When Networking With Strangers

Dear new developer,

Work on your network. It will help you in numerous ways as you progress in your career. Whatever you are looking for: a new job, to hire someone, to get a mentor, to learn about a new technology, having a list of people that you know and/or have worked with that you can reach out to will help you accomplish your goals.

But it can be tough, especially if you are awkward around people. I am awkward around people and learned how to be less awkward. My main technique is to both give and ask for a “hook” in any conversation I start.

Here’s a typical “networking” conversation of which I’ve had many:

Dan: Hi, I’m Dan.

Jan: Hi, I’m Jan.

Dan: Where do you work?

Jan: I work at Company X. Where do you work?

Dan: Company Y.

<crickets>

Compare that with this conversation:

Dan: Hi, I’m Dan.

Jan: Hi, I’m Jan.

Dan: Where do you work?

Jan: I work at Company X. Where do you work?

Dan: Company Y. We recently launched website Z and are evaluating technology ABC. What has your company recently rolled out?

See the difference? Dan has provided Jan with two avenues for conversation–one is asking further about technology ABC or website Z, and the other is talking about Company X. Jan can decide where to take the conversation, but Dan has provided the start of it.

Learning this trick, which comes naturally to many many people, changed the way I network. Another thing that mattered was my realization that everyone, every single person, has an interesting story or anecdote to tell, and that I can learn something. That understanding has made conversation much more fun.

Sincerely,

Dan

 

Use LinkedIn, and use it well

Dear new developer,

Set up a LinkedIn profile and keep it up to date. This will serve as a public resume. (Yes, a github is great too, but you might not always have time to keep code up to date or an interest in a maintaining a large project.) Once a year, at a minimum, document what you’ve done in your profile. This is a low effort way to showcase your skills. LinkedIn has a vested interest in being at the top of the search results when people search for your name. And hiring managers will.

Also, used LinkedIn to record connections to people that you meet (at jobs, conferences, meetups or randomly). Folks have different thresholds for connecting (some people connect to anyone, some people want to meet you, some people want to have worked with you). It doesn’t hurt to ask; just don’t be offended if someone says no thanks. My threshold is “have I met you in person or engaged with you online”. This means that my connections are of varying strength–some connections I’d hire (or work for) with no question, others I met once and have never talked to again.

Recruiters on LinkedIn tend to be low value keyword matchers, unfortunately. But you never know, someone might be able to place you. If you do talk to a recruiter, be honest about your desires. Take what they say with a grain of salt, as when they are talking to you, they are trying to make a sale. Also make sure you ask them about their view of the job market, salary ranges for people with your experience, and good skills to gain. If they aren’t willing to share such information, they probably won’t be much good to work with.

As a friend put it, LinkedIn is a rolodex that someone else keeps up to date. This can be helpful when you are looking for a job. Troll your connections’ companies, and then ask if your connection and intro you. A warm intro is far more likely to lead to a conversation and interview than submitting a resume via a website. I offer that up to many people as it’s a low effort way to add value to someone on the job hunt.

Sincerely,

Dan

Join a meetup

Dear new developer,

You are probably pretty overwhelmed right now. There is a lot on your plate and you probably are just trying to keep up with the job.

I hate to do this, but I am going to ask you for some extra curricular time.

You need to join a technology meetup. Go to meetup.com and search for one on your area, covering technology that you’d like to understand more about. Sign up and go to the next one. If there’s no meetup in the area, search for a virtual one, and join via video chat or audio chat.

When you are at the meetup, you might have a hard time chatting with people (I do!). I find the best way to do this is to be interested in them. Show up 15 minutes early. Find someone standing alone and walk up to them and introduce yourself. Then ask what brings them to the meetup and what they are working on. This will be awkward at first, but just like coding, gets easier the more you do it. (Not sure how to do this virtually, but try to chat with someone on the webinar.)

Then, sit down and enjoy the presentations. You’ll probably learn something.

Why should you do this?

  • It will expose you to new ideas that you can bring to your work
  • It will allow you to have professional conversations where the stakes don’t feel as high (you can admit ignorance to a total stranger more easily than to your boss).
  • It will allow you to practice networking and talking to strangers, but the topic will be something you know you are interested in.
  • You can make friends, or at least acquaintances in your industry.
  • When you are ready to hunt for a new job, you will have a network outside of your colleagues.
  • You will meet cool people.
  • You will learn new things.

You may, in time, choose to help organize or speak. These activities are valuable for your work life, but again are easier to practice outside of the work environment. But if all you do is attend a a single meetup regularly, you will still come out ahead.

Please, go sign up for a meetup today.

Sincerely,

Dan