Wesner Moise

Bio

Introduction

Author image

I am Wesner Moise. I develop general-purpose software that has impacted billions of consumers. I am proficient in desktop, mobile, web, and microservices. I am also proficient in data-intensive and artificial intelligence applications.

I am intelligent. I was admitted to the Triple Nine Society, a high-IQ society, having scored in the 99.9th percentile in every standardized admissions test (SAT, GRE, GMAT) I have taken. I have also ranked in the 99.9th percentile in two separate competitive programming forums (HackerRank and CodeChef), placing in the top four in the US and the top twenty-five worldwide.

Education

I have a Harvard bachelor’s in applied mathematics and computer science, an MBA from UCLA specializing in technology entrepreneurship, and a master’s in artificial intelligence from University of Texas at Austin.

Microsoft recruited me directly from Harvard College to work as a software design engineer. There, I developed PivotTables and other data features in Microsoft Excel for six years. In my first version of Excel that I worked on, I wrote the most lines of code of any developer in the group—about ten times the median developer.

I left Microsoft to pursue an MBA focused on technology entrepreneurship. The UCLA Anderson school of business admitted with a Dean’s Fellowship. My application essay expressed my desire to build an AI institution. I developed a business plan for a natural language wordprocessor Pensa that could rewrite and predict sentences and was trained on Internet data. The business plan won money as a finalist for a national business plan competition.

SoftPerson

After the MBA, I founded a software company, SoftPerson, to develop revolutionary desktop applications built on AI. The name was carefully chosen to indicate software that thinks and acts like a person. I conceived of generative AI applications—including text-to-image and code analysis—twenty years before it became trendy. Some of these, I have written blog posts about on my “Smart Software” blog as a record.

I developed my own wordprocessor, natural language parser, static code analyzer, and reasoning engine.

Goals

My name is Wesner Moise. I am first a computer scientist and second a software engineer.

I think about fundamental problems in computer science and artificial intelligence.

My career primarily revolves around:

- Data – streaming data, data analytics, data processing, data visualization (Microsoft, Adobe, mParticle)

- Document-based applications – layout engines, application frameworks (Microsoft, SoftPerson)

- Symbolic AI – natural language semantics, program language semantics, symbolic computation, automated reasoning, planning (SoftPerson)

My AI work is the most significant and challenging work I have done but the least seen.

Until the past couple of years, I was surprised that no applications in the marketplace had attempted any of the ideas I worked on. That changed with text-to-code (CoPilot), text-suggestions (GPT-3), and text-to-image-synthesis (Dall-E). Some other ideas still haven’t come into being.

It is motivating me to rekindle my work.

My NStatic static analysis tool in 2006 modeled the semantics (lambda expressions) rather than the code syntax (parse trees). Two different code fragments that perform the same operation have the exact internal semantic representation. A semantic model allows automatic proof generation, automated documentation, code conversion, code simplification, code differencing, and text-to-code synthesis. These were all applications that I intended to enhance the tool with. I intended to mine source repositories by attaching multiple natural language semantic labels from comments and method names to the semantic representation of each code fragment and then using collisions to validate the assignment.

My Pensa natural language word processor, a finalist in a national business plan competition in 2002, included automated suggestions, rewriting, and paraphrasing capabilities. I also researched a text-to-image drawing product that could generate a 3D scene description language; the effort would be prohibitive for anything but a small domain like diagramming, for which auto-layout engines are already available.

Aside from the AI work, I looked at functional user interfaces (well before React), 3D user interfaces, and structural editors to escape the constraints of text editors.

The goals of this website are multifold.

Elaborate on accomplishments

My resume/CV looks fairly standard despite having illustrious brand names. What isn’t conveyed are the extraordinary accomplishments that I have made.

- I can create software that most developers don’t know is possible. Even when presented, the approach used is not apparent or easily reverse-engineered. I am not even referring to unexplainable techniques like machine learning.

- I have performed at the 99.9th percentile in multiple national and international competitions. I have also outperformed coworkers and classmates in ways not visible in my resume. My primary aim in these competitions is to acquire knowledge and construct a library of algorithms. A high ranking is a secondary goal, mainly to gamify the experience.

- I have taken hundreds of university courses, mainly in computer science but also in virtually every other field.

In my own software company, I worked on incorporating artificial intelligence into traditional applications such as word processor and text editors. My software research focused on denotational semantics (of both natural language and programming languages) and symbolic computation.

The software research could be worthy of a Turing Prize, maybe in an earlier era, as the present-day advances in machine learning are astonishing. It can also be productized into a billion-dollar business–the main reason for my MBA. It’s also gratifying because it provides constructive answers to fundamental philosophical questions on knowledge, intelligence, meaning, and consciousness.

I don’t expect to win a prize. Receiving an award is not necessary to me, just the caliber of work. Winning a prize or academic acclaim may require open-sourcing my research and conflict with commercial success, but opening my work would allow me to witness the second-order effects of my contributions before I die as people would clone and build on top of it.

Am I deluded?

The scope of my work is extensive. It extends the programming paradigm to new domains. It adds reasoning capabilities to existing programming paradigms. It ties different computer science disciplines together. It also makes computer science coursework much more relevant to software engineering. It would change the way people think about programming.

I worked on my research full-time, supported by my savings, for over a decade and thought about it for twice as long. I built advanced but incomplete systems. I spent as much time as any professor without needing grant writing, publishing, teaching, and other administrative work. Aside from software development, competitive programming, chess (which I gave up), reading, and online courses, I have no other hobbies or sources of entertainment. I don’t play video games, watch television, have relationships, or waste time in other ways. My research is my purpose in life, and it addresses three goals:

  1. Advancing the frontier of knowledge
  2. Achieving financial independence
  3. Unraveling the mystery of life

Communication of Ideas

My ideas on software are original and creative yet are derived from mathematical and philosophical first principles such that they would feel different from software fads du jour. Computer science is a young field, younger than the average lifespan. The computational mindset has yet to encompass all possible domains, particularly natural languages, programming languages, mathematics, and DSLs.

In originating ideas, I actively avoid or question prior research. Old ideas were developed in a time with less knowledge; new ideas are subject to groupthink. I deliberately studied how seminal discoveries like the invention of zero or the notion of time units, for instance, came about or, in recent times, new language constructs. My creativity also stems from my relative social isolation. Present culture regularly reinforces through social interactions and framed speech the mystical quality of consciousness and intelligence. On the other hand, virtually all my ideas stem from a core central idea related to my semantics work.

A New Software Design Philosophy

I want to write new books on algorithms, classical artificial intelligence, and software design. The goal is a radical revision of the approach to teaching these subjects. Existing books on algorithms and AI follow a similar organization and essentially rehash the same ideas.

The new treatment will tie the disparate computer science disciplines of AI, algorithms, compilers, computation, reasoning, programming language theory, and databases. This is possible because the disciplines have an established basis in set theory.

I will preview my approach in a blog post on red-black trees. The red-black trees data structure is a well-known ugly duckling in computer science. Writing algorithms to insert and delete keys are painstaking and error-prone, with many variations proposed to simplify the data structure. The original and variant implementations are misguided, and I will offer an alternative implementation along with guidance for fixing other misguided data structures.