About this role
Software engineers (also called Software Developers) design and create code for web applications and programs.
Software engineer responsibilities
- Writing well-designed code
- Deploying new features and evaluate user feedback
- Troubleshooting issues with software/fixing bugs
- Developing quality assurance procedures
- Executing project plans
- Applying best practices and standard operating procedures
What skills should you be looking for?
Your team has been tasked with building a brand new product for the business and you’re participating in an architectural whiteboarding session with the rest of your team about how the different components that underpin this new product should be structured. You’ve proposed a particular design/architectural pattern but someone on your team disagrees with you (e.g. you feel the system should be orchestrated vs choreographed, or you feel the system should use a particular type of web-framework rather than some other). - How do you resolve the disagreement? - What specific techniques might you use or what style might you adopt in this situation?
Your team is building a search autocomplete feature. That is, as people begin typing a query into a search box, popular queries beginning with the letters they’ve entered show up in a selectable list below the search input box. On your team, there’s a frontend engineer, a backend engineer, and yourself. What components would you need to build for this feature? How would you divide the work between the group? Why?
Another software engineer on your team is working on a new feature. They’re generally a great engineer. As you’re working on something else, you scroll through their code and look at a couple of the new functions they’ve written. There aren’t any major issues that would cause the code to break or fail, but you disagree with the style and structure of the code. Would you tell them about this? If so, how would you do that? If not, why not?
You've been given a rough spec for a new feature to implement. It's not clear to you yet how exactly the feature will work. You also have some concerns about the size and complexity of the feature. What would you do to make sure it can be built and launched successfully? (Please note, we're interested in the process and your approach.)
t’s been a busy week and it’s now late on Friday. You have four things that you’ve yet to get to this week.
1. One of the sales team asked you today to add a feature to the site to support a large sale they're trying to close. This feature is small but the sales team want to close today, and the team's weekly prioritisation meeting isn't until Monday.
2. A customer has emailed about a bug on the site preventing them from accessing their account.
3. You've been asked if you can step in to replace a speaker at a technical event you were attending tonight. It'd be a good opportunity to talk about some aspects of tech you find interesting and good exposure for us, but you need time to edit a talk you gave elsewhere recently.
4. It's your week to do the weekly team update and you’ve not yet quantified your team’s progress against team goals for this month or set the priorities for the coming month. The meeting is on Monday morning.
Imagine you only have time to do two (and only two!) of these tasks, which two do you choose and why?
Note: as an engineering team we do not work at weekends.
As well as review guides on how to score answers to all of them?