30 Day Tech Challenge
software

Our industry moves incredibly fast. The skills I learned over the past 10 years are different than what new developers are learning. The fundamentals have stayed the same, but with all of the libraries and packages available there are many layers of abstraction on top of them. So I wanted to make something that I can do everyday to help stay sharp and learn things in ~30 minutes. Here’s the 30 day challenge I’m doing for… the next 30 days.

These are some of the areas I feel like I need to develop and explore. As I start working through this list, I’ll probably come back and update it with less vague details. Some of these will likely take more than 30 minutes, but I’m going to try and time-box it for a while.

Day 1

Make a quick sort function in TypeScript and Python and explain when you would use it.

Day 2

Make a hash table in TypeScript and Python and explain when you would use it.

Day 3

Explain the concept of graph traversal and write sudo code for it.

Day 4

Implement a linked list in Python and TypeScript.

Day 5

Implement topological sorting in Python and TypeScript.

Day 6

Implement a stack in TypeScript and Python.

Day 7

Translate one backend endpoint from your most comfortable programming language to one you’re less comfortable with.

Day 8

Design a system to handle a large number of SMS messages.

Day 9

Design a user record system for a non-relational database and what the tradeoffs are compared to a relational database.

Day 10

Design a CQRS architecture for a healthcare app that reads patient data and writes data updates.

Day 11

Design a distributed system that integrates data from 3 third-party services.

Day 12

Make a Connect Four game API with Python and TypeScript.

Day 13

Make a small spreadsheet UI with React and TypeScript that has WCAG in mind.

Day 14

Explain what RAG (retrieval-augmented generation) is and make a small example in Python.

Day 15

Explain what a LLM (large language model) is and make a small example in Python.

Day 16

Set up a server on your local machine that can host a small frontend, backend, and database.

Day 17

Do a small hardware project.

Day 18

Implement a PKCE security flow in Python and TypeScript.

Day 19

Build a deployment pipeline in GitHub Actions.

Day 20

Implement a multithreaded and parallelized application.

Day 21

Implement an application that uses concurrency.

Day 22

Build a simple desktop app.

Day 23

Build a simple CLI tool.

Day 24

Build a simple SDK in TypeScript and Python.

Day 25

Design a system that lets multiple users edit the same content at the same time.

Day 26

Design an event-driven architecture for a fintech company that uses Kafka.

Day 27

Design a database and infrastructure that uses caching and connection pooling.

Day 28

Build a backend that supports multi-tenancy.

Day 29

Build an API and data pipeline with gRPC and Node.

Day 30

Build an ETL data pipeline.


Maybe this will be helpful for others too so feel free to share it. Here’s the GitHub repo where I’m putting all of my progress to give myself some level of accountability.