Chemist → Software Engineer | Python | Fullstack Learner | Karate Practitioner
Hi, my name is Chris. I'm a scientist transitioning to software engineering. My journey into coding began while working in a lab that lacked a good database system. A colleague and I learned Python and built a lab information management system using the Django framework. That experience sparked my passion for software development.
While Python remains my primary language, I've since expanded my focus to fullstack engineering and core programming concepts. I want to truly understand how many of the technologies and products we use every day works behind the scenes.
Work in progress CRUD app. My teacher wants a database of all techniques and movements in each Karate form to make queries like "How many punches in front stance are there?" The main bottleneck is getting all the data for each move in a form. Some movements in a form is a combination of two techniques or two or more consecutive techniques which doesn't play well with "one movement per database entry."
Designed and implemented a RESTful API to handle game data. Built with FastAPI, SQLModel/SQLAlchemy, and SQLite. Deployed on Google Cloud Run.
Main challenges to this project was figuring out how to implement a self-referencing data model and multiple foreign keys from the same table into a intermediate table.
Developed a responsive frontend with ReactJS and Radix UI to display game information details from the backend FastAPI. Focused on user-friendly navigation and clear data presentation. Followed Streamlit prototype as a guide when developing.
Main challenges to this project was creating a UI that was pleasant to look at. The information was good, but presenting it is another matter.
Initial prototype that laid the groundwork for the ReactJS application. Built with Streamlit and connects to the FastAPI backend via API calls.
pybites-carbon is a CLI tool that interfaces with carbon for generating code images, using Playwright for browser automation.
My Contributions:
Ruff is a fast Python linter and formatter. I go over common commands, configurations, and possible integrations.
I introduce common key commands to the uv package manager, a Python package management system written in Rust.
In this guest blog post for Pybites, I share my experience building a fullstack web app during my time in the Pybites Developer Mindset Program. I walk through key challenges and lessons learned.
Presented at the local Python Meetup at Hacker Dojo in Mountain View, CA on 2025-04-08. I introduced Ruff, a fast Python linter and formatter, and demonstrated key features and commands.
Ruff Demo GitHub Repo Link