View Interview back-end developer
Cible : Développeur PHP / Symfony / MySQL | |
Niveau : Senior | |
Ce document propose des questions classiques, sans piège, à poser lorsque vous désirez valider un candidat pour un poste de développeur back. | |
J'utilise personnellement cette trame de questions, libre à vous de vous en inspirer, d'ajouter vos propres questions, et de déterminer lesquelles sont éliminatoires à vos yeux. | |
Veille technologique | |
Quelle est la version actuelle de PHP ? | |
> http://php.net/supported-versions.php |
View Vagrantfile
Vagrant.configure("2") do |config| | |
config.vm.box = "ubuntu/bionic64" | |
config.vm.provider "virtualbox" do |v| | |
v.gui = true | |
v.memory = 2048 | |
end | |
# In case you need an IP to access the VM from another software : | |
# config.vm.network "private_network", ip: "192.168.56.101" |
View fix-azure-disk-double-mount.sh
#!/bin/bash | |
if [ "$#" -ne 4 ]; then | |
echo "Illegal number of parameters" | |
echo "" | |
echo "Usage: ./fix-azure-disk-double-mount.sh <azure subscription id> <azure resource_group> <kube context> <kube namespace>" | |
echo "" | |
echo "Find all pods in error, checks if it is related to an Azure disk issue. Then detach from azure VM these disks. It should trigger a resync automatically on kube side. Run the scripts multiple times if the first time is not the one." | |
exit 1 | |
fi |
View server.py
import sys | |
import socket | |
import threading | |
import SocketServer | |
from socket import error as SocketError | |
import errno | |
class SingleTCPHandler(SocketServer.BaseRequestHandler): | |
def handle(self): | |
while True: |
View gist:e07a3cb63a2133756194
Verifying that +jbouzekri is my blockchain ID. https://onename.com/jbouzekri |
View gist:2573f3228ba613bfab2b
var allLabel = document.querySelectorAll('div[role=menu] ul li a span'); | |
for (keycomp in allLabel) { | |
if (typeof allLabel[keycomp] == 'object') { | |
var label = allLabel[keycomp].textContent; | |
if (label.startsWith('Tous les appareils')) { | |
var allNumber = label.substring(label.lastIndexOf("(")+1,label.lastIndexOf(")")); | |
} else if (label.startsWith('Compatible')) { | |
var compNumber = label.substring(label.lastIndexOf("(")+1,label.lastIndexOf(")")); | |
} | |
} |
View FeatureContext.php
<?php | |
/** | |
* @author Gildas Quéméner <gildas@akeneo.com> | |
* @copyright 2013 Akeneo SAS (http://www.akeneo.com) | |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) | |
*/ | |
use Behat\Behat\Exception\BehaviorException; | |
use Behat\Mink\Driver\Selenium2Driver; |
View proxy.js
/** | |
A nodejs websocket proxy which forward a request from a websocket to a tcp server. | |
*/ | |
var io = require('socket.io').listen(8080); | |
var net = require('net'); | |
io.sockets.on('connection', function (socket) { | |
var client = new net.Socket(); | |
View git-create-repo
#!/bin/bash | |
: ' | |
Place this script in a folder of your PATH and add execute rights to it | |
You can then use git create-repo REPO_NAME (without .git at the end) to init a bare repo in your current folder | |
' | |
set -e | |
if [ $# -ne 1 ] | |
then |
View syntax.css
.highlight .hll { background-color: #49483e } | |
.highlight { background: #272822; color: #f8f8f2 } | |
.highlight pre { background: transparent; color: #f8f8f2 } | |
.highlight .c { color: #75715e } /* Comment */ | |
.highlight .err { color: #960050; background-color: #1e0010 } /* Error */ | |
.highlight .k { color: #66d9ef } /* Keyword */ | |
.highlight .l { color: #ae81ff } /* Literal */ | |
.highlight .n { color: #f8f8f2 } /* Name */ | |
.highlight .o { color: #f92672 } /* Operator */ | |
.highlight .p { color: #f8f8f2 } /* Punctuation */ |
NewerOlder