Bitcoin Forum
October 17, 2018, 11:14:14 AM *
News: Make sure you are not using versions of Bitcoin Core other than 0.17.0 [Torrent], 0.16.3, 0.15.2, or 0.14.3. More info.
 
   Home   Help Search Donate Login Register  
Pages: [1]
  Print  
Author Topic: Developer Interview Questions  (Read 382 times)
user_
Newbie
*
Offline Offline

Activity: 17
Merit: 1


View Profile
September 04, 2018, 08:15:25 AM
Merited by mdayonliner (1)
 #1

Dear all,
Since we are doing a bit of interviewing of candidates for roles in Bitcoin development I have compiled a list of questions that could be asked during such an interview. I have based this list of questions on the "Mastering Bitcoin" book. I have created also a list of answers, and can provide them if required by someone.
If someone has some similar list, I would appreciate if you could share.
Alternatively I have been thinking about creating a quiz in some online/offline platforms to be able to test candidates using SW.
Thank you,
My list is below.
I can also upload the document to github if needed.

Questions.
Chapter 1: Introduction
1.   What are the main Bitcoin terms?
2.   What is a Bitcoin address?
3.   What is a Bitcoin transaction?
4.   What is a Bitcoin block?
5.   What is a Bitcoin blockchain?
6.   What is a Bitcoin transaction ledger?
7.   What is a Bitcoin system? What is a bitcoin (cryptocurrency)? How are they different?
8.   What is a full Bitcoin stack?
9.   What are two types of issues that digital money have to address?
10.   What is a “double-spend” problem?
11.   What is a distributed computing problem? What is the other name of this problem?
12.   What is an election?
13.   What is a consensus?
14.   What is the name of the main algorithm that brings the bitcoin network to the consensus?
15.   What are the different types of bitcoin clients? What is the difference between these clients? Which client offers the most flexibility? Which client offers the least flexibility? Which client is the most and least secure?
16.   What is a bitcoin wallet?
17.   What is a confirmed transaction and what is an unconfirmed transaction?
Chapter 2: How Bitcoin works.
1.   What is the best way to understand transactions in the Bitcoin network?
2.   What is a transaction? What does it contain? What is the similarity of a transaction to a double entry ledger? What does input correspond to? What does output correspond to?
3.   What are the typical transactions in the bitcoin network? Could you please name three of such transactions and give examples of each type of the transaction?
4.   What is a QR and how it is used in the Bitcoin network? Are there different types of QRs? If so, what are the different types? Which type is more informational? What kind of information does it provide?
5.   What is SPV? What does this procedure check and what type of clients of the Bitcoin network usually use this procedure?
Chapter 3: The Bitcoin client.
1.   How to download and install the Core Bitcoin client?
2.   What is the best way to test the API available for the Core Bitcoin client without actually programming? What is the interface called?
3.   What are the major areas of operations in the Bitcoin client? What can we do with the client?
4.   What are the available operations for the Bitcoin addresses?
5.   What are the available read operations for the Bitcoin transactions? How is a transaction encoded in the Bitcoin network? What is a raw transaction and what is a decoded transaction?
6.   If I want to get information about a transaction that is not related to any address in my own wallet, do I need to change anything in the Bitcoin client configuration? If yes, which option do I need to modify?
7.   What are the available read operation for the Bitcoin blocks?
8.   What are the available operations for the creation of the transactions in the Bitcoin network?
9.   How do you normally need to address the unspent output from the previous transaction in order to use it as an input for a new transaction?
10.   What is the mandatory operation after creating a new transaction and before sending this new transaction to the network? What state does the wallet have to be in order to perform this operation?
11.   Is the transaction ID immutable (TXID)? If not why, if yes, why and when?
12.   What does signing a transaction mean?
13.   What are the other options for Bitcoin clients? Are there any libraries that are written for some specific languages? What types of clients do these libraries implement?
Chapter 4: Keys, Addresses and Wallets.
1.   What is a PKC? When it was developed? What are the main mathematical foundations or functions that PKC is using?
2.   What is ECC? Could you please provide the formula of the EC? What is the p and what is the Fp? What are the defined operations in ECC? What is a “point to infinity”?
3.   What is a Bitcoin wallet? Does this wallet contain coins? If not, what does it contain then?
4.   What is a BIP? What it is used for?
5.   What is an encrypted private key? Why would we want to encrypt private keys?
6.   What is a paper wallet? What kind of storage it is an example of?
7.   What is a nondeterministic wallet? Is it a good wallet or a bad wallet? Could you justify?
8.   What is a deterministic wallet?
9.   What is an HD wallet?
10.   How many keys are needed for one in and out transaction? What is a key pair? Which keys are in the key pair?
11.   How many keys are stored in a wallet?
12.   How does a public key gets created in Bitcoin? What is a “generator point”?
13.   Could you please show on a picture how ECC multiplication is done?
14.   How does a private key gets created in Bitcoin? What we should be aware of when creating a new private key? What is CSPRNG? What kind of input should this function be getting?
15.   What is a WIF? What is WIF-Compressed?
16.   What is Base58 encoding and what is Base58Check encoding? How it is different from Base64 encoding? Which characters are used in Base58? Why Base58Check was invented? What kind of problems does it solve? How is Base58Check encoding is created from Base58 encoding?
17.   How can Bitcoin addresses be encoded? Which different encodings are used? Which key is used for the address creation? How is the address created? How this key is used and what is the used formula?
18.   Can we visually distinguish between different keys in Base58Check format? If yes, how are they different from each other? What kind of prefixes are used? Could you please provide information about used prefixes for each type of the key?
19.   What is an index in HD wallets? How many siblings can exist for a parent in an HD wallet?
20.   What is the depth limitation for an HD wallet key hierarchy?
21.   What are the main two advantages of an HD wallet comparing to the nondeterministic wallets?
22.   What are the risks of non-hardened keys creation in an HD wallet? Could you please describe each of them?  
23.   What is a chain code in HD wallets? How many different chain code types there are?  
24.   What is the mnemonic code words? What are they used for?
25.   What is a seed in an HD wallet? Is there any other name for it?
26.   What is an extended key? How long is it and which parts does it consist of?  
27.   What is P2SH address? What function are P2SH addresses normally used for? Is that correct to call P2SH address a multi-sig address? Which BIP suggested using P2SH addresses?
28.   What is a WIF-compressed private key? Is there such a thing as a compressed private key? Is there such a thing as a compressed public key?
29.   What is a vanity address?
30.   What is a vanity pool?
31.   What is a P2PKH address? What is the prefix for the P2PKH address?
32.   How does the owner prove that he is the real owner of some address? What does he have to represent to the network to prove the ownership? Why a perpetrator cannot copy this information and reuse it in the next transactions?
33.   What is the rule for using funds that are secured by a cold storage wallet? How many times you can send to the address that is protected by the private key stored in a cold storage? How many times can you send funds from the address that is protected by the private key stored in a cold storage?
Chapter 5: Transactions.
1.   What is a transaction in Bitcoin? Why is it the most important operation in the Bitcoin ecosystem?
2.   What is UTXO? What is one of the important rules of the UTXO?
3.   Which language is used to write scripts in Bitcoin ecosystem? What are the features of this language? Which language does it look like? What are the limitations of this language?
4.   What is the structure of a transaction? What does transaction consists of?
5.   What are the standard transactions in Bitcoin? How many standard transactions there are (as of 2014)?
6.   What is a “locking script” and what is an “unlocking script”? What is inside these scripts for a usual operation of P2PKH? What is a signature? Could you please describe in details how locking and unlocking scripts work and draw the necessary diagrams?
7.   What is a transaction fee? What does the transaction fee depend on?
8.   If you are manually creating transactions, what should you be very careful about?
9.   Could you please provide a real life scenario when you might need a P2SH payment and operation?
10.   What is the Script operation that is used to store in the blockchain some important data? Is it a good practice? Explain your answer.
Chapter 6: The Bitcoin Network.
1.   What is the network used in Bitcoin? What is it called? What is the abbreviation? What is the difference between this network architecture and the other network architectures? Could you please describe another network architecture and compare the Bitcoin network and the other network architectures?
2.   What is a Bitcoin network? What is an extended Bitcoin network? What is the difference between those two networks? What are the other protocols used in the extended Bitcoin network? Why are these new protocols used? Can you give an example of one such protocol? What is it called?
3.   What are the main functions of a bitcoin node? How many of them there are? Could you please name and describe each of them? Which functions are mandatory?
4.   What is a full node in the Bitcoin network? What does it do and how does it differ from the other nodes?
5.   What is a lightweight node in the Bitcoin network? What is another name of the lightweight node? How lightweight node checks transactions?
6.   What are the main problems in the SPV process? What does SPV stand for? How does SPV work and what does it rely on?
7.   What is a Sybil attack?
8.   What is a transaction pool? Where are transaction pools stored in a Bitcoin network client?
What are the two different transaction pools usually available in implementations?
9.   What is the main Bitcoin client used in the network? What is the official name of the client and what is an unofficial name of this client?
10.   What is UTXO pool? Do all clients keep this pool? Where is it stored? How does it differ from the transaction pools?
11.   What is a Bloom filter? Why are Bloom filters used in the Bitcoin network? Were they originally used in the initial SW or were they introduced with a specific BIP?
Chapter 7: The Blockchain.
1.   What is a blockchain?
2.   What is a block hash? Is it really a block hash or is it a hash of something else?
3.   What is included in the block? What kind of information?
4.   How many parents can one block have?
5.   How many children can one block have? Is it a temporary or permanent state of the blockchain? What is the name of this state of the blockchain?
6.   What is a Merkle tree? Why does Bitcoin network use Merkle trees? What is the advantage of using Merkle trees? What is the other name of the Merkle tree? What kind of form must this tree have?
7.   How are blocks identified in the blockchain? What are the two commonly used identities? Are these identities stored in the blockchain?
8.   What is the average size of one transaction? How many transactions are normally in one block? What is the size of a block header?
9.   What kind of information do SPV nodes download? How much space do they save by that comparing to what they would need if they had to download the whole blockchain?
10.   What is a usual representation of a blockchain?
11.   What is a genesis block? Do clients download this block and if yes – where from? What is the number of the genesis block?
12.   What is a Merkle root? What is a Merkle path?
Chapter 8: Mining and Consensus.
1.   What is the main purpose of mining? Is it to get the new coins for the miners? Alternatively, it is something else? Is mining the right or good term to describe the process?
2.   What is PoW algorithm?
3.   What are the two main incentives for miners to participate in the Bitcoin network? What is the current main incentive and will it be changed in the future?
4.   Is the money supply in the Bitcoin network diminishing? If so, what is the diminishing rate? What was the original Bitcoin supply rate and how is it changed over time? Is the diminishing rate time related or rather block related?
5.   What is the maximum number of Bitcoins available in the network after all the Bitcoins have been mined? When will all the Bitcoins be mined?
6.   What is a decentralized consensus? What is a usual setup to clear transactions? What does a clearinghouse do?
7.   What is deflationary money? Are they good or bad usually? What is the bad example of deflationary spiral?
8.   What is an emergent consensus? What is the feature of emergent consensus? How does it differ from a usual consensus? What are the main processes out of which this emergent decentralized consensus becomes true?
9.   Could you please describe the process of Independent Transaction Verification? What is the list of criteria that are checked against a newly received transaction? Where can these rules be checked? Can they be changed over time? If yes, why would they be changed?
10.   Does mining node have to be a full node? If not, what are the other options for a node that is not full to be a mining node?
11.   What is a candidate block? What types of nodes in the Bitcoin network create candidate blocks? What is a memory pool? Is there any other name of the memory pool? What are the transactions kept in this memory pool?
12.   How are transactions added to the candidate block? How does a candidate block become a valid block?
13.   What is the minimum value in the Bitcoin network? What is it called and what is the value? Are there any alternative names?
14.   What is the age of the UTXO?
15.   How is the priority of a transaction is calculated? What is the exact formula? What are the units of each contributing member? When is a transaction considered to be old? Can low priority transactions carry a zero fee? Will they be processed in this case?
16.   How much size in each block is reserved for high priority transactions? How are transactions prioritized for the remaining space?
17.   Do transactions expire in Bitcoin? Can transactions disappear in the Bitcoin network? If yes, could you please describe such scenario?
18.   What is a generation transaction? Does it have another name? If it does, what is the other name of the transaction? What is the position of the generation transaction in the block? Does it have an input? Is the input usual UTXO? If not – what is the input called? How many outputs there are for the generation transaction?
19.   What is the Coinbase data? What is it currently used for?
20.   What is little-endian and big-endian formats? Could you please give an example of both?
21.   How is the block header constructed? Which fields are calculated and added to the block header? Could you please describe the steps for calculation of the block header fields?
22.   What is a mantissa-exponent encoding? How is this encoding used in the Bitcoin network? What is the difficulty target? What is the actual process of mining? What kind of mathematical calculation is executed to conduct mining?
23.   Which hash function is used in the Bitcoin mining process?
24.   Could you describe the PoW algorithm? What features of the hash function does it depend on? What is the other name of the hash function? What is a nonce? How can we increase the difficulty of the PoW calculation? What do we need to change and how do we need to change this parameter?
25.   What is difficulty bits notation? Could you please describe in details how it works? What is the formula for the difficulty notation?
26.   Why is difficulty adjustable? Who adjusts it and how exactly? Where is the adjustment made? On which node? How many blocks are taken into consideration to predict the next block issuance rate? What is the change limitation? Does the target difficulty depend on the number of transactions?
27.   How is a new block propagated in the network? What kind of verification does each node do? What is the list of criteria for the new block? What kind of process ensures that the miners do not cheat?
28.   How does a process of block assembly work? What are the sets of blocks each full node have? Could you please describe these sets of blocks?
29.   What is a secondary chain? What does each node do to check this chain and perhaps to promote it to the primary chain? Could you please describe an example when a fork occurs and what happens?
30.   How quickly forks are resolved most of the time? Within how many new block periods?
31.   Why the next block is generated within 10 minutes from the previous? What is this compromise about? What do designers of the Bitcoin network thought about when implementing this rule?
32.   What is a hashing race? How did Bitcoin hashing capacity has changed within years from inception? What kind of hardware devices were initially used and how did the HW utilization evolved? What kind of hardware is used now to do mining? How has the network difficulty improved?
33.   What is the size of the field that stores nonce in the block header? What is the limitation and problem of the nonce? Why was an extra nonce created? Was there any intermediate solution? If yes, what was the solution? What are the limitations of the solution?
34.   What is the exact solution for the extra nonce? Where does the new space come from? How much space is currently used and what is the range of the extra nonce now?
35.   What is a mining pool? Why was it created? How are normally such pools operated? Do they pay regularly to the pool participants? Where are newly created Bitcoins distributed? To which address? How do mining pools make money? How do the mining pools calculate the participation? How are shares earned calculated?
36.   What is a managed pool? How is the owner of the pool called? Do pool members need to run full nodes? Explain why or why not?
37.   What are the most famous protocols used to coordinate pool activities? What is a block template? How is it used?
38.   What is the limitation of a centralized pool? Is there any alternative? If yes, what is it? How is it called? How does it work?
39.   What is a consensus attack? What is the main assumption of the Bitcoin network? What can be the targets of the consensus attacks? What can these attacks do and what they cannot do? How much overall capacity of the network do you have to control to exercise a consensus attack?
Chapter 9: Alternative Chains, Currencies and Applications.
1.   What is the name of alternative coins? Are they built on top of the Bitcoin network? What are examples of them? Is there any alternative approach? Could you please describe some alternatives?
2.   Are there any alternatives to the PoW algorithm? If yes – what are the alternatives? Could you please name two or three?
3.   What is the operation of the Script language that is used to store a metadata in Bitcoin blockchain?
4.   What is a coloured coin? Could you please explain how it is created and how it works? Do you need any special SW to manage coloured coins?
5.   What is the difference between alt coins and alt chains? What is a Litecoin? What are the major differences between the Bitcoin and Litecoin? Why so many alt coins have been created? What are they usually based on?
6.   What is Scrypt? Where is it used and how is it different from the original algorithm from which it has been created?
7.   What is a demurrage currency? Could you please give an example of one blockchain and crypto currency that is demurrage?
8.   What is a good example of an alternative algorithm to PoW? What is it called and how is it different from the PoW? Why the alternatives to Bitcoin PoW have been created? What is the main reason for this? What is dual-purpose PoW algorithms? Why have they been created?
9.   Is Bitcoin “anonymous” currency? Is it difficult to trace transactions and understand someone’s spending habits?
10.   What is Ethereum? What kind of currency does it use? What is the difference from Bitcoin?
Chapter 10: Bitcoin security.
1.   What is the main approach of Bitcoin security?
2.   What are two common mistakes made by newcomers to the world of Bitcoin?
3.   What is a root of trust in traditional security settings? What is a root of trust in Bitcoin network? How should you assess security of your system?
4.   What is a cold storage and paper wallet?
5.   What is a hardware wallet? How is it better than storing private keys on your computer or your smart phone?


The github link for questions and answers is here:
https://github.com/userbtc/crypto_developer_questions.git

Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
1539774854
Hero Member
*
Offline Offline

Posts: 1539774854

View Profile Personal Message (Offline)

Ignore
1539774854
Reply with quote  #2

1539774854
Report to moderator
1539774854
Hero Member
*
Offline Offline

Posts: 1539774854

View Profile Personal Message (Offline)

Ignore
1539774854
Reply with quote  #2

1539774854
Report to moderator
1539774854
Hero Member
*
Offline Offline

Posts: 1539774854

View Profile Personal Message (Offline)

Ignore
1539774854
Reply with quote  #2

1539774854
Report to moderator
buwaytress
Hero Member
*****
Online Online

Activity: 770
Merit: 703


I bit, therefore I am


View Profile
September 04, 2018, 03:41:27 PM
 #2

Here's my take on blockchain recruitment. I'm neither a HR practitioner nor a blockchain development expert, but have recruited people across various fields and a test, especially for programming, is absolutely necessary (in addition to standard HR screening and nowadays personality make up). I've now encountered programmers in this space who don't even seem to grasp the basics, never mind use a programming language.

However, there's no better test than to give them a task or exercise, or problem to solve. I imagine with blockchain programming, there's plenty of examples to use. Give them a broken script, or a flawed smart contract. Or ask them to write a few lines of code to achieve something simple.

Cause as you revealed, most of those questions are derived from 1 book... someone motivated enough could research and answer easily.

ETFbitcoin
Legendary
*
Online Online

Activity: 1470
Merit: 1191


Use SegWit and enjoy lower fees


View Profile WWW
September 04, 2018, 04:41:12 PM
 #3

I've no idea about how to recruit developer, but there are few obvious things that you should think/consider :
1. Not all of the question is related to Bitcoin such as questions on Chapter 9
2. There are few answer which is asking for opinion (such as Ch. 10 Q. 1 and Ch. 2 Q. 2), unless you specifically want to know about developer's view
3. Just like member above me, test them by solve a problem, find a bug or make efficient short script should be better/more effective

But if you specifically want to list of question or need other bitcoin's book/reference, my post in past might help

Since you have intermediate blockchain knowledge, surely these lists shouldn't too difficult for you :
https://github.com/decrypto-org/blockchain-papers
https://github.com/coderplex/awesome-blockchain

You also could check these cryptocurrency specific lists, but might be difficult for you (and me) :
https://github.com/igorbarinov/awesome-bitcoin
https://github.com/Scanate/EthList
https://github.com/jashmenn/bitcoin-reading-list

The lists i mentioned aren't courses, but i'm sure you would get more knowledge/info with shorter time.

███           ▄▄▄                          ███
███           ███    ▄█                    ███
███ ▄▄▄▄▄▄          ▄██▄▄▄▄      ▄▄▄▄▄     ███        ▄██▄    ▄▄▄         ▄▄▄
███████████▄  ███ ▐████████  ██▄███████▄   ███       ██████    ███       ███▀
███▀    ▀███▌ ███   ███      ███▀    ▀███  ███      ████████    ███     ███▀
███      ▐██▌ ███   ███      ███      ███  ███     ██▀    ▀██    ███   ███▀
███      ▐██▌ ███   ███      ███      ███  ███    ███      ███    ███ ███▀
███▄    ▄███▌ ███   ███▄     ███▄    ▄███  ███   ████▄    ▄████    █████▀
███████████▀  ███   ▀██████  ███████████▀  ███  ████████████████    ███▀
▀▀▀ ▀▀▀▀▀▀    ▀▀▀     ▀▀▀▀▀  ███ ▀▀▀▀▀▀    ▀▀▀   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀    ███▀
                             ███       ▄▄▄ ▄   ▄  ▄ ▄▄▄          ▄███▀
                             ███      █    █   █  █ █▄▄▀      █████▀
                             ▀▀▀      ▀▄▄▄ █▄▄ ▀▄▄▀ █▄▄█      ▀▀▀















❱❱
❰❰

mu_enrico
Copper Member
Full Member
***
Offline Offline

Activity: 294
Merit: 229


#GGMU


View Profile WWW
September 07, 2018, 04:12:51 PM
 #4

<...>
However, there's no better test than to give them a task or exercise, or problem to solve. I imagine with blockchain programming, there's plenty of examples to use. Give them a broken script, or a flawed smart contract. Or ask them to write a few lines of code to achieve something simple.

Cause as you revealed, most of those questions are derived from 1 book... someone motivated enough could research and answer easily.

Agree with this statement. OP, you need to get their hands dirty. Ask them to code. A good programmer has to code without thinking about the correct syntax. *I forgot what this stuff called*

I am a shit programmer, but I'm pretty sure I will get a good grade with OP's current test.

Srujan007
Jr. Member
*
Offline Offline

Activity: 102
Merit: 1


View Profile
September 08, 2018, 06:46:47 AM
 #5

I'm learning programming .But after seeing these questions i am quite confident as i can able to answer most of them  Grin Wink
pavka
Member
**
Offline Offline

Activity: 280
Merit: 10

The New Pharma-Centric Marketplace


View Profile
September 08, 2018, 10:38:23 AM
 #6

In my opinion for the developer, it is not so much important to know the answers to all the above questions, how to be able to solve technical problems in practice and be able to find the necessary ways of system development. Any person can learn theory from the textbook, but in practice, not everyone can cope with the tasks set.

Trade Pharma Network     │  New Pharma-Centric Marketplace
[   PRIVATE SALE   ]      │      WHITEPAPER
Linkedin        ⚫ Facebook        ⚫ Twitter        ⚫ Telegram
Strufmbae
Member
**
Online Online

Activity: 168
Merit: 16

Hire me as your assistant with low pay


View Profile
September 09, 2018, 04:26:17 AM
 #7

Is there a direct link that will lead me to all of the answers of those questions?  This is what is supposed to be a fundamental information before entering here,  basic but solid.  There are questions on the last part that i want to know the answer like about mnemonic codes.  And wait,  are you going to ask all of these questions when hiring a developer?

[
user_
Newbie
*
Offline Offline

Activity: 17
Merit: 1


View Profile
September 10, 2018, 08:19:38 AM
 #8

Is there a direct link that will lead me to all of the answers of those questions?  This is what is supposed to be a fundamental information before entering here,  basic but solid.  There are questions on the last part that i want to know the answer like about mnemonic codes.  And wait,  are you going to ask all of these questions when hiring a developer?


The link is added to the first post.
user_
Newbie
*
Offline Offline

Activity: 17
Merit: 1


View Profile
September 10, 2018, 08:37:05 AM
 #9

In my opinion for the developer, it is not so much important to know the answers to all the above questions, how to be able to solve technical problems in practice and be able to find the necessary ways of system development. Any person can learn theory from the textbook, but in practice, not everyone can cope with the tasks set.

I absolutely agree. Probably I should mention that in my view, it was the first step of any developer interview. Since, I believe, each developer needs to be not only a good developer, but also must possess good domain knowledge. So, such questions are testing of the domain understanding before going into programming skills testing.
Or do you think it is better to test programming skills before going into testing of the domain knowledge?
And if so, what do you think are the most suitable programming questions, tailored to cryptocurrency programming?
I believe probably it would make sense to ask questions about algorithms and data structures (Bloom filters for example) or even questions about how to use OpenSSL library for ECC?
Kprawn
Legendary
*
Offline Offline

Activity: 1638
Merit: 1052


View Profile
September 15, 2018, 04:01:13 PM
 #10

I would do a full security background check on these people, before I even start asking these questions. When you consider

that these people might be in charge of the development of software that would control Billions of Dollars worth of

investments, then this must be your first stop.

Satoshi trusted Gavin and look how that turned out.  Roll Eyes  Mike Hearn turned against Bitcoin and joined forces with the

competition. (R3)

You should also enter into some bulletproof contracts to prevent stuff like this from happening in the future.  Roll Eyes

Yes, I agree that a background security check will not prevent people from turning against the project that they are working

on, but it will show if they have some skeletons in the cupboard.  Roll Eyes

Signature space for Hire :->
franky1
Legendary
*
Offline Offline

Activity: 2198
Merit: 1200



View Profile
September 16, 2018, 12:28:56 AM
 #11

over 150 numbered questions but some of them have more than one question per number.. Dang thats alot.
but it still doesnt really test true knowledge. any random person with no code knowledge could get the answers.

as others have said. get some broken code on a github repo and get the recruit to submit a solution to the problem.

also with those questions, there are more than one correct answer. some may answer it correct in jargon some may answer it in waffled science and some may answer it in ELI-5(common speak)

also your questions, they are too generalised. for instance: "what are bitcoin terms"
possible context the question can be read as:
'what are bitcoins common buzzwords' EG: FOMO, to the moon, REKT, HODL, LAMBO
'what are bitcoins terms and conditions (ethos)' EG: open transparent decentralised
'what are bitcoins consensus terms (rules)' EG: 21mill coin cap, 1mb legacy block 4mb sw weight block

anyway, its far better to see a persons coding by requesting they do something. or show a project they already done

and the best devs also comment their code or have supporting ELI-5 documentation so that if they are sick, injured, resign or retire. its easy to understand what they done so that when you find a replacement. the work can continue without much rewriting/restarting issues

I DO NOT TRADE OR ACT AS ESCROW ON THIS FORUM EVER.
Please do your own research & respect what is written here as both opinion & information gleaned from experience. many people replying with insults but no on-topic content substance, automatically are 'facepalmed' and yawned at
AGD
Legendary
*
Offline Offline

Activity: 1706
Merit: 1026


HODLER SINCE 2013


View Profile
September 16, 2018, 05:57:35 AM
 #12

OP wants to write a book about Bitcoin and wants people with knowledge to write it for him .... for free!

Bitcoin is not a bubble, it's the pin!
+++ GPG Public key FFBD756C24B54962E6A772EA1C680D74DB714D40 +++ http://pgp.mit.edu/pks/lookup?op=get&search=0x1C680D74DB714D40
einax_oliver
Newbie
*
Offline Offline

Activity: 19
Merit: 0


View Profile WWW
September 17, 2018, 08:00:58 AM
 #13

My 2 cents:

To persuade people to answer all of those you have to be really transparent about your offer. I mean some of those questions do not have a simple answer and even senior level engineer won't be able to pinpoint correct answer without making a quick google search.
This sort of list will only be effective if you sit right next to the candidate answering questions. Otherwise, you will receive generic bitcoin wiki answers most of the time.
Unless you understand bitcoin on the same level, you are likely will be unable to distinguish if your candidate has deep knowledge of just general understanding.

I feel that fewer broad questions that will provoke healthy subject discussion would bear much better results. You can ask your candidate to describe what steps they will take to create basic payment service based on Bitcoin. Or how would they handle deposits from a few thousand users? How to consolidate funds on your hot wallet? Usually, people with real experience will immediately begin to tell you stories from their past, dive into detail and open up. 
user_
Newbie
*
Offline Offline

Activity: 17
Merit: 1


View Profile
September 17, 2018, 08:13:18 AM
 #14

over 150 numbered questions but some of them have more than one question per number.. Dang thats alot.
but it still doesnt really test true knowledge. any random person with no code knowledge could get the answers.

as others have said. get some broken code on a github repo and get the recruit to submit a solution to the problem.

also with those questions, there are more than one correct answer. some may answer it correct in jargon some may answer it in waffled science and some may answer it in ELI-5(common speak)

also your questions, they are too generalised. for instance: "what are bitcoin terms"
possible context the question can be read as:
'what are bitcoins common buzzwords' EG: FOMO, to the moon, REKT, HODL, LAMBO
'what are bitcoins terms and conditions (ethos)' EG: open transparent decentralised
'what are bitcoins consensus terms (rules)' EG: 21mill coin cap, 1mb legacy block 4mb sw weight block

anyway, its far better to see a persons coding by requesting they do something. or show a project they already done

and the best devs also comment their code or have supporting ELI-5 documentation so that if they are sick, injured, resign or retire. its easy to understand what they done so that when you find a replacement. the work can continue without much rewriting/restarting issues

Thank you for the suggestions. The number of questions is big, but it was considered to be a pool, from which to pull questions randomly or not so randomly (for example several questions from each chapter, starting from simple and going into more complex). And absolutely, some of the questions do not have single answers, but are rather generic questions which will have many different and nevertheless correct answers.
buwaytress
Hero Member
*****
Online Online

Activity: 770
Merit: 703


I bit, therefore I am


View Profile
September 17, 2018, 10:03:38 AM
 #15


and the best devs also comment their code or have supporting ELI-5 documentation so that if they are sick, injured, resign or retire. its easy to understand what they done so that when you find a replacement. the work can continue without much rewriting/restarting issues

This, much appreciated from any aspect of the community that would actually spend time reading the documentation down the line, if not most appreciated by the project owners.

Didn't realise there was ELI5, that is precisely how any public documentation should reside. Language competency in English is an issue too, if you don't make it easy for people to understand your tech, you'll alienate really good developers/programmers who don't speak English as a first language.

r1s2g3
Member
**
Offline Offline

Activity: 322
Merit: 94


View Profile
September 18, 2018, 03:23:13 AM
 #16

Look like OP do not have any blockchain programming experience that's why OP tend to go in purely bookish knowledge.

+1 with franky,einax_oliver anf buwyatress.

If your developer is experienced, then apart from bookish knowledge and some programming skills you will ask some practical questions as below.

You encountered problem "X" , how you will start debugging it?
Most challenging problem you faced till now, and how you had solved it?
In how many ways you can solve this problem Z?


 
davisagughalam
Jr. Member
*
Offline Offline

Activity: 111
Merit: 1


View Profile
September 20, 2018, 04:44:24 PM
Merited by bones261 (1)
 #17

One thing that has to be noted during these interviews is that nobody can know all. Most programming recruitment interviews are just to make sure you understand the basics of the job be it blockchain development or other forms of development. This is the case because as long as you have the basics, there Are a thousand and one resource materials and even already made code on the web to achieve whatever you want to achieve. You just need the understanding to be able to put them to use. Asking interviewees write simple code to test logic or find bugs is a way to go about testing their basic understanding.

★ PRiVCY ➢ Own Your Privacy! ➢ Best privacy crypto-market! ★
✈✈✈[PoW/PoS]✅[Tor]✅[Airdrop]✈✈✈ (https://privcy.io/)
Pages: [1]
  Print  
 
Jump to:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!