Inference programmers write the software that allows Cyc to reason logically.
As a software project, Cyc is ambitious and multi-faceted. It has the ability to communicate seamlessly with other computer systems, from relational database servers to JSON APIs. It uses predicate logic to represent a staggering variety of problems. Cyc can parse natural language, solve algebraic equations, and recommend medical treatments. Its predicate logic is powerful enough to represent anything from the value of the US dollar to the smell of peanut butter.
Inference programmers write the code that allows Cyc to do these things. Working primarily in LISP, they work constantly to improve Cyc’s core logical reasoning capabilities while simultaneously responding to bug reports from clients and from Cyc’s own ontological engineers. Examples of projects that an inference programmer might work on include:
- The Inference Algorithm: Cyc solves problems by combining thousands of modules; each module represents a single logical step that Cyc could make in solving a problem. Inference programmers write new modules and design meta-reasoning algorithms to ensure that Cyc always takes the right approach.
- Semantic Knowledge Source Integration (SKSI): Cyc has the ability to import data from a wide variety of sources, including relational databases and online triple stores. Inference programmers write code to connect Cyc with these data sources and auto-generate queries in various languages.
- Testing and Benchmarking: Like any piece of software, Cyc has to run efficiently and correctly in order to be effective. Inference programmers at Cycorp write unit tests for every new feature they develop and use data analysis to study the impact on Cyc’s speed and problem-solving power.
Some inference programmers also do project programming, which involves developing Cyc-powered applications for clients. Cycorp has a flat management structure, giving programmers a high degree of freedom in how they manage their own time. Developers at Cycorp are expected not only to maintain Cyc’s complex codebase but actively contribute to its evolution by proposing new features and algorithms.
A successful inference programmer must…
…be comfortable with functional programming languages (such as LISP, Scheme, or Python).
…be self-motivated and have an interest in artificial intelligence. Cycorp emphasizes having independent and creative employees over having a rigidly structured environment.
…have extensive knowledge of fundamental data structures and algorithms.
…be courageous. You will be wading into 35 years worth of code. This requires you to dig into the code to both understand and improve it.
An ideal candidate will also have…
…software productization experience.
…familiarity with classical AI methods. This includes graph-based AI, other inference engines, and predicate logic.
…familiarity with databases and query languages such as SQL, SPARQL, PostgreSQL, etc.
…familiarity with machine learning methods such as Bayesian networks, recurrent neural nets, SVMs etc.
For the last 35 years, our 50-person team has been building Cyc, the world’s only AI that deeply understands what it’s reasoning about (as opposed to what everyone else today calls “AI”: statistical machine learning and limited-logic knowledge-graph searching). Human-level Artificial General Intelligence (AGI) only needs to be created once. Now that we are nearing our goal, we’re looking for people to join our team to help us push across the finish line. As an Inference Programmer, you will help Cyc reason efficiently over its 25 million (and growing) assertions in the knowledge base. You must be skilled at algorithms, functional programming, and formal logic. Your work will be split between programming in SubL, a variant of LISP, and CycL, a quantified predicate logic. You should enjoy the challenge of thinking about multiple reasoning paths, and metareasoning about how to quickly and correctly traverse massive problem spaces.
What it’s like to work as an Inference Team Member
- In addition to providing general inference support, many of our programmers work on one or two particular Cyc applications as ‘project programmers’: such individuals must be especially responsive to client needs.
- Most of the work happens in teams, so programmers need to be able to communicate effectively and work collaboratively with their colleagues.
- Cycorp is a creative environment. There is not just a single way to solve any problem, and we encourage and require programmers who are continually experimenting with novel, clever ways to chip away at problems.
- Cycorp uses the knowledge base to ground all of its projects, which means that everyone can benefit or hinder everyone else. To maximize the former and minimize the latter, programmers must be diligent at making and running tests, and must be insightful about how their work will impact others.
- You must be comfortable with functional programming languages (such as LISP or Scheme).
- You must be self-motivated and have an interest in artificial intelligence. Cycorp emphasizes having great and creative employees over having a rigid structured environment.
- You must have a talent and passion for clever algorithm design.
- Programmers must be bold: you will be wading into 35 years worth of code. This requires you to dig into the code to both understand and improve it.
Non-requirements that are pluses
- software productization experience.
- familiarity with other inference engines.
- experience with higher order logics.
- database qualifications.
- machine learning skills.
- experience implementing probabilistic reasoning (e.g. Bayesian Networks).
Cycorp is headquartered in Austin, Texas, and applications are understood to be for regular, full time employment. Cycorp is an equal opportunity employer. We conform to all the laws, statutes, and regulations concerning equal employment opportunities and affirmative action. We strongly encourage women, minorities, individuals with disabilities and veterans to apply to all of our job openings. We are an equal opportunity employer and all qualified applicants will receive consideration for employment without regard to race, color, religion, gender, sexual orientation, gender identity, or national origin, age, disability status, Genetic Information & Testing, Family & Medical Leave, protected veteran status, or any other characteristic protected by law. We prohibit retaliation against individuals who bring forth any complaint, orally or in writing, to the employer or the government, or against any individuals who assist or participate in the investigation of any complaint or otherwise oppose discrimination. Cycorp will hire only persons authorized to work in the United States and will verify identity and eligibility for employment, and complete Form I-9 for all new employees on the date of hire.