The Story of a Prisoner Who Became a Software Engineer
In a world where many may procrastinate learning to code or improving their skills despite leading a comfortable lifestyle, one man is proving that even the confines of prison cannot suppress a passion for coding. Meet the software engineer who, despite being incarcerated, is making his mark in the tech world. His story is a testament to the belief that anyone, anywhere, can master complex programming languages. AIM recently stumbled upon this individual—an open-source contributor and coder with expertise in Rust and Python programming languages, and an avid Linux user—who continues to build and contribute to databases, even from behind bars. What sounds like the plot of a movie is, in fact, the true story of Preston Thorpe, a software engineer at Turso, an open-source distributed database powered by libSQL. AIM had the opportunity to speak exclusively with Thorpe, who opened up about his journey of programming during his time in prison. A Prisoner’s Attempt at a Better Outlook on Life Through Coding The 33-year-old software engineer spends his days working remotely from his prison cell in the Mountain View Correctional Facility in Charleston, Maine. Despite the confines of the facility, he has become a software engineer at Turso, actively contributing to projects like the rewrite of SQLite. But his journey to this point has been far from conventional, driven by self-reflection, project-based learning, and an insatiable desire to improve. For nearly a decade, Thorpe was reportedly incarcerated for non-violent drug crimes. However, instead of succumbing to the obvious hopelessness that often defines life behind bars, he discovered a sense of purpose through programming. Explaining how it all started, Thorpe said, “There was one day, after spending a few years in the more calm and respectful environment in the Maine prison, where I had an epiphany and started questioning everything about my life.” “I no longer knew why I had accepted that identity and situation, none of it made sense to me anymore, and I decided that I was no longer okay with being where I was or who I had become.” Coding 90 Hours a Week Photo by Tima Miroshnichenko / Pexels Thorpe’s programming journey started with a simple but powerful resource: access to a computer through a prison college programme at the University of Maine at Augusta. With limited internet access and a passion to outgrow the curriculum in place, Thorpe created his own learning path. He primarily attributes his success to project-based learning, having had just enough high school experience to understand what he needed to learn. His days were consumed by intense self-study, working on projects, and contributing to open-source software. “I started in Python until I felt like I remembered enough of the basics, then moved to C and built very fundamental things like my own ‘standard library’ of data structures,” Thorpe said. This project-based approach allowed him to learn the intricacies of various programming languages while also developing practical tools that would serve as the foundation for his career. Thorpe’s learning wasn’t restricted to just writing code. He immersed himself in the theory of computer science, reading academic papers, listening to lectures, and exploring the underlying architecture of software systems. His interest in databases led him to explore relational databases, despite having no prior experience in the field. Thorpe explained that his database work initially involved logically isolated components, allowing him to focus on areas aligned with his existing knowledge. His initial contributions included translating from Abstract Syntax Tree (AST) to bytecode and working on the Virtual DataBase Engine (VDBE). He didn’t immediately delve into specific database internals, often working on the IO layer or the command-line interface (CLI). Thorpe also dedicated time to developing the extension library and Go language bindings. Through a process of gradual familiarisation, extensive reading of research papers, and studying CMU lectures, he built the confidence to explore diverse areas and implement features across the entire codebase. In a recent blog post on his company’s website, Thorpe highlighted, “I either write code or manage Kubernetes clusters or other infrastructure for about 90 hours a week, and my only entertainment is a daily hour of tech/programming YouTube.” The Career Progression Thorpe’s self-driven journey took a pivotal turn when he was accepted into Maine’s remote work programme—a rare opportunity for imprisoned individuals to pursue legitimate employment outside the prison. This programme became the gateway to his professional career in tech. “Because there was no precedent set for any of this, what I believe is the most crucial support was the fact that administrators took a chance and allowed me to earn their trust eventually,” he said. His first job was with Unlocked Labs, a company focused on building educational technology for incarcerated individuals. Thorpe’s contributions there quickly gained recognition, and within a year, he was promoted to lead their development team. Despite thriving in his role at Unlocked Labs, Thorpe’s ambition drove him to push even further. His exposure to the world of databases through various open-source projects eventually led him to Turso, a company working on rewriting SQLite. Grateful for the Absence of LLMs and Project-based Learning Photo by Google DeepMind / Pexels In today’s fast-evolving tech landscape, many developers turn to tools powered by large language models (LLMs) like Claude Code to speed up their learning and coding. However, Thorpe views his lack of access to these tools during his learning years as a blessing in disguise. “I’m very grateful that LLMs are something that I did not have available to me for a large portion of my time learning,” he told AIM. “With the proper discipline, if it is a topic you are truly interested in, you can certainly use it to help teach you things, but I would worry for anyone who may be inclined to take shortcuts, as it could easily prevent learning as well.” He firmly believes in the value of building real-world projects as a means of understanding and mastering programming concepts. He asserted that the knowledge gained from solving a problem and building a solution would surpass the learning acquired by breaking down each component and focusing on individual parts. For Thorpe, learning didn’t just happen in isolation. He also credited his contributions to open-source projects as a key part of his development. “I have found reading code very valuable,” he said. Looking ahead, Thorpe is particularly excited about the future of embedded and distributed databases. Moreover, he envisions significant future developments at Turso, including native support for efficient semantic searches and similarity matching in embedded databases. Such developments would enable more efficient reasoning over locally stored context, eliminating the need for separate vector databases or complex infrastructure.
“I’m very grateful that LLMs are something that I did not have available to me for a large portion of my time learning.”
“I’m very grateful that LLMs are something that I did not have available to me for a large portion of my time learning.”
["coding", "software engineer"]
["Go", "semantic search", "AI", "coding", "ML", "vector databases", "software engineer", "Aim", "Python", "SQL", "R", "kubernetes"]
["AI", "ML", "Aim", "vector databases", "semantic search", "kubernetes", "Python", "R", "SQL", "Go"]
I am a tech aficionado and a computer science graduate with a keen interest in AI, Coding, Open Source, and Cloud. Have a tip? Reach out to ankush.das@aimmediahouse.com