A multifaceted, versatile, senior data/ML/software development engineer, computer scientist, mathematician, poet, writer, and lover of cats.
Greetings! I'm William Fletcher Gilreath (he/him/his) I am a multifaceted data scientist, senior machine learning/software engineer, computer scientist, mathematician, poet, writer, and love cats.
I love working with software developing, testing, writing, and analyzing source code. In my spare time, I write both code and technical articles, and narrative prose: novels, short stories, book chapters, and poetry.
This home site illustrates some of the algorithms, code, programming languages, research papers, and projects I have created, written, and published.
I am now as of May 2025 a data engineer (mix of computer science+data science+software engineer) with Bayer. So...please bayer with me 😜 ( very punny...) as my career takes a new trajectory.
For the curious and intrigued, an icebreaker question I often get asked is: "How did you get started in software engineering?" I am more of a writer, so for this frequent question I have written a five-minute reading time short article describing my path in software/computer science/coding since I was a young boy.
Yet other questions I am asked are "What is the most difficult technical problem you had in your career?" and "What is a time when you were wrong?" Both these questions are answered with this short essay about an experience I had early on in my career as a software engineer.
Get-Star (get)* is a technical project I created, developed, and deployed that is a web search app. The project was a fun mix of creating a website with a custom domain, and using HTML/CSS/JavaScript to create a useful web tool for more efficient search.
The name "GetStar" is a homage to the 1970s movie Dark Star" and the use of forty-two (another homage to Douglas Adams The Hitchhiker's Guide to the Galaxy" novel, the answer to the great question...) parallel HTTP getrequests.
The Get-Star web app searches different sites and search engines with a search query but locally in the web browser. This requires pop-up windows so that each searched website appears with any results. Hence, this is not a super-search engine, but a parallel, in-tandem search of heterogenous sites for different content, all different.
A technical whitepaper "Get Star: The Problem of Finding Information across Multiple Web Sites" [pdf (506 Kb) ] goes more in depth, and is available on the get-star.org website.
My current technical project is a new programming language "ZeptoN" from "zepto" + "N". A small programming language (zepto- is a factor of 10-21) that is the Nth programming language (as programming languages go from 1 to N) where this is the Nth programming language.
The ZeptoN whitepaper [ epub | pdf (6 Mb) ] describes the ZeptoN language, its goals, and gives many examples with output to illustrate the ZeptoN programming language.
ZeptoN extends Java by adding a program entity "prog" construct like a class (without the object-oriented trimmings), with an implicit program entry point as a block. Yet ZeptoN is completely Java syntax and concept compatible. ZeptoN puts the program back into Java programming!
ZeptoN is now available on my GitHub repo for download, or the GitHub page. This is the ZeptoN "Echo" transcompiler which transpiles to Java, and then uses the Java Compiler API to build a Java bytecode .class file.
I have had an article about ZeptoN published on JavaCodeGeeks explaining how to extend the ZeptoN language.
There are three articles on HackerNoon that introduces, setup, and provides a "taste" of the ZeptoN language. These articles are:
Part 1: "What the Do-While Is ZeptoN?"
Part 2: "What the Do-While Is ZeptoN? Part II: Getting Started...What You Need"
Part 3: "What the Do-While is ZeptoN? Part III: A Taste of ZeptoN..."
More articles about the ZeptoN programming language will be written for greater examination, evaluation, and illumination of concepts, ideas, and other notions.
I have an inactive blog about my technical dabbling and other things...entitled Much Ado About Nothing where I write about this, that, and the other, but not of late. Note that I am not on social media (except LinkedIn) too much melodrama, and I do not want my personal life on the Internet.
I do write an occassional treatise or essay about a particular theme or topic.
One essay I have recently written is Innovator's Beware that describes the 25-years timeline after creating an 'impossible' algorithm that sorts in linear time by hashing—yet all the skeptics never got the source code to see the hash sort algorithm in action. Quod, quod, fiat.
Here are some of the books I have written...
Computer Architecture: A Minimalist Perspective - explores computer architecuture of a one-instruction set computer the ultimate minimal instruction set.
Computer Architecture: A Minimalist Perspective Exercise Solutions Manual - the exercise solutions manual for Computer Architecture: A Minimalist Perspective problem questions at the end of each chapter.
Non-Negative in Value Absolute in Function—the Cogent Value Function - examines an alternative to the absolute value function, the cogent value function, that is continuous and differentiable at zero.
Will's Elided Java Api Compiler (WEJAC) UserBook - a user book on how to use an elided command-line option Java compiler available on - a user book on how to use an elided command-line option Java compiler available on GitHub.
Zing This! - The book covers the origin, history, implementation, and software architecture of the Zing network utility. The reader will explore utilizing, operating, and the functionality of the Zing network utility that are examined and discussed in depth. Available on GitHub.
Here are some theoretical research papers I have written, and have been published.
Posolutely and Absitively: The Alternate Yet Universal Definition of the Absolute Value Function - analyzes, describes, and discusses, an alternate definition of the absolute value function (Triple Power Quad function or TPQ) that does not have some of the mathematical issues with the existing absolute value function definition.
CHARIBDIS Continuous Hash Algorithm Random Integral Binary Datum Infinite Series: A Secure Random Number Generator - analyzes, describes, and discusses, a secure random number generation algorithm implemented in Java.
Division by Zero Fallacies using Transmathematics - examines classic division by zero fallacies but from transmathematics perspective.
Instruction Set Completeness Theorem: Concept, Relevance, Proof, and Example for Processor Architecture - a mathematical examination from formal proof to an example instruction set about the correctness of the theorem.
Non-Negative in Value, but Absolute in Function by a Magnum and Parabolin—the Cogent Value Function - mathematical re-definition of the absolute value function that has different properties and does what the existing absolute value function can not.
The Problem of the Two Couriers - an application of transmathematics to a centuries old algebra problem to illustrate division by zero in practice. The paper was published July 2019 at Transmathematica 2019 – The 2nd International Conference on Total Systems. The presentation given is available as a PDF or as Keynote set of slides.
Check out my Google Scholar or Microsoft Academic or Semantic Scholar for my publications, and other works.
My Open Researcher and Contributor Identifier for a list of my published research papers.
Some of the source code I have written for various projects...
CHARIBDIS - the Continuous Hash Algorithm Random Integral Binary Datum Infinite Series, the open-source code, for the CHARIBDIS cryptographically secure random number algorithm.
py7 or π-7 - the py7 or π-7 Python code lint tool in Python that combines seven Python code checking tools into one interactive tool.
Zing - the Zing (zero-packet Internet groper) an open-source network utility implemented in nine programming languages.
ZeptoN - the ZeptoN Echo transcompiler, both source code and a Java binary, for the ZeptoN programming language.
WEJAC - Will's Elided Java Api Compiler, a javac alternative that has simpler and fewer command-line interface (CLI) options. The user manual for WEJAC is available as an e-book on Smashwords in various formats.
DBXShell - the DropBoX shell connects to a DropBox storage account, and perform file and folder operations in command-line interface client.
Boz - compiler for a programming language "Boz" (a pen name of Charles Dickens) developed using the JavaCC compiler-compiler tool.
Hash Sort - sorting by hashing into a matrix.
XML Tokenizer - XML tokenization into tags, attributes, text, for an XML token stream.
Binar Shuffle/Sort - shuffle (unsorting) and sorting by using bits of binary datum.
FunCL - (rhymes with "uncle") interpreter for the FUNctor Clause Language, a functional style programming language that is both like Forth and LISP but without the reverse Polish notation or parenthesis.
These are the technical articles I have written:
The Beginning of the Era of the Knowledge Navigator? - an article published in Dev.To Community site April 2026 about how Google Chrome + Gemini AI in the web browser is like the concept of the "Knowledge Navigator" a concept described by John Sculley the former CEO of Apple Computer.
Py7-Lint-Tool or py7 or π-7 - a technical article published in Linux Magazine #302 January 2026 about a Python Code Check Linting Tool. The Py7 tool is an open-source multi-tool Python source code linting tool implemented in Python. The Py7 tool combines seven Python lint tools to deliver a comprehensive check of Python source code for issues.
Smart Shell: Accessing the Google Pathways LLM from a Bash Script - a technical article published by Linux Magazine #282 May 2024 about the PaLM shell that connects to the Google Gemini AI or formerly Pathways LLM that is implemented as a bash script.
Have a Bash with the Zing network utility Zinger - a technical article published by Admin Magazine #77 October 2023 about the zing network utility implemented as a bash script.
Why the GNU General Public License v3 for Your Open-Source Project? - an article about choosing an open-source license, and why I use the GPL v3 published on HackerNoon July 2023.
Zing Me - a technical article published by Linux Magazine #265 December 2022 about the zing (zero-packet Internet groper) network utility.
Adding Range Type in Java - a technical article published by JavaCodeGeeks about adding a range type into Java.
ZeptoN is Putting Program into Java - a technical article published by JavaCodeGeeks about ZeptoN, extending the transcompiler.
The Problem with Creating Generic Arrays - a technical article published by JavaCodeGeeks about resolving a problem with generic arrays in Java.
XString - a method of "flattening" an XML document into a linear string; then an XML document can be handled as a string. Interestingly, one could embed XML in XML using an XString.
Hash Sort: A Linear Time Complexity Multi-Dimensional Sorting Algorithm - a sorting algorithm that uses hashing within an N x N matrix.
Binar Sort: A Linear Generalized Sorting Algorithm - a sorting algorithm that partitions like the QuickSort algorithm but uses extracted bits from the datum element to sort the data into an ordered permutation.
Binar Shuffle: Shuffling Bit by Bit - a shuffle algorithm that uses a "bit schedule" to shuffle each datum element into a random permutation.
Mynx Programming Language - the user manual for a programming language I developed that is Pascal/Algol-style syntax, but an object-oriented programming language.
Boz Programming Language - the user manual for the Boz programming language that I developed that is a "duck typed" object-oriented programming language.
I am a multifaceted senior software engineer, computer scientist, mathematician, poet, writer, and lover of cats. I have been writing code starting from when I was a boy, and now in many programming languages, frameworks, operating systems, for multiple platforms over 30+ years.