Menu logo

Thoughts on Software Engineering

I am Teaching the Blockchain Dev Camp Sofia (Jan-March 2018) – Intensive 240 Hours Training

I am happy to announce that I will teach the first 6-week long intensive Blockchain Dev Camp, which will be held in Sofia in the Software University from 29 Jan 2018. To enroll, visit the course official site:

Blockchain Dev Camp – Sofia (Feb 2018)

The developer camp will teach the blockchain technologies from the developer perspective with a lot of coding every day. It will take 6 weeks x 8 hours / day (240 hours total).

What is the Blockchain Dev Camp?

The Blockchain Dev Camp is 6-week long intensive training for blockchain developers. It takes existing developers with at least basic coding skills and will turn them into blockchain developers (junior level), who is able to work on blockchain projects, such as blockchain network development, cryptocurrency development, wallet development, crypto-trading platform development, smart contract development, DApps development, developing the technical side of ICO campaigns and many others.

The blockchain developer camp is currently in beta (testnet) and is held for its first time in Sofia. After the team behind this project get more experience and collect feedback, the teaching content will be improved and the Camp will be held in many cities across the world, as well in online format.

Our Curriculum for Blockchain Developers

A major goal in our curriculum design in the principle “learn by doing“, so the camp attendees will write code and will do practical work every day. The course content is structured in 6 weeks: 4 weeks of teaching + exercises and 2 weeks of developing practical projects.

Week 1: Blockchain Fundamentals

Deep understanding of distributed ledger technologies (DLT), blockchain networks, blocks and transactions, consensus algorithms, cryptography, crypto wallets, exchanges and mining.

Day 1: Basics of Blockchain

  • Blockchain technology overview: blockchain networks, cryptocurrencies, wallets, smart contracts, DApps.
  • Writing a simple blockchain network: live coding.

Day 2: Cryptography, Decentralization and Consensus Protocols

  • Blockchain cryptography: elliptic curve cryptography (ECC), secp256k1, private keys, public keys, addresses, ECDSA, hashing algorithms, digital signatures.
    Proof-of-work (PoW), proof-of-Stake (PoS), delegated proof-of-stake (DpoS) and other decentralized consensus algorithms, preventing double spending, the 51% attack.
  • Cryptography and blockchain consensus: live coding.

Day 3: Cryptocurrency Wallets, Transactions and Exchanges

  • Understanding wallets, hierarchical deterministic wallets and key derivation (HD wallets, BIP-39, BIP-44 standards), hardware wallets, paper wallets, wallet software, online wallets.
  • Building a wallet, wallet APIs, generating keys, using mnemonics, sending transactions: live coding.

Day 4: Cryptocurrency Mining

  • Understanding the mining process in the proof-of-work systems, mining concepts, mining software, mining pools, mining hardware and software.
  • Building a simple miner: live coding.
  • Mining Ethereum and Monero: practice.

Day 5: Review of the Week #1

  • Weekly quiz, next week overview, questions and answers.
  • Completing all unfinished weekly assignments: live coding.

Week 2: Blockchain Advanced Concepts

  • Understanding blockchain networks and distributed ledger technologies (DLT) in details: scalability, performance and security aspects, side channels, zero-knowledge proofs, basics of Ethereum and crypto-tokens, introducing some notable blockchain projects.

Day 6: Ethereum and Crypto-Tokens

  • Overview of the Ethereum networks and the concepts of smart contracts, crypto-tokens, ERC20 tokens, ICO and token sale events, using Ethereum wallets.
  • Playing with ERC20 tokens: practice.
  • Creating and token sale ERC20 contracts and Web site: practice.

Day 7: Optimizing a Blockchain Network

  • Sidechains and off-chain transactions, Bitcoin-NG, SegWit.
  • Implementing a sidechain: live coding.

Day 8: Security and Anonymity in the Blockchain

  • Blockchain security, wallets security, cold wallets, smart contract security, the DAO hack, parity hacks.
  • Privacy on the blockchain, zero knowledge proofs, confidential transactions, privacy coins.
  • Transactions with Dash and Monero: practice.

Day 9: Notable Blockchain Projects (DApps Examples)

  • Review of some notable blockchain projects: Steem, Storj, Lockchain, AdeX, Propy, Maidsafe, Augur, Gnosis, Aragon.
  • Mining Storj by providing HDD space on your computer: practice.
  • Using Storj and Cindicator: practice.

Day 10: Review of the Week #2

  • Weekly quiz, next week overview, questions and answers.
  • Completing all unfinished weekly assignments: live coding.

Week 3: Smart Contracts, Solidity and DApps

  • Develop decentralized blockchain apps (DApps) using smart contracts in the Ethereum network, writing Solidity code and interacting with the Ethereum blockchain network through the Web3 API.

Day 11: Smart Contracts, Ethereum VM and DApps

  • DApps: architecture, use cases, Ethereum VM and Solidity.
  • Deploying a smart contract on the Ethereum Ropstein testnet: live coding.

Day 12: First Steps in Solidity

  • Detailed introduction to Solidity programming: contracts, functions, data types, variables, conditionals, loops, maps, etc. Using the Remix IDE to compile, deploy, run and debug smart contracts.
  • Writing Solidity contracts: live coding.

Day 13: Writing Smart Contracts in Solidity

  • Writing non-trivial smart contracts in Solidity, coding own assets, tokens, ERC20 tokens, using development tools and frameworks like solc, testrpc and Truffle. Using MetaMask to interact with the Ethereum testnet.
  • Creating an ERC20 tokens: live coding.

Day 14: Building DApps with Ethereum

  • Using the Web3 API and other libraries to interact with the Ethereum network. Creating Web apps that connect smart contracts with traditional Web development.
  • Creating a certificate repository DApp: live coding.

Day 15: Review of the Week #3

  • Weekly quiz, next week overview, questions and answers.
  • Completing all unfinished weekly assignments: live coding.

Week 4: Advanced Smart Contract Development

  • Advanced blockchain and smart contract development using Ethereum, RSK and Hyperledger.

Day 16: More Complicated Smart Contracts

  • Advanced topics in smart contract development: upgradable contracts, unit testing, security concerns.
  • Upgradable contracts and unit testing: live coding.

Day 17: Smart Contracts for Bitcoin with RSK

  • Introduction to the RSK sidechain. Building smart contracts in the Bitcoin RSK network using Solidity and the RSK platform.
  • Smart contracts in RSK: live coding.

Day 18: Corporate Blockchain Platforms

  • Corporate blockchain platforms and Hyperledger. Introduction to Hyperledger Fabric.
  • Smart contracts in Hyperledger Fabric: live coding.

Day 19: Corporate Blockchains: Practical Project

  • Practical project: DApp development with Hyperledger Fabric, building the smart contract and the Web app to interact with it.

Day 20: Review of the Week #4

  • Weekly quiz, next week overview, questions and answers.
  • Completing all unfinished weekly assignments: live coding.

Week 5: Practical Blockchain Team Project

The practical teamwork blockchain project aims to get more solid blockchain development experience by creating a practical blockchain project in a team of 2-4 developers using languages, technologies, framework and APIs of choice. Developers are expected to work in teams in order to share experience and help each other and create bigger and more interesting projects.

Sample practical projects:

  • Cryptocurrency development: clone an existing cryptocurrency / blockchain network / distributed ledger network, change the consensus algorithm, modify the wallet software, launch a testnet and interact with it.
  • Wallet development: design and implement a wallet software, to keep private keys and crypto-coins / tokens, to sign and send transactions, to track accounts and balances, etc.
  • DApp development: design and implement a decentralized DApp, e.g. to remove the middleman in a certain business or provide a smart way to interact in a decentralized way. Design and implements the smart contracts, the back-end services and front-end for the application logic and the logic to interact with the smart contract.
  • Crypto-asset exchange development: design and implement a crypto-asset exchange Web app, to keep securely user’s crypto-assets (coins and tokens) using a client-side / server-side wallet, trade / exchange / interact with the crypto-assets.

Week 6: Individual Final Blockchain Project

Course attendees demonstrate the skills learned from the course by developing an individual final practical blockchain project. It might be like the teamwork project, but smaller and simpler or completely different project in respect to the attendee’s personal interests.

What Shall You Learn?

Course attendees will gain practical skills in blockchain development:

  • Deep understanding of blockchain networks and cryptocurrencies
  • Implement blockchain consensus algorithms like PoW and PoS
  • Designing and coding simple blockchain networks
  • Understand cryptography and interact with crypto wallets
  • Develop smart contracts using Ethereum and Solidity
  • Design and develop decentralized apps (DApps)

The above skills should be enough to start a career as junior blockchain developer.

Entrance Exam

The Blockchain Dev Camp is for existing software developers, who want to upgrade their skills to become blockchain developers. Attendees should have experience is coding and software development.

Course attendees are expected to have a strong familiarity with object-oriented programming, a solid grasp of at least one of the following languages: C++, C#, Java, Python or JavaScript. Experience in Web development and REST APIs is highly recommended. An intermediate understanding of JavaScript will be instrumental in moving forward later in the course.

Course candidates will be invited to pass an entrance programming exam covering the fundamentals of programming and software technologies: variables, loops, arrays and collections, functions, classes and objects, HTTP and REST.

The Blockchain Dev Camp is Free Only While in Beta!

Only the first instance of the Blockchain Dev Camp will be free, only for the period while the course content is in beta. Only a limited number of 50 attendees onsite + 50 attendees online will be invited to participate in the free camp, so take your chance now.

The training team for the beta camp will consist of blockchain developers with teaching experience: a lead trainer (Svetlin Nakov), together with a few teaching assistants (Sevgin Mustafov, Simeon Mandazhiev).

The beta blockchain camp is offered in two formats:

  • Onsite, full time – live coding in class under the training team’s supervision – recommended.
  • Online – based on videos + homework + projects – for extremely experienced developers and fast learners.

All candidates will pass a selection process and only the most motivated will enter the camp!

What’s Next? Blockchain Career?

It will take a lot of hard work to pass the selection process and graduate successfully the Blockchain Dev Camp. Only a few people will graduate, but their award will be rich:

  • Blockchain development job offers for the best graduates who want to write code.
  • Blockchain trainer / assistant  job offer for the best graduates who want to transfer knowledge and skills.

It might be strange if you don’t know that the average blockchain developer incomes are 2-5 times bigger than the average developer incomes, so it is really a good investment of your time and effort to become a blockchain software engineer in 2018.

To attend the camp, apply here: All attendees should pass and entrance exam and should pass our selection process.

Enrollment deadline: 23 Jan 2018.

Good luck!

Comments (2)

2 Responses to “I am Teaching the Blockchain Dev Camp Sofia (Jan-March 2018) – Intensive 240 Hours Training”

  1. Zhan says:

    After enrollment to the course I guess we should wait for you to reach out to these that are selected or am I missing something?

  2. Daniel says:

    Great and helpful event to everyone. Thanks a lot for sharing this amazing topic.

RSS feed for comments on this post. TrackBack URL