In 2014, Epic Charter Schools was on the verge of exponential growth and had already outgrown its initial, manual-based operations. With 1,500 students, the reliance on temporary staff for data entry created a constant backlog, forcing newly enrolled students to wait weeks for curriculum access and exposing the school to unacceptable security risks.
To eliminate the backlog and enable growth, I designed and built EpiCloud, a network of automated bots on Amazon Web Services (AWS). The system’s architecture was engineered for scalability, allowing the school to grow seamlessly to over 60,000 students. As word of the bots’ success spread and requests for additional automation multiplied, I assembled a team of developers to build bots that ultimately automated over 95% of the school’s data entry tasks. I built a custom command-line interface (CLI) to manage and monitor this complex network, which proved critical to its operational success.
In parallel, I addressed the security risks by implementing a new, school-wide single sign-on solution. This replaced the insecure practice of managing separate credentials, allowing teachers, students, and staff to securely access all school systems with just their single Google account.
Key Takeaway
The key to the project’s widespread adoption lay in a simple shift in language. Technical terms like ‘workflows’ or ‘background tasks’ were met with confusion. But the moment we framed the automation as ‘bots’, everyone understood. It provided a clear mental model: a bot could perform a human’s task, just faster and without errors. This empowered non-technical staff to become active partners in identifying new automation opportunities.
Tools (15)
Docker is an open-source platform for developing, shipping, and running applications. It uses container technology to package applications into isolated, lightweight, and portable containers that can be quickly deployed and moved between different computing environments. Docker also provides a set of tools and services to help developers build, ship, and run applications in a more efficient and secure way.
Amazon Elastic Compute Cloud (EC2) is a web service that provides secure, resizable compute capacity in the cloud. It is designed to make web-scale cloud computing easier for developers. EC2 allows users to launch virtual servers, called “instances”, which can be configured to their specific needs. EC2 also provides users with the ability to scale their computing resources up or down as needed, allowing them to pay only for the resources they use.
Amazon Elastic Container Registry (ECR) is a fully-managed Docker container registry that makes it easy to store, manage, and deploy Docker container images. It is secure, highly available, and scales automatically to meet the needs of your applications. ECR integrates with Amazon Elastic Container Service (ECS) and AWS Fargate, simplifying your development to production workflow. It also provides features such as image scanning, lifecycle policies, and IAM authentication.
Amazon Elastic Container Service (ECS) is a container orchestration service from Amazon Web Services (AWS) that enables users to easily deploy, manage, and scale containerized applications on AWS. It provides a secure and scalable platform for running Docker containers, allowing users to quickly and easily deploy and manage applications in the cloud. ECS also provides features such as automated container scaling, service discovery, and resource management.
Fargate is an Amazon Web Services (AWS) technology that allows users to deploy and manage containers without having to manage the underlying infrastructure. It provides a serverless compute engine for containers that eliminates the need to provision, configure, and scale clusters of virtual machines. Fargate also provides a secure and reliable platform for running containers, allowing users to focus on building and running their applications, rather than managing the underlying infrastructure.
Google Firebase is a mobile and web application development platform that provides developers with a variety of tools and services to help them quickly and easily build high-quality apps. Firebase provides a real-time database, authentication, storage, hosting, analytics, and more. It also offers a range of SDKs for Android, iOS, and web development, allowing developers to quickly and easily integrate Firebase into their apps.
Google Classroom is a free web-based platform that allows teachers to create and manage virtual classrooms. It enables teachers to easily create and organize assignments, provide feedback, and communicate with students. It also allows students to submit assignments, view grades, and collaborate with their peers. Google Classroom integrates with other Google applications such as Google Drive, Google Docs, and Google Calendar.
Google Drive is a cloud storage service that allows users to store and access their files from any device with an internet connection. It provides users with 15GB of free storage, and additional storage can be purchased. It also offers a suite of office applications, including Google Docs, Sheets, and Slides, which allow users to create and collaborate on documents, spreadsheets, and presentations. Google Drive also offers a range of features, such as file sharing, version history, and real-time collaboration.
AWS Identity and Access Management (IAM) is a web service that helps you securely control access to AWS resources. With IAM, you can create and manage AWS users and groups, and use permissions to allow and deny their access to AWS resources. IAM also enables you to create and manage security credentials such as access keys, passwords, and multi-factor authentication devices. You can use IAM to manage access to AWS services such as Amazon EC2, Amazon S3, and Amazon RDS.
Node.js is an open-source, cross-platform JavaScript runtime environment that executes JavaScript code outside of a browser. It is used to create server-side and networking applications. Node.js applications are written in JavaScript and can be run within the Node.js runtime on OS X, Microsoft Windows, and Linux. Node.js also provides a rich library of various JavaScript modules which simplifies the development of web applications using Node.js.
Puppeteer is a Node library developed by Google that provides a high-level API to control headless Chrome or Chromium over the DevTools Protocol. It can be used to automate tasks that would normally be performed manually in the browser, such as form submission, UI testing, keyboard input, or capturing a timeline trace to diagnose performance issues. Puppeteer can also be used to generate screenshots and PDFs of web pages.
Amazon Simple Storage Service (S3) is a cloud storage service offered by Amazon Web Services (AWS). It provides object storage through a web service interface and is designed to store and retrieve any amount of data from anywhere on the web. It is highly scalable, secure, and durable, and provides features such as data versioning, encryption, and access control. S3 is used by many organizations for storing and backing up data, hosting websites, and streaming media.
SikuliX is an open-source GUI automation tool that uses image recognition to interact with on-screen elements by matching screenshots. It lets you write scripts in Python (via Jython), Java, and other JVM languages to click, type, and verify UI states without needing native application hooks. Built on OpenCV, SikuliX works across Windows, macOS, and Linux, making it ideal for automating legacy or custom interfaces and integrating with testing frameworks for end-to-end automation or repetitive desktop task scripting.
Amazon Simple Queue Service (SQS) is a fully managed message queuing service that enables applications to quickly and reliably queue messages that one component of an application can later process. SQS eliminates the complexity and overhead associated with managing and operating message-oriented middleware, and provides a simple and cost-effective way to decouple the components of an application. SQS offers a reliable, highly-scalable, hosted queue for storing messages as they travel between computers. It also provides a simple web services interface that can be used to access queues, add, receive, and delete messages.
Amazon Virtual Private Cloud (VPC) is a cloud computing service that provides users with a virtual private cloud, allowing them to provision a logically isolated section of the Amazon Web Services (AWS) cloud. It provides users with complete control over their virtual networking environment, including selection of their own IP address range, creation of subnets, and configuration of route tables and network gateways. It also provides users with the ability to securely connect their VPC to their existing IT infrastructure using industry-standard encrypted IPsec VPN connections.