├── CONTRIBUTION.md ├── EDUCATION.md ├── EXPERIENCE.md ├── LICENSE ├── PROJECTS.md ├── RATES.md ├── README.md ├── SKILLS.md └── TALKS.md /CONTRIBUTION.md: -------------------------------------------------------------------------------- 1 | # List of open-source contribution 2 | -------------------------------------------------------------------------------- /EDUCATION.md: -------------------------------------------------------------------------------- 1 | # Education 2 | 3 | - Kiev Polytechnic Institute 4 | - Metarhia free educational program 5 | -------------------------------------------------------------------------------- /EXPERIENCE.md: -------------------------------------------------------------------------------- 1 | # Experience 2 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 HowProgrammingWorks 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /PROJECTS.md: -------------------------------------------------------------------------------- 1 | # List of projects 2 | -------------------------------------------------------------------------------- /RATES.md: -------------------------------------------------------------------------------- 1 | # Rates 2 | 3 | - Development 4 | - Consulting 5 | - Code review 6 | - Talks 7 | - Educational programs 8 | - etc. 9 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 🎓 Student: KPI / IM-11 2 | ⚪ Community: Metarhia 3 | 👷 Speciality: Software engineer / Backend
4 | 💡 [Skills](SKILLS.md) 5 | 🧻 [Projects](PROJECTS.md) 6 | 📢 [Public talks: 0](TALKS.md) 7 | 👀 [Open-source contribution](CONTRIBUTION.md)
8 | 🧑‍💻 Languages: JavaScript, C++ 9 | 📦 Tech stack: node.js 10 | 🪙 [Rates](RATES.md)
11 | 💬 telegram: [@your-nikname](https://telegram.me/your-nikname) 12 | 📫 [your-email](mailto:your-email) 13 | -------------------------------------------------------------------------------- /SKILLS.md: -------------------------------------------------------------------------------- 1 | # Personal profile of software engineering skills 2 | 3 | ⬜ Optional, 🟦 Required for all, 🟨 Required for js, 🟩 Learned, 🟥 Declined 4 | 5 | ## Fundamental concepts 6 | 7 | | Syntax | Statements | Functions | Data structures | Process & style | 8 | |----------------------|-----------------------|-----------------------|---------------------|----------------------| 9 | | 🟦 value | 🟦 if | 🟦 recursion | 🟦 array | 🟦 refactoring | 10 | | 🟦 identifier | 🟦 loops | 🟦 function | 🟦 instance | 🟦 code review | 11 | | 🟦 variable | 🟦 assignment | 🟦 return | 🟦 object | 🟦 antipatterns | 12 | | 🟦 constant | 🟨 prototype | 🟦 signature | 🟦 collection | 🟦 paradigm | 13 | | 🟦 scalar | 🟦 class | 🟦 argument | 🟦 hash table | 🟦 algorithm | 14 | | 🟦 literal | 🟦 while | 🟦 parameter | 🟦 linked list | 🟦 magic numbers | 15 | | 🟦 expression | 🟦 do..while | 🟦 pure function | 🟦 queue | 🟦 hardcode | 16 | | 🟦 heap | 🟦 for | 🟦 lambda | 🟦 stack | 🟦 complexity | 17 | | 🟦 type | 🟨 for..in | 🟦 side effects | 🟦 deque | 🟦 decomposition | 18 | | 🟦 primitive types | 🟨 for..of | 🟦 closure | 🟦 serialization | ⬜️ spaghetti | 19 | | 🟦 reference | 🟨 for await | 🟦 partial | 🟦 mixin, extend | ⬜️ silver bullet | 20 | | 🟦 flag | 🟦 throw | ⬜️ curry | 🟨 iterator | ⬜️ not invented here | 21 | | 🟦 lexical scope | 🟦 try..catch | 🟦 chaining | 🟨 typed arrays | 🟦 dead code | 22 | | 🟦 code block | 🟦 equality operators | 🟦 higher order | 🟨 Map | 🟦 unreachable code | 23 | | 🟨 Object | 🟦 logical operators | 🟦 callback | 🟨 Set | 🟦 duplicate code | 24 | | 🟨 this | 🟦 bitwise operators | 🟦 listener | ⬜️ weak collections | 🟦 exception | 25 | | 🟨 arrow function | 🟦 break, continue | ⬜️ pipe | ⬜️ Proxy | 🟦 return early | 26 | | 🟨 generator | 🟦 switch | ⬜ compose | ⬜️ Symbol | 🟦 linter | 27 | | 🟨 async function | 🟨 new Error | ⬜️ memoize | 🟨 string parsing | ⬜️ prettier | 28 | | 🟨 call, bind, apply | | 🟦 factory | 🟨 timers | 🟦 unittest | 29 | | 🟨 Array | | 🟦 pool | 🟨 EventEmitter | 🟦 git | 30 | | 🟨 instanceof | | 🟦 wrapper | 🟨 RegExp | 🟦 github | 31 | | 🟨 ...spread | | 🟨 default parameters | 🟨 global | 🟨 node.js | 32 | | 🟨 ...rest | | | 🟨 undefined | 🟨 npm | 33 | | 🟨 typeof | | | 🟦 null | | 34 | 35 | ## Multi-paradigm programming 36 | 37 | | Theory | OOP basics | Abstractions | Patterns | 38 | |--------------------------------|-----------------------|----------------------|--------------------------| 39 | | 🟦 Procedural programming | 🟦 constructor | ⬜ struct, record | 🟦 Singleton | 40 | | 🟦 Imperative programming | 🟦 new | ⬜ Mutable state | | 41 | | 🟦 Structured programming | 🟦 Static method | ⬜ Immutable state | | 42 | | 🟦 Non-structured programming | 🟦 Method | ⬜ Enum | | 43 | | 🟦 Functional programming | 🟦 Async method | 🟦 Linked list | | 44 | | 🟦 Prototype-based programming | 🟦 Getters, Setters | 🟦 Doubly list | | 45 | | 🟦 Object-oriented programming | 🟦 Public fields | 🟦 Unrolled list | | 46 | | ⬜ Object-based programming | 🟦 Private fields | 🟦 Circular list | | 47 | | 🟦 Generic programming | 🟦 Field declarations | 🟦 Trees | | 48 | | 🟦 Concurrent computing | 🟦 Inheritance | 🟦 Graphs | | 49 | | 🟦 Asyncronous programming | 🟦 Parent class | 🟦 Functor | | 50 | | 🟦 Parallel programming | 🟦 Polymorphism | 🟦 Functional object | | 51 | | 🟦 Reactive programming | 🟦 Abstract class | ⬜ Monad | | 52 | | ⬜ FRP (Functional-reactive) | 🟦 Interface | 🟦 Generator | | 53 | | 🟦 Automata-based programming | 🟦 Encapsulation | 🟦 Iterator | | 54 | | 🟦 Domain-specific languages | ⬜ Hidden class | 🟦 Async Iterator | | 55 | | 🟦 Multi-paradigm programming | ⬜ Object form | | | 56 | | ⬜ Metaprogramming | 🟦 instance | | | 57 | | ⬜ Actor model | ⬜ Introspection | | | 58 | | | ⬜ Reflection | | | 59 | 60 | ## Asynchronous programming 61 | 62 | | Async contracts | JavaScript & Node.js specific | Theory | Techniques | 63 | |------------------------|--------------------------------|---------------------|--------------------------| 64 | | 🟦 Callback-last | 🟦 Timers | 🟦 Event Loop | ⬜ async.js library | 65 | | 🟦 Error-first | 🟦 setImmediate | 🟦 Async error | ⬜ Async composition | 66 | | 🟦 Promise | 🟦 nextTick | 🟦 try..catch | ⬜ Rx.js | 67 | | 🟦 Async function | 🟦 AbortController | 🟦 Non-blocking | 🟦 Sequential async | 68 | | 🟦 await | 🟦 Promise unhandled rejection | 🟦 Async I/O | 🟦 Parallel async | 69 | | 🟦 Generator | 🟦 Promise double resolve | 🟦 Pattern Reactor | 🟦 Promise.all | 70 | | 🟦 Async Generator | 🟦 child_process | ⬜ CAS operations | 🟦 Promise.allSettled | 71 | | 🟦 Async Iterator | 🟦 worker_threads | ⬜ epoll | 🟦 Promise.race | 72 | | 🟦 Thenable | 🟦 Atomics | ⬜ kqueue | 🟦 Promise.any | 73 | | 🟦 EventEmitter | 🟦 Blockeing operations | ⬜ Completion ports | ⬜ Web Locks API | 74 | | ⬜ Cancelable callback | 🟦 Non-blocking loop for Array | ⬜ Event ports | ⬜ Async Pool | 75 | | ⬜ Cancelable Promise | ⬜ High resolution clock | 🟦 libuv | ⬜ Thread Pool | 76 | | 🟦 Asynchronous Queue | 🟦 Callback hell | 🟦 Race conditions | 🟦 callbackify | 77 | | ⬜ Future | 🟦 Promise hell | 🟦 Dead locks | 🟦 promisify | 78 | | ⬜ Deferred | | 🟦 Live locks | ⬜ IPC | 79 | | 🟦 Observer | | ⬜ Actor Model | ⬜ Channel API | 80 | | ⬜ Async Collector | | | ⬜ Revealing Constructor | 81 | | ⬜ Coroutine | | | | 82 | | ⬜ Goroutine | | | | 83 | 84 | ## Node.js and backend 85 | 86 | | Internals | Theory | Network | Technique | Problems | 87 | |----------------------|------------------------------|-------------------|------------------|----------------------| 88 | | 🟦 Nonblocking I/O | 🟦 I/O bound tasks | 🟦 HTTP(S) | 🟦 Logging | 🟦 Memory leaks | 89 | | 🟦 Event Loop | 🟦 CPU bound tasks | 🟦 TCP/SSL | 🟦 Testing | 🟦 Resource leaks | 90 | | 🟦 commonjs | 🟦 Memory bound tasks | 🟦 UDP | ⬜ CI/CD | 🟦 Blocking code | 91 | | 🟦 ECMA modules | 🟦 Multilayer approach | 🟦 TLS | 🟦 Readable | 🟦 Data race | 92 | | 🟦 Network API | 🟦 Separation of concerns | 🟦 Websocket | 🟦 Writable | 🟦 Graceful Shutdown | 93 | | ⬜ Addons | 🟦 Inversion of control | ⬜ SSE | 🟦 Transform | 🟦 Dependencies | 94 | | ⬜ N-API | 🟦 Dependency injection | ⬜ HTTP/3 (QUIC) | ⬜ back pressure | | 95 | | ⬜ Webassembly | 🟦 GRASP for JS and Node.js | ⬜ Long polling | 🟦 Buffer | | 96 | | 🟦 npm | 🟦 SOLID for JS and Node.js | 🟦 REST | 🟦 Console | | 97 | | 🟦 node_modules | 🟦 GoF for JS and Node.js | 🟦 RPC | 🟦 Inspector | | 98 | | 🟦 package.json | ⬜ Distributed systems | 🟦 Routing | 🟦 Reliability | | 99 | | 🟦 vm isolation | ⬜ Highload applications | 🟦 IP sticky | 🟦 Quality | | 100 | | 🟦 command line args | 🟦 DDD | 🟦 DoS | 🟦 Availability | | 101 | | ⬜ Node.js CLI | 🟦 Clean architecture | 🟦 DDoS | 🟦 Flexibility | | 102 | | 🟦 Streams | 🟦 Domain in the middle | 🟦 XSS | | | 103 | | 🟦 Clustering | 🟦 Message Queue | 🟦 Path traversal | | | 104 | | ⬜ Load balancing | 🟦 Transport-agnostic server | 🟦 CSRF | | | 105 | | ⬜ Serverless clouds | 🟦 Framework-agnostic app | 🟦 DNS | | | 106 | | ⬜ FaaS clouds | ⬜ Interactive applications | 🟦 Fetch | | | 107 | | 🟦 Debugging node.js | ⬜ Real-time applications | 🟦 zlib | | | 108 | | 🟦 crypto | 🟦 CQS and CQRS | | | | 109 | | ⬜ SharedArrayBuffer | 🟦 Event Sourcing | | | | 110 | | 🟦 child_process | 🟦 Shared memory | | | | 111 | | 🟦 worker_threads | | | | | 112 | 113 | ## Other skills 114 | 115 | - ⬜ Cybersecurity 116 | - ⬜ TDD 117 | - ⬜ Quality 118 | - ⬜ Mobile applications 119 | - ⬜ High-performance computing 120 | - ⬜ Edge computing 121 | - ⬜ Data warehouse 122 | - ⬜ Low-code and no-code platforms 123 | -------------------------------------------------------------------------------- /TALKS.md: -------------------------------------------------------------------------------- 1 | # List of public talks 2 | --------------------------------------------------------------------------------