As a senior at Dartmouth College, majoring in Computer Science and minoring in Human Centered Design, I am currently the Automations Lead for the in the DALI lab and a former full stack web development intern for Canopy. I am also the Tech lead for DartMart, a food delivery app for rural college campuses, with over 1000 users at Dartmouth College.
I have always had a curious, creative, and entrepreneurial spirit and a passion for technology. Growing up, I developed an interest in STEAM while volunteering as a 3D printer coach in the Westport Library MakerSpace.
These interests led me to pursue a degree in Computer Science at Dartmouth College, where I joined the Entrepreneurship Living Community, and began working for the Dartmouth Computer Science Department as a TA, helping college and graduate students learn Object Oriented Programming, Data Structures, and Web Development. Using concepts from these classes, I implemented a prediction market trading bot, which identifies arbitrage opportunities in multi contract prediction markets with low liquidity, and is available on GitHub.
I then joined the Contextual Dynamics Lab (PI: Dr. Jeremy Manning) as a Presidential Research Scholar studying parallels between neural activity and stock market dynamics. Working with NumPy and Pandas, I helped create a PCA model for dimensionality reduction on stock market data and subsequently analyze the predictive value of high order price correlations, with the end goal of building a trading AI.
This fall, I joined Canopy, As a Software engineering intern for the fall, where I helped to improve the User Interface Design through designing an implementing changes to the code base. My other interests include Financial Technology, Full Stack Development, Machine Learning, 3D printing, Virtual Reality, and UI/UX design, and am currently looking to apply myself in one of these disciplines in an Internship for the Summer of 2022.
I also develop and maintain software on Github in addition to contributing to open source projects.
PredictBot
# Inventor, Developer
PredictBot is a personal project that Identifies arbitrage opportunities in the Political prediction market
PredictIt
. Using negative risk, it identifies opportunities to hedge against all possible market outcomes, and thus guarentee a profit.FullMarketAccess
is a Java class which parses the PredictIt Market API for price information, loading it into internalMarket
objects which are composed ofContract
objects. It then runs a series of simple tests to determine if a Market can be arbitraged. For more on how it works, see the github repoREADME
file. Currently, the most practical way to find arbitrage on Predictit is to examine the sum of “no” prices in large contract markets. In a given market in which one outcome must happen, the sum of all “yes” should add to 100%, implying that sum of all “no” should be (n-1) (100%) where n is the number of contracts in the market. By calculating this value for all Markets, PredictBot identifies when the true sum of “no” prices are less than (n-1) * (100), and returns the market to the user if it is. As an example, If (n-1)100 = 400, and the true market value is 3.96, this presents an opportunity to buy $4 for the price of $3.96.
Tiny Search Engine
# Developer
The Tiny Search Engine Crawls and Indexes webpages, and handles user Queries for relevant information. It was designed and implemented in C with a special emphasis on modularity. The crawler crawls a website and retrieves webpages starting with a specified URL. It parses the initial webpage, extracts any embedded URLs and retrieves those pages, and crawls the pages found at those URLs, but limits itself to
maxDepth
hops from the seed URL and to URLs that are ‘internal’ to the designated CS50 server. When the crawler process is complete, the indexing of the collected documents can begin. The index module is designed to take as input a page directory and index file name in the format./index pagedirectory indexfilename
This module then outputs the data to indexfilename where each line of the file contains data about word frequency in the formword docID count [docID count]...
. querier.c is activated by the command ./querier directory indexfile after it is made usingmake
. It is designed to execute from a command line with usage syntax./querier pageDirectory indexFilename
wherepageDirectory
is the pathname of a directory produced by the Crawler, and *whereindexFilename
is the pathname of a file produced by the Indexer.
Sudoku Solver
# Developer
Sudoku is well known logic puzzle where numbers between 1 and 9 are placed on a 9x9 grid of cells. This module is capable of randomly generating and returning a sudoku board with just 1 unique solution to be solved. It is also capable of completely solving a given 9x9 sudoku board if a solution exists. To build this module run command
make
. For representative test cases, runmake test
. To make a new random sudoku puzzle, run./creator [filename]
which writes a randomly generated and formatted sudoku puzzle to output file [filename]. To solve a given sudoku puzzle, run./solver [fileinput] [fileoutput]
.
stockprophet
# Developer, Researcher
The goal of StockProphet is to understand the complex dynamics of interaction in financial markets. This undertaking comprises four major projects; Data curation, feature generation, trading strategies, and backtesting.
Contexual Dynamics Lab Manual.
# maintainer
lab manual and source code for the Contextual Dynamics Lab (PI: Jeremy Mannning). A publicly Shared GitHub repo designed to help onboard In addition to lab policies and practices, it contains useful guides for tools and techniques frequently used in the CDL, as well as serves as the lab’s on-boarding platform for new members. We’ve chosen to share it publicly in the hopes that others may find its format, content, or philosophy useful, or offer us feedback on how to improve.
… and also this website!
In addtion to writing code, I love to create projects related to 3D modelling, UI/UX, and Math education. Here are some examples of my work:
The Beautiful checkerboard tiling problem.
Designed as a gentle introduction to Induction for Discreet Math students, this project and helped me solidify animation skills, while deepening my understanding of Discreet Math. This project was selected as a finalist in the first-ever 3Blue1Brown Summer of Math exposition Competition. It was selected from over 1500 entries, and received personal recognition from Grant Sanderson. It was designed and animated in Maya.
Remote Control Haptic Feedback Glove
Implemented using C++, this project aimed to give the user the ability to remotely control a robotic hand and gather haptic data about the object being interacted with. This project has potential applications in Virtual Reality, missions to other Planets, and rescue operations in dangerous areas for human beings.
Conic Sections and 4D parametrics
Conic Sections are at the heart of a surprising number of everyday phenomena, ranging from Newtonian Motion to 4D parametrics. In this project, I took inspiration from the book Flatland to create a simulated world full of cones, and used them to explain a number of interesting mathematical facts all tied together through the lense of better understanding the cone. modelled in Sketchup.
Camera Rocket Projectiles
Designed custom camera housing to launch cameras out of a potato cannon.
Animation and 3D modelling portfolio
Rendering and Animations done in Maya.
UI/UX prototype
Designed a User Interface prototype for an application to bridge the gap between generations by facilitating an exchange of ideas over a shared meal.
The Beautiful checkerboard tiling problem.
Designed as a gentle introduction to Induction for Discreet Math students, this project and helped me solidify animation skills, while deepening my understanding of Discreet Math. This project was selected as a finalist in the first-ever 3Blue1Brown Summer of Math exposition Competition. It was selected from over 1500 entries, and received personal recognition from Grant Sanderson. It was designed and animated in Maya.
Remote Control Haptic Feedback Glove
Implemented using C++, this project aimed to give the user the ability to remotely control a robotic hand and gather haptic data about the object being interacted with. This project has potential applications in Virtual Reality, missions to other Planets, and rescue operations in dangerous areas for human beings.
Conic Sections and 4D parametrics
Conic Sections are at the heart of a surprising number of everyday phenomena, ranging from Newtonian Motion to 4D parametrics. In this project, I took inspiration from the book Flatland to create a simulated world full of cones, and used them to explain a number of interesting mathematical facts all tied together through the lense of better understanding the cone. modelled in Sketchup.
Camera Rocket Projectiles
Designed custom camera housing to launch cameras out of a potato cannon.
Animation and 3D modelling portfolio
Rendering and Animations done in Maya.
UI/UX prototype
Designed a User Interface prototype for an application to bridge the gap between generations by facilitating an exchange of ideas over a shared meal.
william.l.mccall.23@dartmouth.edu
3225 Hinman @ Dartmouth College, Hanover, NH, 03755-4055