00:00:00
I am going to get started right on time because there's only ten minutes between talks this morning, so I don't want to run over. Welcome! This is 'How to Get and Love Your First Rails Job.' My name is Molly Black.
00:00:12
I'm going to give you a little bit of background on me. I've been working since I was 16 years old and I've had a lot of jobs during that time. I have done everything from food service to being a neurobehavioral researcher at a large hospital in New York. I've also been a book editor at a small publishing house in New York right after the recession. That was a fun experience.
00:00:28
I have been a project manager at an advertising agency, which I didn't love. I was also a product manager for a small startup out of Tennessee. After overseeing the launch of a product at that startup, I paused my career and went back to school to study software engineering at the Nashville Software School, which was a six-month boot camp.
00:00:41
I am now a junior developer at Life i/o, working remotely, and I really love my job. I've worked with large companies and small startups, and I've been exposed to both corporate and startup cultures. I've done a lot of interviewing for jobs and I've also interviewed many people for jobs. This talk is really advice I've learned, sometimes the hard way, over the years.
00:01:02.640
I've spoken to various other dev boot camp graduates from all over the country to gather some of their advice on landing their first job. Hopefully, we can impart some wisdom today. I broke this talk into two parts: how to be a standout candidate and how to choose a job you will love.
00:01:19.150
First off, let's discuss how to be a standout candidate. You need to crush the sample project, especially if you're in a boot camp, but also if you are graduating with a CS degree. You're going to want to have a project that is representative of your skills.
00:01:39
I think the most important thing you can do is to choose a project that excites you. The foundation of your project can be a technical problem of interest, a skill you want to hone, or a project that aligns with your professional aspirations or personal interests. I believe the best projects are a combination of technical interest and personal passion.
00:01:57
This is important because one of the easiest questions an interviewer can ask is, 'Why did you choose this project?' Ideally, your answer should provide insight into who you are, what your interests are, what excites you to program, and what challenges you like to tackle.
00:02:19
Another common question interviewers ask about your project is, 'What problems did you encounter or solve while working on this?' You should choose a project where you have intriguing answers regarding your technical interests, the problems you aim to solve, and how you've tackled challenges.
00:02:39
I've heard many people say they just wanted to choose a project they could complete within a two-week window. That's not an interesting answer in an interview situation. So think about how you can build a project that reflects your personality and showcases your technical prowess.
00:03:01
It's also crucial to put effort into your entire project. I've heard people say things like, 'I'm not going to waste my time styling since I don't even want to be a front-end developer.' I can't emphasize how important it is not to form premature opinions about the work you're willing to do.
00:03:20.610
This attitude ultimately hurts you. By working on all aspects of the project, you're showing potential employers that you're willing to take on a variety of tasks, that you take pride in your work, and that you're excited to learn many aspects of your craft.
00:03:38.160
You're limiting yourself by saying you will only do a specific part. When you're getting your first job in Rails or any language, you may not immediately work on what interests you. A lot of times, employers don't let juniors touch the back end for three to six months.
00:03:59.184
You want to demonstrate that you can rise to the challenge of taking on front-end work. Also, consider the edge cases because your users will not behave as expected. This is true for both your sample project and throughout your career.
00:04:16
The best way to determine what's not working is to ask friends or family to use your project. They will find the bugs, not because they're looking for them, but because they will not behave as you expected. So, get feedback while you still have time to fix any issues.
00:04:34
Understand every line of code in your project. In many boot camps, group projects are common, and it’s likely you’ll end up with some code you didn’t write yourself. That’s okay, but you need to be able to explain every part of your project.
00:04:55.440
If you are in a group project, I highly recommend that your team members explain how their code works. This way, everyone can understand every component of the project. If you grab a snippet from Stack Overflow, revisit it and understand how it solves the problem.
00:05:11.190
The best way to learn how code works is to experiment with it in the Rails console. If there's something you're unsure about, play with it until it makes sense. You’re ready to present your project when you can explain the entire codebase to someone else.
00:05:30.930
Refactor, refactor, refactor. There's never enough refactoring you can do. If you find your code hard to read, it’s hard to read for everyone else too. Ask yourself questions like: Are my method names clear and descriptive? Do they accurately convey their responsibilities?
00:05:48.860
Do each of my methods have one explicit responsibility? If your methods take on too many responsibilities, consider breaking them up. Shortening methods will also help with naming because you don’t want method names trying to explain multiple tasks.
00:06:05.150
Is my markup mostly logic-free? There are times when logic is appropriate in markup, but if you can extract logic into a model or helper, do it. This will lead to much cleaner code. Is my code well-commented? If your comments state what your code does, you're not done refactoring.
00:06:23.770
Write tests. This may sound obvious, but your tests will save you, especially if you’re like the junior developers I know who think the best time to add features is the day before their presentation. This often leads to disaster.
00:06:35.820
If you have no tests and everything breaks, you will find yourself in a tight spot. Write tests because they not only show what you're doing, but they also help you quickly isolate problems.
00:06:47.150
At this point, ideally, you've crushed your sample project, and now you need to network. Networking is crucial— and I know that's not something everyone enjoys. Join meetups, industry parties, hack nights, or volunteer opportunities. Put something on your calendar every week and force yourself to go.
00:07:03.250
Importantly, you do not have to ask everyone you meet at these events for a job. Unfortunately, I've heard people approach networking in this way far too often. At many meetups, you’ll get a chance to introduce yourself to the group.
00:07:22
If your approach is, 'Hi, I'm Molly Black from Nashville Software School. I'm graduating in a month and I need a job. Do you know anyone hiring for Rails positions?' people aren't likely to respond positively. No one is going to approach a stranger and offer them a job.
00:07:41.150
My best advice is to be yourself. Talk about what you’re working on and what you’re excited to learn more about. More likely than not, if someone knows you, they'll inform you about open positions that fit you.
00:08:01.770
Simply showing up at these meetups isn’t enough; you need to build real relationships. Once you start feeling comfortable, ask people to coffee. This doesn’t have to revolve around job opportunities; it can be about their career journeys, how they started in tech, or their first jobs.
00:08:19.440
People genuinely enjoy discussing their experiences. Once you start fostering these relationships, people will think of you when they hear about junior roles.
00:08:36.630
If you love a company and feel they are amazing, reach out directly. I've only ever gotten one job from a public job posting. I usually write letters to companies I admire, introduce myself, and ask if I can connect with someone there, whether for coffee or just to learn more.
00:08:55.200
This sometimes requires some light stalking to find the correct email addresses—just do it! The worst that can happen is that you don't hear back. But you might receive a positive response, leading to a great opportunity.
00:09:11
Let's move on to covering the cover letter. Unless you landed a job through networking, your cover letter is typically your first impression. It’s essential that your cover letter captures your unique voice.
00:09:34.660
For example, it’s common to see openings like, 'I am excited to apply for the junior Rails developer position at Life i/o.' However, if your cover letter reads like everyone else’s, it gets lost in the noise of the hundreds of letters that hiring managers receive.
00:09:51
Your job is to stand out—stand out in the subject line, stand out with your writing. Embrace your voice so it sounds authentic. This doesn’t mean being overly quirky; just ensure your letter reflects the real you.
00:10:16
To assess your authentic voice, read your letter out loud. If it sounds awkward, stilted, or boring, you need to rewrite it. A cover letter should flow naturally and feel familiar.
00:10:33.680
Never copy and paste a cover letter. If you feel the need to do so, you’re probably applying to too many jobs. Focus on positions you truly want and dedicate time to crafting personalized letters.
00:10:50.320
Copying and pasting leads to carelessness, such as misspelling the recipient's name or the job title. This indicates a lack of genuine interest in the position, which often results in not receiving a reply.
00:11:06.750
Always proofread your cover letter. A typo in your cover letter is as damaging as one in your code, which can break things. Get others to read your work.
00:11:22.870
At this point, you’ve written outstanding cover letters, and you’ve piqued interest. It’s now time for the interview. The primary thing I want to emphasize is: don’t sweat the technical aspects, even though it's extremely common to feel nervous.
00:11:41.660
Let’s demystify the technical interview. There are various formats: questions about your project, defining a term or principle, solving a whiteboard problem, pair programming, or take-home assignments. Most of these you'll encounter in person, which can be daunting.
00:11:57.720
When approaching problem-solving, vocalize your thought process. You might be presented with a whiteboard challenge and struggle to find the solution. It's okay to express your thought process, even if you don't have the answer right away.
00:12:13.800
Being receptive to not knowing everything is crucial. It's possible you'll draw a blank on certain questions. Embrace this and express a willingness to learn. You don't need to be perfect right now; everyone is learning throughout their careers.
00:12:29.750
If a question stumps you, engage with the interviewer. Say something like, 'I don’t know what that term means, but I’d love to learn more.' Demonstrating enthusiasm for learning can help build rapport.
00:12:44.420
The interview process is as much about building rapport as it is assessing your skills. Employers want to gauge whether they can work with you, whether you are a team player, and whether you're eager to learn.
00:13:01.870
Many times, if there are two candidates—one slightly more competent but one who is better suited to be a teammate—employers will lean towards the candidate they feel they can collaborate with.
00:13:18.720
Now let's discuss selling your past experience. I’d love to know, how many of you are coming out of a dev boot camp? Not everyone in the tech industry has a CS degree or comes from a conventional path. Many are transitioning from other careers.
00:13:34.740
For those coming from boot camps, you likely bring unique experiences to the table. Don’t be embarrassed about where you come from. For example, individuals from food service bring valuable user experience.
00:13:51.350
You’ve worked in chaotic environments and learned to present a polished product. A lot of programming mirrors this; it’s about creating a seamless and beautiful experience for users.
00:14:10.520
Those with construction or carpentry backgrounds understand the importance of building a product and will be judged based on the quality of their work. Individuals with a writing or editing background care about clarity, structure, and readability, all of which are relevant to coding.
00:14:28
If you find yourself unsure of how to highlight your previous experience, please come talk to me. It’s crucial to recognize how your previous roles can benefit future employers.
00:14:46.410
Now, let’s dive into the second part of my talk: how to choose a job you will love. This is an extremely relevant topic, as not many people discuss vetting companies during interviews.
00:15:03.700
The first thing is narrowing your job search. In tech, you're not limited to technology companies; you might find positions in finance, healthcare, food, or travel. Most businesses today rely on tech regardless of their primary focus.
00:15:20
So, before applying, ask yourself some important questions. One crucial question is: 'What problems am I interested in solving?' For instance, I worked in hospitals and found that I wanted to make healthcare more proactive rather than reactive.
00:15:39.320
Your interests might be technical, philosophical, or personal. I recommend writing down a list of problems you want to address—this will help guide your industry focus.
00:15:59
Do you want a role with diverse responsibilities, or one that is more defined? This question can help you determine whether you'd be happier at a smaller startup or a larger corporation.
00:16:18
Startups often require employees to wear multiple hats, while established companies provide more structured roles. You should consider what suits you better based on your personal strengths.
00:16:35.800
Do you prefer gaining breadth of knowledge or depth of knowledge? If you're aiming for a product company, you'll likely gain depth by working on the same codebase. In contrast, agency or consultancy roles offer a variety of projects, allowing you to gain a broad skill set.
00:16:55.500
Are you comfortable in a remote position, or would you prefer working on-site? Many warn juniors against remote work, but I enjoy it. It’s perfect for me, as I can focus on my tasks, yet still communicate with my team via tools like Slack.
00:17:14.150
However, working remotely requires accountability. You need to ensure you can resist distractions and proactively reach out for help. Conversely, if you're social and thrive in a team setting, on-site work may be more suitable.
00:17:33.610
These are important introspections to consider before you start sending applications out into the world. When you’re actually in the interview process, my best advice is to assess potential companies as thoroughly as they are evaluating you.
00:17:54.640
Building a relationship is essential in this process; it’s not just about hoping to get hired. A company is looking for talent that fits their culture, while you need a work environment that aligns with your goals.
00:18:12.310
Things to evaluate while interviewing potential companies include code quality. This is crucial for a junior developer, as the coding culture within a company greatly impacts how you will write code.
00:18:29.180
Consider asking employers how they manage technical debt, what their current code coverage looks like, how often they write tests, and what their code review process entails.
00:18:45.570
It's also important to investigate whether you will receive feedback on your code and how collaborative the environment is when addressing challenges.
00:19:01.740
Unfortunately, it's common for companies to have less-than-ideal engineering practices. You need to ask these questions and determine if they provide a supportive coding environment.
00:19:18.640
Getting a demo of the codebase can also offer you insight into the type of work you’ll be handling. Additionally, inquire about growth opportunities. Many individuals hesitate to ask about this, but it's an important topic.
00:19:34.920
Find out how the company cultivates a learning culture for developers. Understanding their approach to mentoring juniors is crucial, too. Are they looking forward to guiding interns or is it just an additional workload for the team?
00:19:48.150
Ideally, you want to work at a place where people are excited about mentoring. Next, consider the type of work you'll be doing. You want to know what to expect in the first few months.
00:20:04.390
Ask potential employers: 'What kind of work do you envision for me in the first three months, six months, or a year?' This question provides insight into their expectations and growth pace.
00:20:20.660
Reflect on how you prefer to work—do you thrive while working alone or are you more comfortable in a team environment? Your answer will influence how well you adapt in that role.
00:20:43.370
It's valuable to understand how involved you will be in feature planning. Some developers prefer to work on well-defined tasks rather than being part of feature generation and planning sessions.
00:21:02.080
Now, let's talk about the learning environment. This differs from growth opportunities; it’s how you feel when leaving an interview. Do you feel aligned and excited about the team? Or do you leave feeling inadequate or underconfident?
00:21:20.560
If you leave an interview feeling stupid or inadequate, that could reflect the culture you'll be joining. You want to work within an environment where asking questions is encouraged.
00:21:39.010
Additionally, consider whether you feel potential for a mentoring relationship. Ideally, by the end of the interview, you should have met people on your future team. Is there someone there who excites you—someone you feel you can genuinely learn from?
00:21:58.820
If that person seems enthusiastic about working with you, that's a great indication of a supportive work environment. Now that you've sailed through the interview process, it’s time to weigh your offers.
00:22:19.170
Consider the meaningful perks that companies offer: vacation days, sick days, flexible work schedules, and options for remote work. Do they treat their employees like human beings?
00:22:35
You’ll likely have a defined schedule, but recognize that you're a person who can become sick or face other life situations. Companies that support their employees during these times, rather than making them feel guilty, demonstrate a trusting culture.
00:22:51.500
One way to learn more about a company is to ask for their employee handbook. If they hesitate to provide one or don’t have one at all, that’s a red flag, suggesting they haven't thought much about how to treat their employees.
00:23:08.600
Regarding superficial perks—think free food, beer on tap, or ping pong tables. These perks can be enjoyable, but if a company uses them to create a culture where you're expected to be there constantly, consider it a warning.
00:23:30.240
Sometimes, superficial perks can be deceiving—things that seem wonderful can lead to overwork. I remember a job where I was promised free dinners if I worked late, but very quickly those meals lost their allure.
00:23:42.830
Now, let’s take a moment to think about financial considerations. This is a sensitive topic, as many of you may hold student debt or may have taken financial risks for your education in boot camps.
00:24:01
If you're prioritizing financial gain, that's okay. However, remember that this talk is about finding a job you love. List the factors that will optimize your happiness.
00:24:18
Your top priorities should include: being treated like a human adult, mentorship, and learning opportunities. These factors will be your best investment in yourself as a junior developer.
00:24:37
Next, consider coding culture. If you're in a company that practices good coding habits, you’ll learn those practices. Finally, excitement about your work is essential, but if you’re lacking the top three elements, excitement alone won’t sustain you.
00:24:56.440
While money is essential, it ranks lower on the list. If you secure the first four priorities, you’ll likely excel as a developer within one to two years, enhancing your earning potential.
00:25:12.400
I’m putting ping pong on my list as a joke, but seriously, I do love it! That’s all the time I have. I hope you leave this talk feeling confident and prepared to write an awesome cover letter, nail your interviews, and thoughtfully consider the culture you'll enter before taking on a job.
00:25:31
My name is Molly Black. You can find me on Twitter at @MollyBlack. My company is Life i/o. I'm also approachable, so if you see me around, please come talk to me—I’d love to discuss your journey through this process as I know it can be challenging.
00:25:48.640
Thank you!