My Transformation from Retail to QA to Software Development

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!

Finding a Junior Dev Job: Decoding the Technical Interview

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.

Meet the Interns: Jordan Meier

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!

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

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?

Partnership with Marylhurst University

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!

Finding a Junior Dev Job: Researching Companies

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?”

"Rockstar Interns" Write About Their Experience

"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!

Finding a Junior Dev Job: Interviewing Basics

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.

Finding a Junior Dev Job: Sprucing Up GitHub

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.

Finding a Junior Dev Job: Writing a Good Cover Letter

Finding a Junior Dev Job: Writing a Good Cover Letter

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 good cover letter will show your interest in the company, show that you understand their needs, and give examples of what you've done that demonstrate how you can fit those needs. Every company treats cover letters differently, and you may hear lots of conflicting advice about how to write them. Below, we're going to share what we've found works best for most Epicodus students, for most of the jobs and internships they apply to. This advice is based on the experience of many of Epicodus graduates and conversations with dozens of companies.

Because every company is different, and every job has different needs, every cover letter should be different! Before you even start writing your cover letter, you should research the company enough to answer questions like: "Why do you want to work here?" and "What about our company excites you?"

That said, every cover letter you write for jobs after code school should lay its paragraphs more or less as described below. If you're a strong writer, feel free to take some creative license here; if writing isn't your strong suit, you'll probably want to stick closer to these guidelines. The examples below are adapted from actual Epicodus students.

First paragraph: State the position you are applying for, tell why you are interested in the position and/or the company, and give a quick overview of why you are qualified. For example:

I am writing to apply for the Web Developer Intern position. Culture Foundry excites me on many levels. For example: music advocacy is a subject that is near and dear to me, having been a professional musician for a number of years and experiencing the evolution of the music business first hand. The musician pages displayed on your site are simply stunning! I think that the full-stack development skills I've gained in my recent schooling and internship, and my background first working in technical support, would make me a great fit for your internship position.

Second paragraph: Tell your pre-code school story: how you became interested in development, and the non-technical skills you picked up before school. Make sure these non-technical skills match the non-technical skills the job description requests.

Before starting school at Epicodus to become a web developer, I worked in customer service and ended up at two online music tech companies, back-to-back. I quickly became immersed in troubleshooting user interface issues, and even taught myself a bit of code to help improve the company’s site and client experiences. Besides the obvious need to be an effective communicator, I was regularly challenged to think outside of the box. If someone wrote into support it almost always meant they were struggling with something. While working at Bandcamp, a local non-profit music foundation wrote into support feeling very unsure how to go about using our service as a tool to benefit their cause. I set a time to meet with them in person (as a remote email support personnel, this was unusual), show them the ropes, and even provided the foundation with a charity rate earning them even more proceeds. They thanked me profusely for going above and beyond to help, and I was happy knowing that I left them feeling empowered.

Third paragraph: Talk about your experience at code school, and make sure to match the skills you talk about with the skills listed in the job description.

I enjoyed my customer service work, but I often found myself gazing longingly at the developers, imagining a gratifying and stimulating job solving tough problems and building tools that made a lasting difference. This past April, the path became clear for me to pursue a job in coding, and in July, I enrolled in Epicodus's web development program. After dedicating four months of forty plus hours a week learning numerous programming languages and tools, I consider myself a full-stack developer, and am equally comfortable developing Ruby on Rails backends as working with JavaScript and jQuery in the front-end. But the biggest skill I learned since joining the coding world is how to take a brand new tool or language and have it feel like an old friend. For example, at my recent internship at Company X, their client-side was built with an MVC library I had never seen before, but by the third day of my internship, I was comfortable using it and committing code to production.

Fourth paragraph: Close out with a short summary of why you're a good fit, and thank them for reviewing your application.

Between my breadth of experience in the music realm and newly found fervor for programming, and your company’s passions and aesthetics, I believe I am a perfect fit for your Web Developer Intern position. I know we could benefit each other greatly, if given the opportunity. Thank you for reviewing and considering my application. I'm looking forward to hearing from you!

In talking about your experience, the most important thing is to provide examples. In the above example, the author says she's somebody who thinks outside the box, but it's even better that she gives an example of how she took an unusual support request and took the unusual step of meeting in person. And when talking about her development experience, she says she's a able to pick up new languages and tools quickly, and then goes on to provide an example of committing code within a couple days of learning a new MVC library.