The following are technological building blocks for all computer network systems and the development of solutions that rely on them, and all developers and engineers are expected to continuously expand their understanding in all of the following:
• IP (Internet Protocol), the OSI Model, the technical meaning, purpose, and differences between:
• Systems for routing and filtering of internet traffic, including the general operating concepts of: IPv4, IPv6, MAC addressing, IP addressing, Subnets (and their masks), VLANs, Firewalls, Routers, Switches.
• Systems for data and traffic caching, including the general operating concepts of: Cloudflare and other CDNs, Built-in browser caches, Bespoke application specific caches, Proxy servers, and Transparent Proxy Servers.
• As just about everything today is running over HTTP(S), some detailed knowledge here is essential, including: GET, POST, PUT, Headers, Body, Bearer Token, Requests, Responses, Status Codes, Cookies.
• An understanding of how binary digits become bytes, how bytes become characters, how characters become files and documents. Specifically the concept of "Binary File" vs "Text File", and the concepts of character encodings, endianness, ASCII, UTF.
• An understanding of the separations and techniques that exist between a physical computer, virtualised computers, underlying hypervisors and operating systems, containerisation and de-centralisation, expanding into dynamically scalable systems like Kubernetes.
• Databases. Databases are the cornerstone of the commercial usefulness of computers. Concepts of Tables, Fields, Data types, Relational Database, Indexes, Hashing, Storage requirements, performance trade-offs, and what is SQL, what is NoSQL, what is Graph, what are key-value pairs. Database access controls and "row level security".
• File formats and methods of data-exchange. What is XML and an XML Schema, what is a JSON Document and what is compression. How does this all relate to the nominal definitions of "Text", "Binary" and "Character Encoding".
• Encryption, Authentication, Security, Obscurity, Trust and Zero-Trust. In encryption, the differences between symmetric encryption, asymmetric encryption, meaning of " public key", "private key", "certificates", "certificate chain", "secure hashing" and "signing". The goal here is not simple memorisation of the text book definitions, but you must be able to demonstrate that you understand how these things have to come together to establish "trust" in a "zero-trust" environment, and then to appreciate the details where this maps into an authentication handshake and call-back that gives permission to clients to access our systems.
• Linux underpinnings of most of the modern cloud. Underlying user, group and filesystem concepts. Further concepts of services, daemon, inter-process communication, process management, socket management, traditional file structure (/etc, /home, /usr, /root, /opt), filesystem mounts, nfs, and more.
• Windows underpinnings of the rest of the modern cloud. Control Panel, Event Logs, user, group and filesystem concepts. Windows flavour of services, daemons, inter-process communication, process management, socket management, and the Windows traditional file structure (\Program Files, \Program Files (x86), \ProgramData, \Users, \Users\\AppData)
• Environment Variables, “Environments” as a concept, in a Linux context, Windows context, Postman context, Lambda context.
• Concept of “context” and “scope”. Deep understanding of this!
• Concepts of “synchronous” and “asynchronous” implementations and system design. Deep understanding of this!
TCP, UDP, DNS, HTTP, HTTPS, SMTP, FTP and SSH. : 1 to 2 years
IPv4, IPv6, MAC addressing, IP addressing, Subnets (and their masks), VLANs, Firewalls, Routers, Swi : 1 to 2 years
GET, POST, PUT, Headers, Body, Bearer Token, Requests, Responses, Status Codes, Cookies. : 1 to 2 years