/**
* Creates nested groups by object properties.
* `properties` array nest from highest(index = 0) to lowest level.
*
* @param {String[]} properties
* @returns {Object}| Rob Pike's 5 Rules of Programming | |
| Rule 1. You can't tell where a program is going to spend its time. Bottlenecks occur in surprising places, so don't try to second guess and put in a speed hack until you've proven that's where the bottleneck is. | |
| Rule 2. Measure. Don't tune for speed until you've measured, and even then don't unless one part of the code overwhelms the rest. | |
| Rule 3. Fancy algorithms are slow when n is small, and n is usually small. Fancy algorithms have big constants. Until you know that n is frequently going to be big, don't get fancy. (Even if n does get big, use Rule 2 first.) | |
| Rule 4. Fancy algorithms are buggier than simple ones, and they're much harder to implement. Use simple algorithms as well as simple data structures. | |
| Rule 5. Data dominates. If you've chosen the right data structures and organized things well, the algorithms will almost always be self-evident. Data structures, not algorithms, are central to programming. | |
| Pike's rules 1 and 2 restate Tony Hoare's famous maxim "Premature |
When setting these options consider the following:
- How long is your average request?
- What is the maximum number of simultaneous visitors the site(s) get?
- How much memory on average does each child process consume?
sudo grep max_children /var/log/php?.?-fpm.log.1 /var/log/php?.?-fpm.log
Consider a case where you have multiple features that all depending on each-other going into master at different times. Feature-C depends on Feature-B, and Feature-B depends on Feature-A and so on...
If we squash merge Feature-A into master we first have to resolve our base in Feature-B before it can be merged. Below is an example of resolving it after Feature-A has been merged into master (make sure master is up-to-date).
git fetch --all
There are two exercises in this document that are expected to be completed.
The source-code for each exercise should live in a separate repository, Github or GitLab, and should be accessible to the reviewer of the assignment. Each repository should contain a README file explaining the purpose of the repository and how to run it locally.
For each exercise you are free to use whatever libraries and technologies you like, but a combination of Javascript/Typescript/React is preferred for the first exercise, and Nodejs/PHP for the second.
Please do your best to write production-quality code.
Once completed, links to both of the repositories should be sent to: insert@email.here