**Nicolas Horde** enhorde@gmail.com [github.com/NHorde](https://github.com/NHorde) [Curriculum Vitae](cv/cv.md.html) This page summarizes a couple of projects I have worked on over the past years. Chess Games Analysis === I learned chess when I was 8 and started playing regularly after I graduated from college. Being a huge fan of [Lichess](https://lichess.org/@/NHorde) which is completely open-source and free, I decided to spend more time analyzing my games to improve my weaknesses. This [project](https://github.com/NHorde/lichess-nhorde-analysis) is based on the free [Lichess API](https://lichess.org/api). At a high level, I am parsing all my games from a json format to .csv and then read, analyze and create some visualizations using pandas and seaborn in Python. Maze Shortest Path === Ideas --- This [project](https://github.com/NHorde/ensam-maze-shortest-path-algorithm) was my first Python script that I developed during my first year in College back in 2014. The objective is giving a random maze, how to find the shortest path to the arrival? One can think to try all different solutions, count the number of iterations and select the one with the lowest number. However, this solution will require n*n iterations (n being the length of the maze). Another idea wight be to always "turn left" which will inevitably lead to the arrival but it's definitely not the fastest way to solve the problem. Tarjan's Algorithm --- The solution of my algorithm uses the [Tarjan algorithm](https://en.wikipedia.org/wiki/Tarjan%27s_strongly_connected_components_algorithm) where we allocate 1 to the first cell (departure), iterate each neighbor cells with 1 and iterate through reaching arrival. The shortest path is then retrieve by selecting the lowest cell neighboor cell value from the arrival and iterate back to the departure. ![ "X" represents an obstacle, "D" departure and "A" arrival](img/ensam_maze_1.png) ![Every neighboor that is not an obstacle is incremented](img/ensam_maze_2.png) ![The algorithm walks through the maze again backwards](img/ensam_maze_3.png) To my surprise, the algorithm I developed [back then](https://github.com/NHorde/ensam-maze-shortest-path-algorithm/tree/v1-2015) still works in 2021, more than five years later (!!) and I am now working on a more [optimized code](https://github.com/NHorde/ensam-maze-shortest-path-algorithm). Stock Webscrapping === Hypothesis --- Although being a fan of [passive investing](https://www.investopedia.com/terms/p/passiveinvesting.asp), I still have a small fraction of my portfolio allocated in stocks I am personally picking. One old strategy is called [value investing](https://en.wikipedia.org/wiki/Value_investing) and has been used by some successful persons with great returns, the most famous one being Warren Buffett. The idea is to buy shares of a company that are trading below their book price (ie their tangible assets) as the difference between book value and stock value is simply free money. Webscrapping --- I am using [Yahoo Finance](https://finance.yahoo.com/) for my [webscrapper](https://github.com/NHorde/finance-stock-scrapper) using [BeautifulSoup](https://www.google.com/search?q=beautifulsoup&oq=beautifulsoup&aqs=chrome..69i57j0l7.1619j0j7&sourceid=chrome&ie=UTF-8). Iterating through all stocks trading on the NASDAQ and NYSE, we are only interesting in scrapping the current share price, book value and cash value. Results --- To my surprise, a lot of biotech companies are trading under their cash value, I believe it's because those companies are burning so much cash for few revenue that the market considers them as "too risky". There's also a few companies that are trading below their book value, in general those companies are losing money every quarter and their prospects are far from ideal. This scrapper is *not* designed to be an automated tool to buy/sell stocks but rather to quickly identify a list of potential stocks that are worth analyzing.