I'm Kristian Møller Schmidt, a self-taught
developer and a trained mathematician
I'm a self-taught software developer with a university background in mathematics and comparative
literature. I'm curious by nature and enjoy various kinds of programming, from math heavy
algorithms and machine learning to practical web development, front end and back end.
Check out some of my projects, and feel free to send me an email if you'd like to work together.
I build full stack web applications and backend algorithms using tools such as Python, Django, Flask,
PHP, SQL, Javascript, HTML, HTMX, CSS, Sass, Bootstrap, Tailwind CSS and Docker. Below, I
hightlight my key technical skills that I will bring to your project.
Python development
I've built countless projects in Python, spanning from AI game agents to neural networks and backend development. You'll see examples of my work in Python in the projects section and on my github profile.
Full stack web development
I use web frameworks such as Django and Flask to build web projects with Python backends. Using these frameworks makes it easy to follow proven design patterns such as MVC. See exampes in the projects section.
PHP development
Before learning Django, I made full-stack web applications with PHP, MySql and Apache. For an example, see my PHP bugtracker project below.
Front end development
Besides HTML, Javascript and CSS, I use tools and frameworks such as Bootstrap, AJAX and HTMX to build responsive and dynamic websites. You'll see examples of my front end skills in all my projects in the projects section.
Data base development
I have experience designing and queriyng relational databases using both raw SQL and object relational mappers. See examples of both in the projects section.
Tailwind CSS development
In some of my later projects, including this portfolio, I've used the nice CSS framework Tailwind CSS. Tailwind CSS makes development faster and gives nice aesthetic results.
Data science and Machine Learning
I'm very interested in Machine Learning and data science. I've written thousands of lines of code in Python data science libraries such as Numpy, Matplotlib, Pandas, Tensorplow and Pytorch. These projects are from before I started doing web development, so you won't find live applications here. But the code is available on GitHub.
Docker
I use Docker in all of my web projects - both at work and when doing side projects. For example, this portfolio, as well as all the projects in the section below, run in separate docker containers behind a reverse proxy on my server.
Projects
Full stack web apps
I built these projects from the
ground up to demonstrate skills in front end, back end, security and database
development. These projects are full stack web projects that are built so that you can demo them
easily. Contact me to get a complete code walkthrough.
BUG TRACKER - PHP
A TICKET TRACKING SYSTEM
Bug Tracker - PHP
More Info
THIS PORTFOLIO
WHAT YOU SEE RIGHT NOW
This Portfolio
More Info
BUG TRACKER - DJANGO
A TICKET TRACKING SYSTEM
Bug Tracker - Django
More Info
Games & algorithms
I like to solve interesting problems using appropriate algorithms and
datastructures. Games can be a nice playground for stuff like this.
Here are three well known games and puzzles that you can either play yourself or choose to let an AI agent
play for you.
I originally made a backend for all three AI-agents as part of the MicroMasters Program
in Artificial Intelligence at Columbia University (online
education). I've later fine-tuned the algorithms, coded up a web app for each game and
made it possible for humans to play too.
2048 GAME
STRONG AI PLAYER
2048 Game
More Info
8-PUZZLE SOLVER
COMPARE SOLUTION ALGORITHMS
8-puzzle solver
More Info
SUDOKU SOLVER
BLAZINGLY FAST
Sudoku Solver
More Info
Bug Tracker - PHP
This is a ticket tracking system that could be used by e.g. a sofware company to keep track of reported bugs and issues related to their software. The program features authorization and authentication, multi-role demo-login and an automated notification system. I've built this project from scratch, including relational database design and a responsive front end. The back end is built with (object-oriented) PHP, raw SQL and a MySql-database. The front end is built with vanilla HTML, CSS, Sass and JavaScript. If you only visit once, I recommend that you log in as 'Demo Admin'.
Category:
Web Application
Technologies:
PHP, SQL, Docker, JavaScript, CSS, Sass, HTML
Deployment:
The site runs in a Docker container behind a reverse proxy on my server
Though this website is mostly static, I've used Django on the backend to include re-usable components and to set up the email backend. The portfolio is built as a single-page application using Javascript. I've made the styling and responsive layout using Tailwind CSS.
Category:
Web Application (Single-page)
Technologies:
Django, Python, Nginx, Docker, JavaScript, Tailwind CSS, HTML
Deployment:
The site runs in a Docker container behind a reverse proxy on my server
This is a ticket tracking system that could be used by e.g. a sofware company to keep track of reported bugs and issues related to their software. The program features authorization and authentication, multi-role demo-login and an automated notification system. I am building this project from scratch, including relational database design and a responsive front end. The back end is built with Django and Python. The front end is built with vanilla HTML, htmx, CSS, Bootstrap and JavaScript. When the implementation is done, it will feature throughout unit testing, pagination, CRUD-operations, a postgresql database with One-To-Many and Many-To-Many relations, password reset via email, search functionality and much more. If you only visit once, I recommend that you log in as 'Demo Admin'.
Web app with an AI-player for the 2048-game. The AI-player uses minimax-search with pruning. The search is guided by a heuristics function that to each board position assigns a score reflecting the quality of the position. The game is indeterministic by nature: After each move by the player, the computer randomly selects a free position to place a new tile: 90% of these new tiles will have value 2, while 10% will have value 4. During the mini-max search, the minimizing and maximazing agents are choosing their moves based on expected values given the known distribution of 2-tiles and 4-tiles. I originally made a Python backend to this project as an assignment to the online 'micro-master in Artificial intelligence' at Columbia University. Since then I've fine-tuned the algorithms, added the expected-value considerations, designed a responsive front-end and put it all together using Flask.
On this web app, you can construct and play with classic 8-puzzles (and more complicated 15-puzzles). You can either try to solve the puzzles yourself or let an AI agent do the hard work. You can choose between 4 different solution algorithms (A*-search, Greedy Best-First Search, Depth-First Search and Breadth-First Search) and compare their performance: Info from the real-time solution process on the server, such as running time and the number of moves in the found solution, is rendered to the user, making the app a nice demonstration of the strengths and weaknesses of the different search algorithms. I originally made the python backend of this project as an assignment for Columbia University's Artificial Intelligence MicroMasters Program. More recently, I've designed a reponsive front-end with vanilla technologies and put it all together using the Flask web framework.
Category:
Web Application
Technologies:
Python, Flask, Html, Javascript, CSS, SCSS
Deployment:
The site runs in a Docker container behind a reverse proxy on my server
This is a speed optimized automatic sudoku solver using Back Tracking Search (BTS) and an Arc Consistency Algorithm (AC-3). I originally made the python backend of this project as an assignment for Columbia University's Artificial Intelligence MicroMasters Program. More recently, I've designed a simply front-end with vanilla technologies and put it all together using the Flask web framework.
Category:
Web Application
Technologies:
Python, Flask, HTML, JavaScript, CSS, SCSS
Deployment:
The site runs in a Docker container behind a reverse proxy on my server