How Are Projects Prioritized And Planned
Understanding how a company picks which projects to put its resources toward and how it goes about bringing those projects to fruition can tell you a lot about whats important thereboth in terms of products and in terms of engineering values. For example, is the company prioritizing tech debt or only focusing on new features? Are they able to focus on doing a few things well or do they try to do a little bit of everything? Are they building things to last or are they over-engineering?
But thats not the only reason to ask this question. The answer can also indicate how much influence you, as an individual engineer, might have. If you have a great idea, what would it take to make it a reality? Is there a lot of red tape or would you have a good amount of freedom to test things out? If they mention holding hackathons and actually implementing features inspired by hacks, for example, it can indicate an openness to ideas coming from anywhere.
Weeks 6 7 8 Practice More Complex Coding Interview Problems
Now that youve been practicing more straightforward problems for a couple of weeks, its time to get real and start practicing harder questions that are more likely to be asked during coding interviews.
For practice and automated challenges along with interactive solutions, look at Grokking the Coding Interview
Here are some guidelines to keep in mind as you solve these problems:
Here are some sample problems to consider:
- Implement Binary Search
- Find the Intersection point of two linked lists
- Reverse words in a sentence
- Check if two binary trees are identical
- Clone a directed graph
- Find solutions to a Boggle game
- Determine if there are any three integers in an array that sum equal to the given value.
Whats It Like To Study Software Engineering
Software engineering is as dynamic and creative as it is analytical and theoretic. Hackathons and live coding events are common occurrences at many universities, as are team projects and prototyping. Youll learn from tutors and industry experts, starting with the basics of computing and coding and then moving into more specialised areas that interest you the most. While you will have to learn various programming languages and spend a lot of time getting the theory down, most of your software engineering degree will be spent putting it into practice.
Either through special projects, work placements, or sandwich years businesses play a big role in many software engineering courses. Youll have the opportunity to work on real, exciting problems which will give you the chance to flex your coding muscles and prove your worth in the job market. Whether its a company that wants to make sure its website is secure, or a firm looking to develop an app for its new product, youll play your part.
With technology moving at a rate thats almost hard to keep up with, youll be challenged to think about what this means for society. Is online privacy more important than safety and security? Is there a technological solution that keeps everybody happy? Could you be the one to develop it?
Software engineering undergraduates can expect the following tasks during their studies:
- writing reports and essays
Recommended Reading: System Design Interview Prep
Create A Google Sheet To Track Interviews
Youre going to be talking to a lot of different companies and you want to stay organized. Thats why I created the following Google Sheet:
This spreadsheet is amazing for keeping track of the companies youre currently talking to, the companies youre waiting on, and more. I found it to be incredibly helpful.
Start by filling out the companies that youre interested in and the connections you have there. Reach out to your connections to chat about opportunities there, most people will be happy to refer you.
Chance Lyon Technical Director
IllFonic Technical Director Chance Lyon said using a whiteboard to work through interview questions is necessary in order to know what its like to code outside of a text editor.
At IllFonic we look for two key things during a technical interview: A deep understanding of the language and the ability to reason out problems in real-time. Take some time and review the C++ standard and keywords to ensure that you understand them all . There are only 30 total.
Second, practice working through interview questions on a whiteboard to get used to the feel of coding outside of a text editor. Talking through the code out loud while you work on a whiteboard challenge is also important for us to understand your thought process. If you get stuck for too long, ask for help. They are challenging on purpose and can have several solutions.
Don’t Miss: Women’s Outfit For Job Interview
Find A Community Of Software Engineers
You need to find a community to learn which guide you to success as a software engineer. Therefore, when you are surrounded by a community of like-minded people, you have an automatic support system. A real-world software engineering community gives you guidance on where to focus your learning. Sites like Meetup is an ideal choice to find other professionals.
During The Software Engineering Interview
Firstly, youve got this.
Technical interviews usually have three parts:
Your turn to ask questions
Lets talk about the chit-chat portion first.
Remember: the most important aspect of any interview process is to build rapport. To connect with interviewers, try to have specific, different stories prepared. Alyssa is an engineer at Zillow who has interviewed hundreds of people for software engineering roles, heres what she says:
Really hone in on *specific* stories and incidents you can share for the non-technical questions. We are guaranteed to talk to all the other interviewers after we’ve submitted our feedback. It’s okay to share the same story for all the questions we ask you, but it would be even more impactful if you have different stories. Very frequently, during the debrief, we’ll be like “the candidate shared that story with me too!””And me!””And me!”. Unless there are different takeaways from that same story, we honestly don’t get anything more out of the story. The more information we know about you, the more we can give you credit.
You also want to be honest about your experience and capabilities.
When you move into the technical portion, its really important to take your time to ask clarifying questions and make sure you fully understand what you have to solve. As Lirida , Founder and CTO at Learnable says:
Recommended Reading: Best System Design Interview Prep
Practice By Doing A Few Interviews With Your Second
If youre newer to interviewing , dont make the first interview you have the one for your dream role. Solving difficult, timed technical problems in front of a stranger is tough! Interviewing with a few companies that arent among your top choices can help you get the nerves out.
Practice with your second-choice companies first! This is a great way to get used to phone screens and whiteboard interviews in a lower-pressure environment before interviewing with your dream companies. – Harriet , Software Engineer at Remotion
Christie Ramsaran Software Engineer
In previous interviews, Software Engineer Christie Ramsaran said she focuses on not allowing the stressful environment to distract her from gathering the information she needs to generate thoughtful responses. Taking your time to provide informed, insightful answers, theSkimm coder said, is not only perfectly acceptable. Its responsible.
I always start by researching the company to better understand the interview process. Every company approaches coding interviews in a different way. The recruiter is a great resource. I ask if Ill be whiteboarding or using a laptop, and whether Ill be pairing with a developer at the company. I also ask if the recruiter can share a list of common topics. From there, I study any topics that feel particularly rusty and reread Cracking the Coding Interview by Gayle Laakmann McDowell.
“I study any topics that feel particularly rusty and reread Cracking the Coding Interview by Gayle Laakmann McDowell.
Finally, practice questions. I usually source questions from the same book or one of the many online coding challenges banks. I recommend finding a buddy to simulate an interview.
Read Also: Questions To Ask The Cfo In An Interview
Prepare For The Behavioral Interview
Every top tech company has at least one round of behavioral interviews for software engineers. Typically, behavioral interviews for software engineers include: Sharing about details of previous experiences on resume Providing examples of past situations and behavior that demonstrate certain behavioral attributes Sharing of ambitions and career plans
As much as these interviews seem “fluffy” or unstructured, there is actually a structured way to prepare for behavioral interviews:
What Questions Do You Have For Us
When interviewing a potential software engineer, it is important not just to ask them questions but to allow them to ask their own questions.
If an engineer doesnt really care about your company and is just interested in making money, they probably wont have a lot of questions.
In addition, a good software engineer who cares about their work is in high demand, and cares about working with a great team will probably have a few questions for you as well.
They might want to ask about the company culture, the work-life balance, your company values, the goals you are trying to reach, what you are looking for in a software developer and more to figure out whether you would make a good fit for them and how they will fit in with your overall company goals.
Don’t Miss: Questions To Ask A Cfo
Dont Forget To Prepare For Traditional/behavioral Questions
Employers often say that students are so concerned about the technical interview that they havent thought through answers to common questions like Tell me about yourself? or Why are you interested in this job? Read through our tips on common interview questions and practice behavioral questions with a CCE career counselor.
Coding Interview Study Plan
The recommended time period to set aside for coding interview preparation is 3 months for a more holistic preparation. I shared my 3 month study plan here, which provides a list of coding interview topics with resources and practice questions that you should work through in order of priority every week. I will also be adding content on recommended 1 month and 1 week study plans soon.
If you have less than 3 months to prepare, you can generate your own study plans using the Grind 75 tool which generates recommended study plans for coding interviews based on the time you have left. The algorithm behind it includes a ranking of questions by priority and also a balance between breadth and depth of topics covered.
Read Also: Cfo Interview
What To Do If Youre Stumped By A Question Or Feel Like Youre Not Connecting With The Interviewer
If you sense that an interview isnt going well, its a great time to pause and check in with your interviewer. Heres how we recommend you do that:
If an interview is not going well, be honest! I am quick to say when I don’t know something and try my best to be vocal about how I would approach something. Ask lots of questions. Think of the interview collaboratively. The interviewer, more often than not, wants to see you succeed, and wants to know what it’d be like to work with you. So, treat them as a friendly coworker. – Sarah , Frontend Engineer at Splice
Cadran , Software Engineer & Founder at Elpha shares some important reminders from the hiring managers perspective. If you feel like its not going well, it may have more to do with the hiring manager than you think!
You can also ask to take a short break!If you’re stuck , it’s OK to ask the interviewer: “Can I have a few moments to think?”, or ask for a restroom break. Have water nearby, taking a mini-break for water can help. – Lirida , Founder and CTO
Youll get through it. And once you do, itll be your turn to ask the hiring managers any questions you have for them. We recommend choosing a few from the below list!
How Did You Solve A Problem You Faced
This question will allow the candidate to explain how they approach problems and their methodology for solving them. It will show whether they have the skills to hold up to pressure and use their problem-solving skills to arrive at a solution.
This does not have to be a software engineering problem, though it may be. It can also be a problem with teamwork. For example, they can explain how they had a disagreement with a colleague on how to properly approach a specific problem and how they came to an agreement with that colleague.
This will show that they have the teamwork skills to work with someone else, even when there is a conflict.
Recommended Reading: Best Interview Attire For A Woman
Discussing Technical Achievements And High
In a typical technical phone interview, you’ll have a conversation with a senior member of the team you would join or with the manager of that team. You can expect a lot of this conversation to be focused on two things:
- Recent problems you have experienced in your current position and the solutions you implemented for them, and
- General language familiarity ?)
To help prepare for this interview, I suggest you start to write down answers to these questions.
Personally, I have used an Excel or Google sheet document that consists of 3 columns: questions, answers, and notes. You will find that taking the action of writing your answers down will help you come up with a concise and impactful answer.
This might seem like a lot of work upfront, but trust me spending the time to prepare and convert your thoughts to pen and paper will really help you mentally flesh out your answers.
Okay, you’ve spent ample time preparing and you impressed your interviewer! The next step you can expect is the “on-site” interview.
System Design Scalability Data Handling
You can expect system design questions if you have 4+ years of experience.
- Scalability and System Design are very large topics with many topics and resources, sincethere is a lot to consider when designing a software/hardware system that can scale.Expect to spend quite a bit of time on this
- Distill large data sets to single values
- Transform one data set to another
- Handling obscenely large amounts of data
You May Like: Mailscoop Io
Get A Copy Of Cracking The Coding Interview
Cracking the Coding Interview is a book that programmers will commonly refer to for interview prep. The book contains tips on the interview processes, concept review, and interview-style questions. It is a great way to refresh your knowledge that you drew from programming fundamentals and data structures and algorithms. I recommend you start by first reading the content in the book to review, then doing the questions theyve provided to practice.
Top Interview Questions To Ask Software Engineers
Hiring a software engineer is a process that should be approached carefully and with deliberation. A good software engineer will help your company grow, but one that does not have the right skills or a good work ethic can slow down and hinder your growth.
Therefore, you should know the best questions to ask during the hiring process to successfully recruit software engineers.
These 17 interview questions for software engineers are some of the top questions you should ask potential software engineering candidates that youre interviewing.
Read Also: Top 10 Behavioral Questions
A Final Note About Interviewing
Its important to remember you are interviewing the company just like they are interviewing you. Often times the work during interviews will be similar to the job youll be asked to perform. Are the challenges they give you the type of work you like to do? Are the people cool? Do they respect your time and abilities? If the answer is no to any of those questions consider looking elsewhere. Know your strengths and weaknesses and remember to have fun during the search process. Interviewing is a great way to meet people, learn about new technologies and search within yourself.
Failure and rejection are part of life so keep a positive attitude, work hard on what you can control and dont worry about what you cant!
Mindset Is Important When Preparing For Your Software Engineer Interview
Of course, your technical skills are very important for the software engineering interviews. But dont underestimate the importance of your soft skills. People will work with you every day so they should feel like you are a pleasant person to work with. There is a big part of the job that is not about you writing code, but collaborating with other principles and teams.
Collecting and understanding requirements, being able to articulate the problem in technical and non-technical ways, informing stakeholders about progress and problems are only some of them. If you believe you have some strong asset in your personality try to showcase this throughout the process.
Read Also: Interview Questions To Ask A Cfo