Skip to content

FutureSpace-Kenya/Tech-stack-and-learning-paths

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 

Repository files navigation

FutureSpace Learning Path

Introduction

As one of the FutureSpace founders, I believe in empowering our developers with the right knowledge and skills to build and ship cutting-edge software products. Our tech stack is carefully curated to leverage the power of modern web development technologies, and I am committed to providing a comprehensive learning path for our team.

1. User Interface Development

Tailwind CSS

Tailwind CSS is a utility-first CSS framework that allows for rapid UI development. By leveraging pre-defined utility classes, developers can quickly build responsive and visually appealing user interfaces without the need for extensive custom CSS.

Why Tailwind CSS?

  • Rapid prototyping: Tailwind CSS enables developers to quickly style components and build UIs without writing CSS from scratch.
  • Consistent design system: By utilizing the utility classes, Tailwind CSS promotes a consistent design system across the entire application.
  • Responsive design: Tailwind CSS provides built-in responsive utilities, making it easier to create responsive layouts and interfaces.
  • Customization: While leveraging utility classes, Tailwind CSS also offers flexibility for customization and extension when needed.

Learning Resources

2. Front-end Development

Next.js and React

Next.js is a React framework that enables server-side rendering, static site generation, and API routes. By combining Next.js with React, developers can build high-performance, SEO-friendly, and user-friendly web applications.

Why Next.js and React?

  • Server-side rendering (SSR): Next.js supports server-side rendering, which improves initial load times and enhances SEO capabilities.
  • Static site generation (SSG): With Next.js, developers can pre-render pages at build time, resulting in faster load times and improved performance.
  • API routes: Next.js provides a built-in solution for creating API routes, simplifying the process of building and consuming APIs within the same application.
  • React ecosystem: Next.js leverages the powerful React ecosystem, allowing developers to take advantage of the vast collection of React libraries and tools.

Learning Resources

3. Back-end Development

Node.js

Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine, enabling developers to use JavaScript for server-side scripting and building scalable network applications.

Why Node.js?

  • Event-driven, non-blocking I/O model: Node.js follows an event-driven, non-blocking I/O model, making it efficient and suitable for building highly scalable network applications.
  • JavaScript everywhere: By using JavaScript for both client-side and server-side development, developers can leverage their existing JavaScript knowledge and share code between the front-end and back-end.
  • Rich ecosystem: Node.js has a vast ecosystem of packages and libraries, offering solutions for various tasks and requirements.

Learning Resources

Express.js

Express.js is a minimal and flexible Node.js web application framework that provides a robust set of features for building web applications and APIs.

Why Express.js?

  • Simplicity: Express.js provides a minimalistic and straightforward approach to building web applications and APIs.
  • Middleware support: Express.js supports a robust middleware system, allowing developers to add functionality and handle various aspects of the request-response cycle.
  • Routing: Express.js offers a powerful routing system for handling HTTP requests and defining routes for different parts of the application.
  • Ecosystem: Express.js has a large and active ecosystem, with numerous middleware and plugins available for various use cases.

Learning Resources

4. Databases

At FutureSpace, we primarily work with two database technologies: PostgreSQL and MongoDB.

PostgreSQL

PostgreSQL is a powerful open-source relational database management system (RDBMS) that supports advanced features like transactions, concurrency control, and SQL compliance.

Why PostgreSQL?

  • Reliability and data integrity: PostgreSQL is known for its robust ACID (Atomicity, Consistency, Isolation, Durability) compliance, ensuring data integrity and reliability.
  • Advanced features: PostgreSQL offers advanced features like table inheritance, Views, foreign data wrappers, and more.
  • SQL compliance: PostgreSQL is SQL-compliant, making it easy for developers with SQL experience to work with the database.
  • Open-source and community support: PostgreSQL is an open-source project with a large and active community, ensuring ongoing development and support.

MongoDB

MongoDB is a popular NoSQL document-oriented database that stores data in flexible, JSON-like documents, providing high performance, scalability, and flexibility.

Why MongoDB?

  • Scalability and flexibility: MongoDB's document-oriented data model allows for easy data representation and flexibility in handling varying data structures.
  • High performance: MongoDB's architecture and indexing capabilities provide high performance for read and write operations, making it suitable for high-throughput applications.
  • Horizontal scaling: MongoDB supports horizontal scaling through sharding, allowing for seamless distribution of data across multiple servers.
  • Rich query language: MongoDB's query language supports powerful querying capabilities, including ad-hoc queries, indexing, and aggregation.

Learning Resources

PostgreSQL

MongoDB

5. Linux and Bash Automation

In addition to our core tech stack, our developers need to have a solid understanding of Linux and Bash scripting for automation purposes. This knowledge is crucial for streamlining development workflows, deploying applications, and managing server environments.

Linux Fundamentals

  • Understanding the Linux file system, permissions, and basic commands
  • Managing users, groups, and file ownership
  • Working with directories and file manipulation
  • Monitoring system resources and processes

Bash Scripting

  • Writing scripts to automate repetitive tasks and system administration
  • Utilizing control structures, variables, and functions
  • Implementing conditional statements and loops

System Administration

  • Managing packages and software installations
  • Configuring and managing services (e.g., Apache, Nginx, PostgreSQL)
  • Automating system backups and maintenance tasks
  • Monitoring system logs and troubleshooting issues

Learning Resources

Authors

This documentation was created by

  • Steve Tom

About

This repository contains what you need to learn to be able to become a member of Futurespace, the learning paths will be regularly updated to keep up with new and better technologies.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors