19 November 2020. Start: 10 am UTC duration: 24 hours online
19 November 2020. Start: 10 am UTC duration: 24 hours online
python Universe WEB Edition
World's largest Python event of the year
online, November 19 start: 10 am UTC duration: 24 hours online, November 19 start: 10 am UTC duration: 24 hours
online, November 19 start: 10 am UTC duration: 24 hours online, November 19 start: 10 am UTC duration: 24 hours
of Tech Talks
What's New in Python
Offline events are gone for some time, but the tech world doesn't slow down. The Python community needs the platform to share the latest updates and use cases to improve coding skills and get architectural insights. We aim to provide an online event for Python geeks from all over the world to share what's new in the domain.
Geekle has the unique experience to gather huge tech summits with 11'000+ attendees with 95% of free users registered in other tech domains. Now we hope to make something the world has never seen before for the Python Community.
Python is the whole universe. We understand specific sub-domains like Python Web, Python for ML/AI and Python for Testing. That’s why we separated Python into three unique events. Now we are ready to present the Python WEB Global Summit’20. See ya'll!
SQLAlchemy is a powerful tool to talk to databases from your python code. It offers simple to use, high-level interfaces, great support across various RDBMS and a powerful ORM. Functionalities, that not only app developers can leverage but that can also make the life of BI engineers a lot easier. However, all that tooling comes at a (sometimes very significant) performance cost and loss of control.
In this talk, I want to talk about how BI engineers can get the most out of SQLAlchemy. I will take a closer look at how to carefully select and use some of the before mentioned features and at how to keep control of your connections and transactions.
The odyssey of moving data for BI
Collecting and aggregating your business data can be quite an adventure. APIs, data exports and automated reports are often well-meant but poorly executed. In this talk, I want to share some experiences on the roadblocks that you might encounter along the way and introduce a couple of approaches that try to overcome these. Along the way, I will define a set of features that the ideal data connector for BI should expose.
Access control patterns in Python
Nearly every application needs to enable its users to see only their data. Many other applications go further and add more controls, like sharing, or making some content private and public. These concepts are increasingly important to get right as data privacy consistently finds itself at the center of the conversation in technical, business and political communities.
In this talk, you'll learn common access control patterns in Python/Django and how to implement them into a social media application.
AI at Porsche - how we won the AI Hackaton with postureAI
A hackaton of course is always a very exciting and intensive short period of time to work on innovative ideas. In this talk I will demonstrate that sometimes your ideas and thoughts can really make a difference even if you think they are kind of banal - you even can win AI hackatons with it! Further, I will give some insights into the topics we hacked on at the hackaton. And why our postureAI web-app won the AI hackaton at Porsche.
Managing Scale and Complexy. An Event Driven Approach
Coupled services, tangled endpoints and pooling mechanisms are usually the result of an organically growth architecture. Unfortunately, as the scale increases, the complexity and constraints do as well.
The purpose of this talk is to expose how quickly complexity grows, and how a unified event driven architecture approach, enables the support of more complex infrastructures that require to be flexible and scalable. Additionally, it covers best practices, pros and cons; and how I have used this approach at Netflix to drive a platform that leverages more than 300 million events a day.
This talks aims to target mid to advanced level engineers who have experienced problem scaling services or dealing with complex architectures. The expectation is that after this talk, everyone walks away understanding the power of events, and how they can be leveraged to design architectures for large scale problems.
How to validate your startup idea quickly
I work at Facebook's Innovation Lab as an Engineering Lead. As part of that, I help with rapidly prototyping and building brand new apps. One of the key learning is that most new product ideas will fail in the market, even if the execution is good.
This doesn't mean that we shouldn't try building something new. But it means that we should try to validate if the market is interested in your idea before spending a lot of time and money building it. In this talk, I describe a playbook you can use to gain confidence that the market wants your product in a matter of a few days.
I've already written an article about it that got a lot of recognition on Hacker News and Twitter. https://amanjain.substack.com/p/how-to-validate-your-startup-idea
Python Django Intro
How Django is used for web services design and prototyping MVP ideas
Why Python Matters
It seems that every week a new language is announced, each one designed to become *the* language for the web, for devops, and for applications. But through it all, Python still continues to not only survive but to thrive. What is it about Python that makes it still the go to language in tech?
How Python changed my life and gave me a position at Google
Before July last year I had never heard of Python. Today I have a contract signed with Google after getting in their Software Engineer Apprenticeship programme. I'm going to tell you how I did it, so that you can do it too!
Deploying AWS Infrastructure with Python
One of the parts of doing things properly at scale is being able to describe your infrastructure as code and deploy it as such. If we already treat our infrastructure as code, why not apply all the best practices of software delivery to infrastructure delivery. In this session we look into Infrastructure as Code, the Python way! Let's see how can we use tools such as AWS Cloud Development Kit, to deploy our Infrastructure with the power of Python.
Data Science with Python IRL
In this session, Dave will cover what it’s like to work as an Applied Data Scientist in industry and will discuss everything from coming up with good hunches, the tao of feature engineering, how to avoid model fixation, and the difference between thinking deterministically versus probabilistically. He’ll cover the tool-chain pro data scientists use, what it is like to be embedded in a product team, and how to develop your career in one of the fastest growing technical disciplines.
Cryptography, The Cloud and You
When discussing adoption of AWS and cloud native practices I often find myself talking about encryption. The topics can range around a wide variety of topics from "how can I implement DevSecOps" to "is my data safe in the cloud" to "what about the Cloud Act" to "who can access my data" or even "what about quantum computing". We often go to encryption in these topics and customers are not aware of how easy it is to leverage encryption services in the cloud. This speech will focus on the flexibility the Python SDKs give a customer to generate symmetric or assymetric keys. The implication of AWS generating keys. The implication of choosing symmetric over assymetric encryption. I do work for AWS but this is not a sales speech, I will show Python code to generate and encrypt data (assymetric and symmetric).
Everything You Know About MongoDB is Wrong!
MongoDB is webscale, right? It's a JSON database, it's eventually consistent, and you use map-reduce to query it. Oh, and it's insecure.
Let me clear up some things: MongoDB is an ACID-compliant database with transactions, schemas & relationships. It includes a powerful aggregation query language; map-reduce has been deprecated for some time now. MongoDB doesn't speak or store JSON, and nowadays it comes with pretty good security defaults (we think).
There are many myths around about MongoDB - what it is, how it works, and what it does wrong. Like any database product, you need to know its capabilities and how to get the best out of it. On top of this, the product has changed _a lot_ over the years, but lots of information out there hasn't caught up.
I'll cover 8 myths around MongoDB, explain how they're wrong, why the myth originated in the first place (some of them weren't originally myths).
* What exactly _is_ MongoDB? * What is the current release of MongoDB? * MongoDB is _not_ a JSON database. * MongoDB _has_ transactions. * MongoDB allows relationships. * You should only consider sharding if you _must_. * MongoDB _is secure_. * MongoDB stores your data reliably. * MongoDB is a big product, with lots to learn.
Along the way, I'll explain some of MongoDB's best-kept secrets, and provide practical tips and tricks for using it. The audience will leave with a good idea of what MongoDB is, what it isn't, and how to best develop with it.
Distributed Orchestration with Airflow: Architecture, DAGs, Best Practices, and more
Distributed Orchestration with Airflow: Architecture, DAGs, Best Practices, and more
With the amount of data growing day-by-day and businesses becoming more dependent on data for making decisions and predictions, engineers have started utilizing more number of diverse tools/platforms to meet the requirements. This has been possible with added manageability and financial overhead. A lot of different tools/platforms/components have to be chained together so that data can flow between them.
The talk aims at introducing Airflow for orchestrating the workflow by creating sophisticated data pipelines which are optimized for performance, resources, and cost.
The following things would be discussed: - Understanding the basics of Data Pipelining - Importance of DAGs and comparison with Crons - Architecture of Airflow - Distributed Workflow management using Celery and Kubernetes - Best practices for DAGs - How to optimise for resources and cost - Q/A
Painting with GANs: Challenges and Technicalities of Neural Style Transfer
A lot of advancements are happening in the field of Deep Learning and Generative Adversarial Networks are one of them. We have seen GANs being applied for photo editing and in-painting, generating new image datasets and realistic photographs, increasing resolution of images (Super Resolution), and many more things. Some people have also exploited GANs for generating fake content. All the above-mentioned examples are result of a technique where the focus is to generate uncommon yet original samples from scratch. However, these examples have very less commercial applications and GANs are capable of doing much more. The focus of this talk is a technique called "Neural Style Transfer (NST)" which has numerous commercial applications in the gaming world, fashion/design industry, mobile applications, and many more fields. Challenges and technicalities of NSTs will be covered in great detail. We will teach the machines on how to paint images and utilize Style Transfer networks to generate artistic artefacts.
The flow of the talk will be as follows: - A Succinct Prelude to GANs - Understanding Style Transfer - Fundamentals of CycleGAN, Demonstration, and Analysis - Learning about Neural Style Transfer Networks - Loss Functions: Content, Style, Total Variance - Code Walkthrough and Result Analysis - Challenges and Applications - Questions and Answers Session
Say Goodbye to Passwords and Hello to WebAuthn
Identifying ourselves to access social media, banking details, and every aspect of our online life is something we do potentially dozens of times a day.
But as the nearly ten billion leaked account details documented by "';--have i been pwned?" attest, this process has a fatal weakness–passwords.
The Web Authentication API (or WebAuthn) is a standard from the W3C and FIDO that "allows servers to register and authenticate users using public key cryptography instead of a password". WebAuthn is part of a set of standards that enable passwordless authentication between servers, browsers, and authenticators. It's supported in all modern browsers.
This presentation will outline how the technologies work, and how you can take advantage of them today to create a far more secure experience for your users.
Jamstack for Python Developers
In this session, we'll take a quick look at what the Jamstack is, how Python fits into the equation, and how we can quickly launch a new application from scratch.
The Python Software Foundation, the Community and You
The Python Software Foundation is a global organization whose mission both the advancement of Python and the fostering of communities around the world. What does that mean? What does the PSF actually do? How can YOU get involved? Join me for a survey of what the PSF is and what it does, and learn how anyone, with any level of Python knowledge, anywhere in the world, can get involved with the PSF and Python communities around the world.
Building a Bridge to a Legacy Application - How Hard Can that Be?
My team loves working on legacy code projects. It’s all that we do. That’s why a friend of mine reached out to us for some help.
His startup was building out a universal API across a very fragmented industry with little to no interoperability or standards. Up until now, integrating with the systems in that industry had been pretty easy, because the companies that built them were willing to help.
But now he’d found one that wasn’t willing to help. There was no obvious API for getting data out of the legacy application so that it could be exposed via his company’s API. A big client for his company was riding on his ability to be able to pull this off. He remembered how much I loved a challenge and how much my team loved legacy code, so he figured we were his best shot.
The goal was to be able to read from the application’s database.
In this talk, I’ll cover:
the different approaches that we took the one we really wanted to try because we thought it would be fun the approaches that we needed to try before we could attempt the fun one the excitement that we felt while working on it the grind toward completion once the big technical hurdle was crossed the sense of achievement when we got a read-only solution built the hope that we’d get the green light to start working on a read-write solution the disappointment when the plug got pulled and we weren’t authorized to proceed any further It was a fun journey, and I’d love to be able to share it.
A Deep Dive into Measuring Dependency Freshness with LibYear
LibYear is a dependency freshness measure which helps you learn how out of date your project’s dependencies are. While LibYear has considerable value when used as a “spot” metric, something that you just measure once, there is even more power that can be unlocked when you observe how the metric has trended over time. In this talk, we’ll explore a tool, libmetrics, which is able to compute this metric across a project’s history. The libmetrics tool supports many different dependency management tools from many different frameworks. Also during this talk, we’re going to look at graphs of LibYear over time for many different open source projects. By analyzing these graphs, we can see the long term impacts of different decisions, such as when a team decides to start using Dependabot.
Why you’re getting understandability wrong
Understandability is the most important concept in software, that most companies today aren’t tracking. Systems should be built and presented in ways that make it easy for engineers to comprehend them; the more understandable a system is, the easier it will be for engineers to change it in a predictable and safe manner. But with the rise of complex systems, it has become all too common that many times we no longer understand our own code once we deploy it.
As a result of increasing system complexity, developers are spending too much time firefighting and fixing bugs. In recent surveys, most devs say they spend at least a day per week troubleshooting issues with their code (sometimes, it can be a couple of days up to a full week trying to fix an elusive bug). This is hurting developer productivity and business results. It also creates a tough choice between flying slow or flying blind; as developers, we are too often making decisions without data in order to maintain velocity.
In this talk, I’ll highlight the importance of Understandability and how it has a huge impact on our day-to-day work. I’ll also discuss how it relates to more popular concepts such as complexity, observability, and readability. Finally, I’ll share some tools and techniques to manage and optimize for Understandability.
Web Application Security
Nowadays, we do almost everything on websites. So how safe are the websites where you save your credit card information, home address and other personal information? In this presentation, I will talk about Web Application Vulnerabilities and methods of protection from these vulnerabilities with examples.
Gender Balance in Tech
Why are women still underrepresented in Tech, and why does it matter? In this talk we will discuss the reasons for the gender imbalance in the Tech community, the problems this causes to the community and the world, the benefits of increasing women's representation, and the effectiveness of a range of approaches designed to improve gender diversity.
Building effective online dev portfolio
Django in the serverless land
Provisioning, scaling and maintaining your application can still be a challenge, leading to errors and demanding highly specific knowledge. Serverless introduces a new architecture and execution model; ephemeral containers run the application or service on-demand making it scalable by design, but it also introduces new challenges.
This talk shows you how a Django application can take full advantage of AWS to become serverless with the help of the Zappa framework and shares lessons learned from experience.
Websockets and webhooks done right
Websockets and webhooks serve like a backbone of a modern real-time API system, providing a way to communicate in real-time changes or updates.
During this talk I’ll introduce what websockets and webhooks are, why and for what they are useful, some of the security issues you need to be aware of and how to use Python to write a websocket client/server and a webhook producer/consumer.
Especially for webhooks I’ll talk about the complexity of creating a reliable system that can scale to hundreds of webhooks, of the necessary retry policies you need to support and of the strategies you can put in place to alleviate slow or faulty consumers.
Production-ready applications with Python
What separates a hello world example from a production-ready application?
More than what developers usually imagine!
A production-ready application is not only characterized by the way in which you run it but also by the way in which you develop it, accept contributions through PRs, observe it and document it.
During this talk I’ll introduce what a production-ready application is, how to build one or evolve your current application into a production-ready one.
This talk will touch concepts like proper dependencies management, containerization, CI/CD, documentation, infrastructure, logging, observability and operating your application inside a kubernetes cluster.
At the end of the talk I’ll share a production-readiness checklist useful to assess your services.
ApiVer – a versioning policy for libraries
ApiVer is an evolution of SemVer 2.0.0 – the well-known and well-designed standard which ends up leaving some challenges that hamper productivity in the long term. This talk will explain why it is worth it to acquaint yourself with ApiVer and how you can use it to reduce maintenance overhead and improve the experience of your library’s users.
ApiVer allows non-backward compatible changes to signatures such as the addition of mandatory function parameters and deleting methods from public interfaces without breaking the functionality of the software that uses a library upon upgrade. It also ensures that minor bugfixes and performance optimizations of old functions remain available to everyone without the need to backport anything to the old branches.
The gentle touch of APM - how code tracing works in Python
It has been a busy several years in monitoring and observability. As we’ve hit limits on the visibility and detail that logging and metrics provide, we’ve turned to tracing and APM (App Performance Monitoring) systems. We can now understand performance bottlenecks and see errors in our apps down to the line of code. But how do they really work under the hood? Come and find out! We'll walk through how a free APM system works - Elastic APM.
- Elastic APM's tech architecture - how its Python agent hooks deep into web apps and batch task processing back-ends - how web frameworks allow us to perform tracing more easily than you might think
This talk is friendly to a variety of backgrounds and levels of experience. It would help a lot if you have worked on a production web app, but the focus is on giving an introduction.
Can we deploy yet?
What happens when your features are done, your MVP is ready and you want to deploy your first production build? What do you do then? How do you make your first production build instead of re-using your development one? is your code ready to handle real user interactions? This talk will show a production ready checklist for your Python code; what to look for when creating a production-ready Docker image; what are the differences between development and production environments and builds. You will see how to deal with exceptions, logs, docker files with real-world use cases.
Python Decorators: Gift or Poison?
Have you even had the task when you need to use one function in few places and you really wanted to avoid of code duplicating? For example to add some logging into functions or timers, etc. Decorators in Python are super powerful with these tasks, but at the same time they are super complicated. When I started learning Python, Decorators were like weird magic for me. The goal of the talk is to make the things easier and clear to answer a question: to use or not to use Decorators in your project.
Data Science in Urban Mobility
Geospatial data has increased rapidly in the last decade and has challenged the traditional mobility companies to adopt more data-driven approach to solve the problem of urban mobility. In this talk, I will discuss the changing scope of data in urban mobility, emergence of last-mile mobility options, focussing on two key topics - surge pricing and demand prediction.
Scalable Application Prototyping in 500 Lines or Less
This talk will demonstrate how to rapidly develop application prototypes in the cloud. It will showcase how to spin up a few sample applications inside of Amazon Web Services using the Serverless Framework.
In this process, it will show how a combination of managed services, libraries, and 3rd party tools can build a web application that collects user-generated content and makes it immediately searchable - all in under 500 lines of user-written code.
Using an example prototype the talk will demonstrate how to use a "Code Budget" in order to spend a minimal amount of time on development and produce a Minimum Viable Product or MVP quickly.
Building Secure Cloud-enabled IoT Devices
Connecting IoT devices to the cloud has a notoriously bad track record - Security breaches, leaked data, and even compromised devices that spy on you. Many of the issues that causes these situations can be avoided completely with proper precautions and development practices.
In this talk, I'll show you how to build your own home security system using Python, a Raspberry Pi and a PIR sensor that keeps an eye on the fridge so no one steals that dessert you were saving. We'll also connect it to the cloud so we can be notified immediately via text if we notice any stealthy roommates trying to chow down. Best of all, I'll leave you with a detailed guide so you can try it out on your own later on!
How Python is changing the world as we know it
How Python and Python community can contribute to education evolution in the (post)pandemic reality.
Updated version of the keynote speech that I have performed at Pycon PL in 2019.
Biases - how to avoid them in ML & DL?
Implementations of our ML & DL models become part of everyday reality. Medicine, job market, banking, jurisdiction system, administration, transportation - all of these areas are already influenced by "AI". As the effect potential biases are going to have real effects on people's life. What could you do to make sure that the results of your experiments will be objective? Is it even possible?
During the talk, I would like to present to you: - cases studies of meaningful biases, - the ethical and legal aspects of the issue (the US, Europe perspective), - 5 steps that you could take to minimalize the risk.
Investigating Digital Crimes using Python
A recent study by CheckPoint Research has recorded over 1,50,000 cyber-attacks every week during the COVID-19 pandemic. There has been an increase of 30% in cyber-attacks compared to previous weeks. The pandemic has been the main reason for job loss and pay cuts of people and has led to an increase in cybercrimes. Examples of cyber-attacks include phishing, ransomware, fake news, fake medicine, extortion, and insider frauds. Cyber forensics is a field that deals with the investigation of digital crimes by analyzing, examining, identifying, and recovering digital evidence from electronic devices and producing them in the court of law. Python has a great collection of built-in modules for digital forensics tasks. The talk begins with an introduction to digital crimes, digital forensics, the process of investigation, and the collection of evidence. Next, I will discuss report creation using CSV and Excel reports, investigation of acquisition media using the pyscreenshot module. Finally, I will conclude the talk with the investigation of embedded metadata, emails, and log files. In this talk, I will cover mutagen, mailbox, tqdm, argparser, yara python modules, and utilities which are used for the above-mentioned tasks.
In this talk, the audience will learn the procedure to be followed while investigating digital crimes and most importantly how to develop their own digital forensic tools using Python. I believe that the attendees will learn about the new exciting field where there are lots of opportunities with respect to their careers. Basic understanding of Python language or any other scripting language will be helpful in understanding the concepts.
Python and FOSS in Education for Generation Z
The students who belong to Generation Z or post-millennial's have access to gadgets such as smartphones even before they go to school. This makes them technology savvy and at the same time, they get bored easily in a traditional classroom setting. It becomes necessary to use modern tools and techniques in the classroom to engage students in activities. Also, governments are promoting the “Bring Your Own Device (BYOD)” concept in education which can be a boon to those who cannot afford a computer or laptop. In this talk, I will introduce the QPython which can be installed on a smartphone to execute Python programs. I will also introduce visual programming tools like Google Blockly, VisuPy, and flowgorithm to generate Python code. Next, I will demonstrate how you can add a support of new programming language (Julia) to Flowgorithm. Finally I will discuss about Moodle and its plug-ins such as Configurable Reports, BigBlueButton and Badges to enhance the learning experience of students in classroom and online.
Artificial Intelligence based identification of total knee arthroplasty implants
Background: The identification of the make and model of the primary knee implant is an essential step for planning a revision surgery. Currently, the surgeons email the radiographs of the implant to the medical representatives of the manufacturing companies to get this information. This study aims to develop an artificial intelligence-based system to automate the identification of make and model of orthopedic knee implants.
Materials and Methods: For this study, we used a dataset of 1061 orthopedic knee implant radiographs comprising six different total knee arthroplasty(TKA) models from five manufacturers. For each make of the implants, both anterior-posterior(AP) and lateral views were used. The radiograph images were pre-processed and eventually used to train a Deep Convolutional Neural Network(DCNN). To assess the performance of the neural network heat maps were generated.
Results: Our neural network was able to identify each make of the implants with a validation accuracy of 97.46%. The generated heat maps gave a visual insight of the unique features of the implants that our model was using for identification.
Conclusion: Our study shows that deep convolutional neural networks are suitable for automating the process of accurate identification of models of orthopedic knee implants. This can not only aid in reducing the delay in planning for revision surgeries but also bring down costs due to error in identification. This study forms the foundation for automating the identification of all orthopedic knee implants and eventually other implants such as hip, shoulder, elbow, and wrist.
Rearchitecting Legacy Code: The art of transitioning a codebase while still delivering features.
Whether working at a startup or an older corporation, as developers, we are constantly faced with the problem of working with legacy code. Software solutions constantly change overtime as more features get added and sometimes the software outgrows the original architecture and design choices. Legacy code can make the code difficult to understand, force hacky solutions, and sometimes even make it impossible to add new features. Undertaking a significant architecture or design change in order to remove legacy code can often feel like a daunting task because of the effort involved and the delay it will cause in rolling out new features to customers. In this talk we’ll cover strategies for how to transition a codebase to a new architecture or design while still delivering useful features to customers. We’ll cover things like how to decide what to change and what to leave, how to plan, execute, and document an architecture or design change, and how to communicate the value of an architecture or design change to those who may not immediately understand its value. We’ll also deep dive into some case studies of changes that were successful and ones that were not. Planning and executing such a large transition is hard but after this talk, it might not seem so daunting after all.
Outline: - Intro [2 mins] - Planning a Redesign - example code bases that needed a redesign [5 min] - identifying problem areas [5 min] - deciding what to change and how [10 min] - writing a design spec [5 min] - getting buy in [3 min] - Executing a Redesign - when to change [3 min] - finishing the transition [2 min] - Review of case studies - transitioning to a new deploy system [3 min] - rearchitecting a database [3 min] - transitioning from blueprints to flask restful [3 min] - transitioning to a new base class [3 min] - Conclusion [2 mins]
PySpark : Combining Machine Learning & Big Data
With the ever increasing flow of data, comes the industry focus on how to use those data for driving business & insights; but what about the size of the data these days, we have to deal with ?
The more cleaner data you have, its good for training your ML ( Machine Learning ) models, but sadly neither the world feeds you clean data nor the huge amount of data is capable of fast processing using common libraries like Pandas etc.
How about using the potential of big data libraries with support in Python to deal with this huge amount of data for deriving business insights using ML techniques? But how can we amalgamate the two?
Here comes “ **PySpark : Combining Machine Learning & Big Data** “.
Usually people in the ML domain prefer using Python; so combining the potential of Big Data technologies like Spark etc to supplement ML is a matter of ease with pyspark ( A Python package to use the Spark’s capabilities ).
**This talk would revolve around** -
1) Why do we need to fuse Big Data with Machine Learning ?
2) How Spark’s architecture will help us boost our preparations for faster ML ?
3) How pyspark’s MLlib ( Machine Learning library ) helps you do ML so seamlessly ?
Hickory, Dickory, Dock... Scheduling Python at the Command Line
...the snake ran up the clock. Learn how to schedule python scripts at the command line with just a handful of commands. No workflows, no DAGs, no dependencies!
- Scheduling is tricky... - While there are some great existing solutions (airflow, huey, schedule) - They're either overkill, or can't daemonize
- Enter [hickory](https://github.com/maxhumber/hickory) - A command line tool that works on macOS and Linux - Perfect for scheduling web scrapers, ML models, and just about any stand-alone script
- While hickory is simple and powerful, there are some disadvantages... - Which will be addressed in some FAQ - And a path forward