- Read our resume from the beginning to end.
- Do not make us fill endless forms.
- Be polite, you don't need some human ASAP.
- If you are not going to hire 100%, do not invite to interview. It's should not be a trial game.
- Respond to the applicant as soon as possible, not later than 2 weeks.
- Give an honest, proper and constructive feedback stating why you are not hiring that person.
- No whiteboard interviews, stress testing, drills, brain teasers
- If you want to see how a person codes, give them a home task similar to what you expect.
I have a pet project I work on, every now and then. CNoEvil.
The concept is simple enough.
What if, for a moment, we forgot all the rules we know. That we ignore every good idea, and accept all the terrible ones. That nothing is off limits. Can we turn C into a new language? Can we do what Lisp and Forth let the over-eager programmer do, but in C?
This is a collection of the things I believe about software development. I have worked for years building backend and data processing systems, so read the below within that context.
Agree? Disagree? Feel free to let me know at @JanStette.
Keep it simple, stupid. You ain't gonna need it.
/* MIT License | |
Copyright (c) 2019-2020 Unlimiter | |
Permission is hereby granted, free of charge, to any person obtaining a copy | |
of this software and associated documentation files (the "Software"), to deal | |
in the Software without restriction, including without limitation the rights | |
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |
copies of the Software, and to permit persons to whom the Software is | |
furnished to do so, subject to the following conditions: |
WAYLAND_PROTOCOLS=/usr/share/wayland-protocols | |
# wayland-scanner is a tool which generates C headers and rigging for Wayland | |
# protocols, which are specified in XML. wlroots requires you to rig these up | |
# to your build system yourself and provide them in the include path. | |
xdg-shell-protocol.h: | |
wayland-scanner server-header \ | |
$(WAYLAND_PROTOCOLS)/stable/xdg-shell/xdg-shell.xml $@ | |
xdg-shell-protocol.c: xdg-shell-protocol.h |
package main | |
import ( | |
"database/sql" | |
"fmt" | |
"flag" | |
"os" | |
"log" | |
"runtime" | |
"html/template" |
This is a short post that explains how to write a high-performance matrix multiplication program on modern processors. In this tutorial I will use a single core of the Skylake-client CPU with AVX2, but the principles in this post also apply to other processors with different instruction sets (such as AVX512).
Matrix multiplication is a mathematical operation that defines the product of
"====================================================================== | |
" | |
" vinegar.vim - Vinegar & Oil (fork from tpope/vim-vinegar) | |
" | |
" Created by skywind on 2017/06/30 | |
" Last Modified: 2018/03/16 22:33 | |
" | |
" Split windows and the project drawer go together like oil and | |
" vinegar. I don't mean to say that you can combine them to create a | |
" delicious salad dressing. I mean that they don't mix well! |
# Copyright 2018 Cloudera, Inc. | |
# | |
# Licensed under the Apache License, Version 2.0 (the "License"); | |
# you may not use this file except in compliance with the License. | |
# You may obtain a copy of the License at | |
# | |
# http://www.apache.org/licenses/LICENSE-2.0 | |
# | |
# Unless required by applicable law or agreed to in writing, software | |
# distributed under the License is distributed on an "AS IS" BASIS, |
from collections import defaultdict | |
n=len(channels) | |
shapley_values = defaultdict(int) | |
for channel in channels: | |
for A in v_values.keys(): | |
if channel not in A.split(","): | |
cardinal_A=len(A.split(",")) | |
A_with_channel = A.split(",") |