# Frontend Developer Questions
## Goal
- Candidate is a teamplayer
- Is able to develop code in javascript
- Is able to develop code in PHP
- Is able to critically reflect on methodology and skills
- Understands importance of code quality and processes
## Format
1hr
### Kick off
- How did you become a web developer and what made you want to become one?
- Which languages have you got experience with?
- Which are your favourite/excel at the most?
- Do you consider yourself more as a front/backend developer?
- Which technologies would you like more experience with?
- What do you do, if you're not familiar with a technology which you think might be suitable for your project.
### Personal
- How many years exprience?
- How do you stay up to date with latest technology? `meetups`, `reddit`, `forums`, `tutorials`
- What are you looking for in a team?
- Describe your ideal development process (team)
- How do you resolve philosphical/opinionated differences in the team?
- Have you ever made a serious mistake? What could you take from it?
- Are you familiar with team workflows? (code reviews, PRs, documentation)
- Scenario: Before each release, testers manually test the application. The amount of time the testers are taking with each release is steadily increasing, ultimately costing the company money. What could you do to resolve this issue?
### Technical
- You have accidentally done a `git rebase` which you would like to undo. What are your options?
- Which node package manager (`npm`/`yarn`) do you prefer? Why?
- How would you manage `node` versions in different projects?
- What is currying?
- Can you explain what a pure function is?
- Familiar with Server Side Rendering? `next`, `nuxt`, `hops`
- How would you transfer files from your local machine to a server? `ssh`, `rsync`, `CI/CD`
- Which shell do you use? `zsh`, `fish`, `bash`
- What experience have you got with containerization?
- What's the difference between the following function types?
```javascript=
const myFunction = () => {
// My function.
}
```
```javascript=
var myFunction = function() {
// My function.
}
```
```javascript=
function myFunction() {
// My function.
}
```
```javascript=
(function(){
// My function.
})()
```
- What's the difference between?
```javascript=
var element = document.getElementById('my-button');
element.onClick = function() {
// My function.
}
```
```javascript=
var element = document.getElementById('my-button');
element.addEventListener('click', myFunction);
```
- Where would you store environment variables for your shell?
### React Questions
- How would you go about styling components in your React.js Application? Which other options are there? `inline css`, `import css/scss`, `static css in document`
- What about documentation? `docsify`, `storybook`, `docz`
- Testing `jest`
- Which technology would you use to fetch data from the backend? `GraphQL`, `SOAP/API`, `ElasticSearch`
- When and why do you choose a Class over a functional component?
- Is it possible to use `state` in functional components?
- You need to setup a react application quickly, for a proof of concept. How do you make a start?
- How do you implement type checking? `PropTypes`, `flow`
### Tasks
- `NodeList.forEach` is not supported by IE11, write a polyfill so that we can continue to use it.
- Sometimes we want to format numbers like this: `1,000`, `100,000`, `1,000,000`. Solve this problem with JavaScript.
- Extract the parameters `?company=burda&location=munich` from a Url.
### Technologies
- React.js
- Sass
- GraphQL
- ElasticSearch
- Git
- nodejs
- Hops
- Axios
- docker