Finding a Junior Dev Job: Negotiating Your Salary

Comment

Finding a Junior Dev Job: Negotiating Your Salary

Helping our students find great jobs is a huge part of what we do at Epicodus. In fact, it’s our mission. Over the years, we’ve accrued quite a bit of job-hunting knowledge to help set our students apart. Over the past few weeks, we’ve shared our best tips and tricks for junior developers who are looking for their first jobs. You can find all of the posts in this series here.

So you made it through your interview, and your prospective employer has brought up what your salary will be. Congratulations! Negotiating a salary can be a bit terrifying, though, so here are some tips to help you out.

Do your research in the city where you'll be working. Different cities can have drastically different average starting salaries for junior devs. Learn the salary range for the city you're in, and weigh where you think you would fall in that spectrum. If your technical skills are on the weaker side, you're interviewing for a job with tools or languages you haven't used before, and/or you don't have much professional experience, you'll probably make on the lower end of the spectrum; if you are very strong technically and have at least a few years of professional experience, you'll probably make on the higher end.  Use the numbers as a starting point, and even share them with prospective employers when appropriate.

In the long run, though, your first salary really isn't that important. Within a year or two of working as a developer, you'll almost certainly make at least $20k more than wherever you start. The most important thing is to get a job, and if you have options, to take a job where you're more excited about the work you'll be doing.

Though your first salary might not be that important,  it's worth your time to learn how to get a higher offer. In negotiation, you need to know who has more to lose. If you're charming and technically very strong, you have little to lose - you can walk away and probably get another offer somewhere else. If your interview skills aren't great and your technical skills are weaker, the employer has the upper hand.

When the employer has the upper hand, try to get more information from them. If they ask you for your desired salary, tell them "I haven't worked in this field before, so I'm not completely sure what to expect. What have you paid people in this position before?" Work that angle hard before putting any numbers out of your own. Then, feel free to share the salary ranges above.

If you have the upper hand, you might consider opening with a high salary requirement to set the expectation high. For example, you might say "I made $65k in my last job, so I'm looking for something in that range," and expect to settle somewhere around $60k. If you let them open the negotiation with an offer of $50k, you might have a hard time getting it above $55k. But make sure your expectations are realistic - you are coming in as an entry-level developer, and you will likely be an investment for anybody who hires you. If you have a lot of career experience, you very well may start out making less until you get at least a few months of experience working.

Comment

My Transformation from Retail to QA to Software Development

Comment

My Transformation from Retail to QA to Software Development

"Five years ago, I graduated with a Business degree and no real idea what I wanted to do. I had a vague idea that I wanted to be an ‘inspiring, charismatic leader’ of some sort, but little else beyond that. After nine months of job hunting, I finally landed a position as a manager at Target. Cut to a year and a half later, and I was burnt out, disillusioned, and ready for a change. That change came quickly. I applied for a Quality Assurance (QA) position at a local tech company and was offered the job. This was my big break into software development...."

Read more on EyeCue Labs' blog!

Comment

Finding a Junior Dev Job: Decoding the Technical Interview

Comment

Finding a Junior Dev Job: Decoding the Technical Interview

Helping our students find great jobs is a huge part of what we do at Epicodus. In fact, it’s our mission. Over the years, we’ve accrued quite a bit of job-hunting knowledge to help set our students apart. In the next few weeks, we’ll be sharing our best tips and tricks for junior developers who are looking for their first jobs.

A technical interview, or technical portion of an interview, will focus on your coding knowledge and problem solving skills. The purpose is to get an idea of how you think, and what strengths you can bring to their company.

A technical interview is, for many, the most stressful part of the job-hunting process. Coding is hard enough on your own or with a pair, but now you're going to be asked to solve coding and pseudo-coding problems in front of potential employers. The key is to practice before the real thing, so you're not too nervous when you're in the real thing.

Job interviews can take many formats. Some employers will conduct a pairing interview, where you'll pair program with your interviewer. Sometimes this will be on a standard problem the employer uses to evaluate candidates; sometimes it will be on real work that the employer has; and occasionally they may ask you to pair on one of your own projects. This is an excellent interview format, as it tests what you'll actually be doing on the job, and doesn't really require any special prep. Unfortunately, only a minority of employers use this format.

Another common format is to send you requirements for a simple program, ask you to solve it on your own time without outside help, and send them back a solution. This could be a full-blown web app or just a simple server-side or JavaScript program. A variation on this format is to ask you to come into their office and build the app on your own, within a couple hours. Again, this format is fairly nice because it tests the way you work, and doesn't really require a whole lot of special preparation.

Whiteboard Questions

The more difficult interviews will involve answering technical questions out loud, or "whiteboarding" a solution to a coding problem - sketching out a visual and/or pseudo-code solution to a problem, and talking out loud about your thought process as you go. This is one of the most common interview formats, and where you should spend a good amount of extra time preparing.

There are three things you should make sure to do when you get an in-person technical question:

  1. Ask clarifying questions. Often, your interviewer will intentionally be vague about something or leave out information. Don't be shy about asking for clarification or more information!
  2. Talk out loud. Even when you have no idea where to go, don't just stand there silently. The interviewer wants to hear your thought process, even if it's just you coming up with ideas and then saying why they won't work or are wrong. You should strive to talk constantly.
  3. Admit when you don’t know something. When you don't know something, it will be obvious to the interviewer. If you try to "BS" your way through a question, you will most likely not get the answer, or the job. Just say "I don't know," or if applicable, "I don't know, but here's how I might figure it out."

An excellent practice method for this type of question is to find a resource for code challenge questions, and practice talking out loud while you solve the problem. You can do this while writing the answer on a sheet of paper, or even with a dry-erase marker on the bathroom mirror. The main practice point is to write the code by hand, and explain what you're doing while you're doing it. You can find some great sample challenges to work on from CoderByte

Open Questions

Another type of question you get in a technical interview may not require you to code at all. These questions may come in addition to a code question, and are open ended discussion questions designed to give you a chance to showcase your knowledge. It's important to take advantage of these opportunities, as you have the freedom to highlight your strongest area of knowledge.

Here are some sample interview questions:

  • Name every database association relationship.
  • What is the difference between POST request and a GET request?
  • What is Git and why would you use it?
  • What happens when a user logs into a website?
  • What is a class?
  • What is an object?
  • What is unit testing?
  • What happens when a user types in a URL?
  • What is a foreign key?
  • What is REST?
  • Pretend I’m another programmer who has never used Drupal/.NET/Rails– explain to me how an app is structured, and why it’s a good framework for web apps.
  • Show me some code you wrote that you're especially proud of.
  • Talk about a time that you solved a difficult coding problem.
  • What is an array?
  • Explain MVC.
  • What is a join table in SQL?
  • What is floating in CSS?
  • What are media queries and how do you use them?
  • You've been working on a site for a couple months here at our company. You come in one day and the site is down. What do you do?

Final Thoughts

Here is some great advice taken from a presentation on technical interviews:

  • Make sure you understand the question. Do not start until you do! Ask for clarification if you're at all unsure.
  • Use the programming language you're most familiar with. It doesn't matter if the interviewer is unfamiliar with that language. They can probably figure it out. They can consult colleagues after with any questions.
  • Verbalize your thought processes. Don't just stand there and do nothing while you think about the problem. Talk about what you're thinking, discuss the pros and cons. Think out loud!
  • If you don't know something, admit it. The interviewer may give you a hint, or move on to another question.

Comment

Meet the Interns: Jordan Meier

Comment

Meet the Interns: Jordan Meier

"Recently, Cheeky Monkey Media selected two interns from the Epicodus Drupal Development Track. For those of you who aren’t familiar with Epicodus, it is “a vocational school for aspiring programmers” based in Portland, Oregon.

After what seemed like weeks of listening to Gene and Rick interview potential interviews, where they asked them, along with a number of other things, whether they preferred Starship Enterprise or the Millennium Falcon, we finally settled on Jordan Meier and Jared Beckler  (pssst, read his story here).

Eager to get to know the new monkeys, who seemed pretty cool, we decided to ask them some questions, mostly not about Drupal or their developer capabilities. After all, we don’t need to ask them what they can do with a keyboard, we see their work."

Read more on Cheeky Monkey's blog!

Comment

Finding a Junior Dev Job: Nailing the Non-Technical Interview

Comment

Finding a Junior Dev Job: Nailing the Non-Technical Interview

Helping our students find great jobs is a huge part of what we do at Epicodus. In fact, it’s our mission. Over the years, we’ve accrued quite a bit of job-hunting knowledge to help set our students apart. In the next few weeks, we’ll be sharing our best tips and tricks for junior developers who are looking for their first jobs.

Introduction

Interviewing skills are an important part of a job search. If you're a student at Epicodus, you'll have the opportunity to participate in a mock interview with a member of our staff, and practice answering some typical questions. The more seriously you take it, the more you can learn as you move forward. There are some basics to consider as you prepare for any interview.

  • Dress appropriately for an interview.
  • Conduct yourself in a professional manner
  • Have relevant and appropriate answers for questions.
  • Have relevant questions for your interviewer.
  • Stay relaxed, and enjoy the opportunity to teach someone about yourself, and learn about a company.

Questions

During our mock interviews, we use questions that cover a few areas. These are by no means comprehensive, and some interviews may focus on one area or another, but as a general rule these are present in one form or another in just about every interview. 

Personal Questions

These are "get to know you" questions about yourself, and about your previous education, experience and motivations.

  • Tell me about yourself. What's your background?
  • Why did you get into programming?
  • What made you pick code school?
  • Where do you see yourself in the future?

Your goal should be to explain the ways life has been preparing you to become a developer. General biographical information should be kept to a minimum. If you have prior programming experience you can talk about any coding you did as a kid or in school. If you're newer to coding you can emphasize parts of jobs where you worked with computers or spreadsheets, and tell about any computer skills you developed on your own.

Either way, make sure to emphasize the skills that have served you well as a student and developer, for example problem solving skills, critical thinking, organizational skills and so on. You want to show the interviewer you're passionate by illustrating how these skills have come up in different ways throughout your life.

Programming Questions

These are discussion questions which give you a chance to showcase your knowledge about programming tools and concepts. This is different from a technical question.

  • What problems do you see with current web development tools?
  • What do you like about current web development trends?
  • How do you stay active in the tech community?
  • What are your strategies to approach a problem that is initially beyond your capabilities?
  • What frameworks have you used?
  • What testing tools have you used?

Workplace Questions

The interviewer will want to know about your motivations and experiences in the workplace. These questions are a good chance to highlight your communication, teamwork, and work ethic.

  • What kind of culture do you want in your workplace?
  • What are some of the challenges you faced while pairing?
  • Give an example of how you resolved a disagreement with your pair.
  • How would you communicate with team members that are not developers?
  • Tell me about the intern project you worked on.
  • Why do you want to work here?
  • Why should we hire you?

Be well prepared for these interview questions and know how to answer them. These are generally less about your technical skill set and more about your work ethic and ability to collaborate with others. The general format they’re looking for is called S.T.A.R. It means:

  • Situation: (In my job at x company)
  • Task: (I had to accomplish y thing)
  • Action: (To that end I did z thing)
  • Result: (This is what ended up happening or what I learned)

Open Discussion

Just about every interviewer will close out by asking if you have any questions. You should have at least a couple prepared ahead of time. The most effective ones show an interest in the company and in being a positive addition to it. Questions about the team and culture of the company and where you would fit in are also really good. It's important to have some questions prepared that will help you decide if this is a good fit for you. Make sure to ask about things that haven't been covered in previous conversation.

  • Can you give me an example of a recent challenge or project you've been faced with?
  • What are the priorities for this position evaluated?
  • If I am offered the position, what kinds of opportunities will I have to work with veteran developers?
  • What are the greatest challenges for those in this role?
  • What opportunities will I have to learn new skills/continue my education?

Comment

Partnership with Marylhurst University

Comment

Partnership with Marylhurst University

U.S. Department of Education Under Secretary, Ted Mitchell, announced today that Marylhurst University and Epicodus were selected for a unique national project called – Educational Quality Through Innovative Partnerships (EQUIP). EQUIP will allow students to take Epicodus's courses through Marylhurst and access federal financial aid, as well as receive transferrable credit for their coursework. A core part of Epicodus's mission is to serve people who, by birth or circumstance, don't have easy access to learning the skills they need to get great jobs in fields like software development. Since our beginning we've focused on keeping our classes affordable and providing financing for students without the means to pay, and our partnership with Marylhurst under the EQUIP program will help us reach more low-income students who can benefit from our services.

Stay tuned for more info about this program!

Comment

Finding a Junior Dev Job: Researching Companies

Comment

Finding a Junior Dev Job: Researching Companies

Helping our students find great jobs is a huge part of what we do at Epicodus. In fact, it’s our mission. Over the years, we’ve accrued quite a bit of job-hunting knowledge to help set our students apart. In the next few weeks, we’ll be sharing our best tips and tricks for junior developers who are looking for their first jobs.

As you apply for jobs, it's important to do proper research on the companies you interview with. These companies are looking for people that will help them solve problems and become more effective in their field. Before we can explain how we will be able to achieve that, we need to have a fairly complete understanding of the company itself.

It's hard to stress enough how important research is. This should really go beyond the technical aspects of the company. The more knowledge and investment you have in them, the more buy-in they’ll have with you. Here are some things you should do before your interview:

  • What do they make/do?
  • Who works there?
  • Find their team page
  • Look them up on LinkedIn
  • Look the developers up on Github
  • Interact with their product and submit feedback if possible
  • Download their app
  • Use their API
  • Browse their client sites
  • Follow the company and employees on Twitter, like the company on Facebook, Instagram, LinkedIn, etc.
  • Glassdoor: Take Glassdoor reviews with a grain of salt. Get an interview with a company and decide for yourself what it will be like to work there.
  • In doing this research ask yourself “why do I want to work here?” as well as “what hesitations might I have about working here?”

Comment

"Rockstar Interns" Write About Their Experience

Comment

"Rockstar Interns" Write About Their Experience

"At GRAYBOX we believe internships have immense value. Maybe this is because they overlap with so many of our founding principles including helpfulness, education, collaboration, and diving into problems head-first to fix them. We’d like to say a hearty “thank you!” to our recent interns, Jeff Seymour and Oskar Radon.
We asked our interns to keep a weekly journal of their experiences at GRAYBOX to help us improve our internship program for future interns and to help Jeff and Oskar process what they were learning. Said Jeff about his first week..."

Check out the full post about GRAYBOX's "rockstar" Epicodus interns!

Comment

Finding a Junior Dev Job: Interviewing Basics

Comment

Finding a Junior Dev Job: Interviewing Basics

Helping our students find great jobs is a huge part of what we do at Epicodus. In fact, it’s our mission. Over the years, we’ve accrued quite a bit of job-hunting knowledge to help set our students apart. In the next few weeks, we’ll be sharing our best tips and tricks for junior developers who are looking for their first jobs.

Before you walk into the interview, make a physical or mental list of things you absolutely do not want to leave the interview without them knowing about you. These are not necessarily catch-all things you spout off at every interview. Maybe you did a project that relates to what they’re working on. Maybe you have a lot of enthusiasm for a client they’re working with. As the interview is winding down, make sure you go through that list and that you’ve touched on all those things. Otherwise it can be really easy to walk out of an interview and only realize hours later that there were really important selling points you should have added.

This is not the time to ask about salary, vacation time, or other benefits. If they offer that information you can ask if those things are negotiable, but this is not the time to do the actual negotiating.

Be aware of non verbal cues. It can tell you as much about how an interview is going as what the interviewer is saying. You can usually tell if you’re overstaying your welcome or if an interviewer is receptive to extended conversation by their expression or body language.

Above all else, remember that the employer came to you because they have a problem and they want you to be the solution. They’re investing time in interviewing you because they are in your corner and they want it to be a positive encounter.

Checklist

Here's a handy checklist that we've created to help you:

  • Dress appropriately for an interview.
  • Conduct yourself in a professional manner.
  • Have an answer for personal questions that highlights your journey to becoming a programmer.
  • Have an answer for programming questions that highlights your knowledge and grasp of programming concepts.
  • Have an answer for workplace questions in the S.T.A.R. format.
  • Have at least one relevant question for your interviewer. 
  • Stay relaxed, and enjoy the opportunity to teach someone about yourself, and learn about a company.

Above all: don't undervalue yourself.  Don't offer up your weaknesses or paint yourself negatively. The interviewer should know where you're coming from and can figure out your weaknesses on their own - it's your job to emphasize your strengths.

Finally, don't forget to send a thank-you email after the interview. Read this article about following up after an interview.

Comment

Finding a Junior Dev Job: Sprucing Up GitHub

Comment

Finding a Junior Dev Job: Sprucing Up GitHub

Helping our students find great jobs is a huge part of what we do at Epicodus. In fact, it’s our mission. Over the years, we’ve accrued quite a bit of job-hunting knowledge to help set our students apart. In the next few weeks, we’ll be sharing our best tips and tricks for junior developers who are looking for their first jobs.

When you apply for a job or internship, employers will want to see code you've written so that they know what you're capable of doing. Spend some time getting your GitHub profile looking good. Make sure every repository has a README file that:

  • Explains what the project does;
  • Explains how to set everything up, if someone clones it;
  • Provides information about the goals of the project. (What you were working on and what you were trying to learn);
  • Provides a link to the live site (GitHub Pages, Heroku, etc) ; and optionally,
  • Includes any known issues with the code, and a roadmap for features you'd like to build
  • Is well-organized with markdown headers.

Go through all files in each repository and make sure that there aren't large sections of commented-out code, bad indentation, extra line breaks, or anything else that looks less than professional.

If you've completed a web development internship, also make sure to fork your internship project, so that you have a copy of it on your profile for employers to see.

You might read these articles on the importance of your GitHub profile to employers.

Comment