10X Engineering: A Series
About the series
This series is an initiative for the engineering community to learn, share and grow together in a journey of professional and personal excellence with the spirit of 10X. We will share this via blogs, references, masterclasses, live streaming and podcasts. It will be done with partnership of friends and community. This is an evolving and live content.
Subscribe to our newsletter for updates.
About me
Hi you may call me Ayush. I am the author and the facilitator of this series. Here I will take you through a journey of exploration of the wonderful and exciting world of technology.
For me engineering is a craft I enjoy very much. I also wear other hats like a founder, innovator, teacher, mentor, family, friend and of course eventually everything human! :-)
By virtue of intention, effort and destiny's touch, I landed in IIT Kanpur in 2002 to study engineering. And by stroke of destiny, I landed in Computer Science department while I wanted to originally take up aeronautics. That's another story. I will be sharing more of my journey through stories as we progress in this series. But here I want so state that couple of times in my lifetime, I considered moving out of tech to pursue other callings like MBA. I am so glad I choose to stay invested in tech. It continues to be my way of expression, innovation and service to the world. I built or continue to build somethings I feel very satisfied about.
For me tech is my ikigai. It does four things for me: I love to play with it. It earns me livelihood. It helps me grow. It is also my means to serve the society.
I founded Godspeed for the mission to democratise technology for the tech ecosystem in a collaborative manner. This series is as much part of the mission as is the tools that we make for the same purpose.
I am starting this series to share what I have learned with the world. Here I will focus on the path of tech, its purpose and engineering.
I will be maintaining the content of this particular series and run this program called 10X Engineer, aimed primarily for tech professionals, students and innovators, who are equally desirous of learning and growing in their journey.
About the series: 10X Engineering
At Godspeed Systems, we believe in excellence and want every engineer to be a 10X version of himself or herself. For the same every engineer needs to
Hence we will be running this series where we share with the world whatever little we know or are making, and also continue to learn and upgrade ourselves. Consider 10X Engineering not as a course but a guide designed to empower developers and teams at every stage, providing a systemic approach to thinking, solution design and application.
The choice of tools for the journey
The path to 10X is independent of tools. Hence you are free to choose tools that suit your purpose.
What makes the difference between excellent and poor engineering (and engineer) is not the tools we know or use. It is design and application using fundamentals and first principles. The evidence of excellence or success lies in the final output that we ship from day to day, as a team. The job of tools is to help humans make stuff excellently. So a good engineer or team is strong on concepts, and can apply those fast and properly with any tools.
A 10X engineer is like a really good athlete who can run well with any shoes. A novice athlete can not run well with even the best shoes.
In this series, there will be a recommendation from our side but you are indeed welcome to pick any toys you wish to play the game with. We have the freedom to choose and switch between the tools that serve our purpose.
Topics every dev should know
These are some of the topics which I believe every engineer must know, from a little bit to expert level knowledge.
The chapters
Chapter 0: Making of a 10X Engineer & team(Published)
What is Software Engineering
Types of Careers and Roles in Software Engineering
Chapter 1 - Touching the fundamentals(Published #wip)
Pre-requisite
Knowing atleast one language
Knowing basic datastructures and algos
Software Engineering Lifecycle and environments
Data
Retrieve/receive, compute, transform and send/store data
What is business logic and what is boilerplate
Software Testing and its importance
Single bad UX can be more powerful than 99 good features combined
Unit, integration and functional testing
Basic Unix commands
Best practices
Chapter 2 - Programming advanced
Paradigm of programming languages
Concurrent data access with mutable and immutable data structures.
Programming - best practices
The art of handling errors and debugging
How to debug
1) Locally
2) On hosted environments
Let’s write some Unit Tests
Chapter 3 - Modern software architecture - basics
Evolution of software architecture
Three pillars of any microservice/service
Eventsources and events
1) Sync- All kinds of APIs whether REST, Graphql, gRpc, SOAP etc
2) Async - Message Bus, Socket and CRON
API protocols
Three main modern standards
1) REST
2) Graphql
3) gRpc
Two kinds of Datasources
3rd gen Service development frameworks and ecosystem
4th gen Meta-frameworks for service development
On the UI side:
Web sockets - what it is, its benefits and real world use cases
Develop some APIs and basic UI
Writing Integration and UI tests for APIs
Chapter 4 - The world of data and datastores
Types of datastores
Important aspects of the datastore domain
Popular datastores
Search and filtering: Text based and vector based
CachingSearch and filtering: Text based and vector based
领英推荐
Caching
Types
Cache eviction policies
Data warehouse and data lakes
Migration
Deep dive: Postgres/Mysql (SQL) and/or Mongodb/Elasticsearch (Nosql)
What is Data federation and its use cases
Dual writes and consistency (real time versus eventual)
Mutation subscriptions (via CDC, Graphql, message bus)
Lazy loading versus write through cache
Chapter 5: Security
Layers of security
User Authentication
Authorization for endpoint and data access
Application security
Data security
A brief history
Redaction of sensitive data from logs
Chapter 6: Performance profiling & debugging
Load Profiling using Jmeter or similar tool
Debugging performance bottlenecks
Detecting Memory leaks
DEPLOYMENTS
Chapter 7: OS and networking
Hardware: CPU, RAM, DISK
OS — Unix (Linux, BSD and Mac), Windows
Concepts: Caching, swapping, threading/cores, process, concurrency (locking, counters etc)
Networking (IP address and port), Firewall, Proxy,
Unix basic commands recap
Chapter 8: Containerization and scaling strategies
What is containerization? What is its history and modern trends?
When should it be used?
Tools: Docker, Kubernetes
Chapter 9: Continuous integration & Deployment
What is CI/CD and its benefit in Shift Left Approach of Software Development
Role of the CI process and CD process
CI essentials — automation testing, security scans, containerisation, storing in artifactory
CD — Deployment strategies — Blue Green and Canary
What is infrastructure as code.
Popular tools: Terraform, Ansible, ArgoCD
Tool: ArgoCD: setup argocd and deploy over K8s using ArgoCD
Vertical versus horizontal scaling
Microservice mesh
Gateways
Chapter 10: Observability (Not just monitoring)
Why do we need observability?
What all can we observe?
What is the role of SRE?
Concepts:
Tools
The FOSS based Grafana stack and ELK, Datadog, Splunk
Chapter 11: ML/AI
When do we need ML? And what is ML?
AI: Its uses and technical overview
Chapter 12: Advanced Topics
Serverless functions or Function as a service (FAAS)
Event (Async) driven architecture. Pros and cons.
Distributed workflow management
What is a rule engine? And its use cases. How can dynamically computed policies and workflows come together for highly agile and fluid product offerings or business use cases.
Chapter 13: Case studies and use cases (study with practical examples and practice)
Food delivery app delivery tracking with mutation subscriptions and notifications
Loan Origination System with rule engine based dynamic workflows
Ecommerce distributed workflows
Real time fraud detection using KSQL, Elasticsearch, Data structures
Movie recommendations: Content based and collaborative filtering based approaches
Shortest path recommendations for a navigation app
(Artificially) Intelligent customer support agents
That’s it for now!
For participating in the learning and sharing journey as a community, you can join us on Discord,Github, Youtube, social channels and subscribe to the blog’s newsletter.
Stay tuned for the series. We have a long way to go.
The woods are lovely, dark and deep, But I have promises to keep, And miles to go before I sleep, And miles to go before I sleep.
Original Blogs belongs to https://godspeed.systems/blog/10x-engineering-a-series
HR
8 个月This will help me
Building AI-powered Mixed Reality Platform | Ex - Tata Digital (TataNeu)
9 个月This is great Ayush Ghai ??
Creating affordable websites for business owners to enhance their online presence ?? Specializing in architects ??? | Co-Founder of @FlowPhoenix | Webflow developer and designer ??
9 个月Exciting news! Looking forward to diving into the 10X engineering series.!