No! :)
*we do continue to label data though and will probably have a large "AI Trainer" staff in place for any NEW skill we want Amy to have in the future.
At x.ai, we are building an artificial intelligence powered personal assistant. The software will schedule meetings for our customers automatically without subjecting them to the typical back and forth over email negotiating when and where to meet someone. We are looking for a smart, self-motivated, and enthusiastic individual to join us on the journey in building the artificial intelligence of the future. You’ll get to work side by side with a small team of serial entrepreneurs moving at breakneck speed.
A Backend Engineer will:
- Build, evolve and scale out infrastructure to ingest, process and extract meaning out of free form text
- Jump between architecture, implementation, infrastructure management, and firefighting
- Design and build a system that enables seamless human-machine interactions
- Solve various optimization and constraint problems related to coordinating people’s schedules and preferences
- Integrate with various external APIs
- Constantly improve our development processes and tools to reduce friction from idea to deployment
Ideal Candidate:
- Build maintainable, well tested and scalable code
- Experience with building big data processing system
- Data modeling and architectural skills
- BS or MS in Computer Science (or related field)
- Intellectually curious, collaborative, self-motivated, fast learner that is comfortable with uncertainties
- Want to be part of a passionate and collaborative team, looking to make a mark in the world
- Our backend is built in Scala so direct experience will be preferred
- Bonus: Experience with AWS, MongoDB and EMR/Hadoop
At x.ai, we are building an artificial intelligence powered personal assistant. The software will schedule meetings for our customers automatically without subjecting them to the typical back and forth over email negotiating when and where to meet someone. We are looking for a smart, self-motivated, and enthusiastic individual to join us on the journey in building the artificial intelligence of the future. You’ll get to work side by side with a small team of serial entrepreneurs moving at breakneck speed.
A Data Engineer will:
- Build, evolve and scale out infrastructure to ingest, process and extract meaning out of free form text
- Jump between architecture, implementation, infrastructure management, and firefighting
- Design, implement and evolve Natural Language Processing software modules
- Solve various optimization and constraint problems related to coordinating people’s schedules and preferences
- Constantly improve our development processes and tools to reduce friction from idea to deployment
Ideal Candidate:
- Build maintainable, well tested and scalable code
- Experience with building big data processing system
- Strong statistic background, ideally experience Natural Language Processing techniques
- Data modeling and architectural skills
- BS or MS in Computer Science (or related field)
- Intellectually curious, collaborative, self-motivated, fast learner that is comfortable with uncertainties
- Want to be part of a passionate and collaborative team, looking to make a mark in the world
- Bonus: Experience with Scala, AWS, MongoDB and EMR/Hadoop
At x.ai, we are building an artificial intelligence powered personal assistant. The software will schedule meetings for our customers automatically without subjecting them to the typical back and forth over email negotiating when and where to meet someone. We are looking for a smart, self-motivated, and enthusiastic individual to join us on the journey in building the artificial intelligence of the future. You’ll get to work side by side with a small team of serial entrepreneurs moving at breakneck speed.
A Data Scientist will:
- Design, develop and implement statistical models to carry out various novel aspects of classification and information extraction from unstructured text, such as emails or email threads
- Using a combination of judgement and experience, create hypotheses to confront complex Natural Language Processing problems
- Be capable of designing stringent tests of these hypothesis and use results to guide further development towards performance optimization
- Familiar with or eager to learn various advanced statistical techniques to solve different optimization and constraint problems related to automating the coordination of people’s schedules and derivation of implicit and explicit preferences from email-related data
- Be capable of visualizing and communicating data science concepts to other team members, and seek meaningful feedback from them
Ideal Candidate:
- Quantitative degree and/or relevant experience
- Strong statistics background, ideally experience with Natural Language Processing techniques; loves building mathematical and probabilistic models and algorithms
- Code experience in a production environment; familiar with data structures, parallelism and concurrency
- Intellectually curious, collaborative, self-motivated, fast learner that comfortable working in a dynamic environment tackling challenging problems
- Bonus: Experience with Scala, Python, AWS, and MongoDB; implementation experience with supervised and unsupervised machine learning algorithms
Absolutely agree. We must understand the social dynamics that are inherently built into every meeting - and this is one 4 major challenges we are working on going forward.
But our early beta users should not be to shy to cue in Amy:
- Amy, set something up with Lerer in Soho
- Amy, can you arrange breakfast with Matt and FirstMark please. They can pick a place.
- Amy, setup a data science / whiteboard chat for Prateek and I *
* My default meeting location is 48 Wall (Amy knows that, and simply assume I want this location used for a new candidate interview)
Well, I cc'ed Eric, Ken and Taylor, and Amy worked with them individually to find the best time. Upon conclusion, she sent the invite AND out came a $check. ;)
Building a conversation model which can negotiate with multiple guests on behalf of the host in plain english is not easy (for us). This includes simple social concepts such as "compromise" - say, when to push for one location over another. The information extraction problem alone is a major challenge.
No buzzwords needed, we are just trying to do some good work, and if we succeed, we think many people would like it: https://twitter.com/search?q=xdotai
Gads. That's tough to do well, and as a
user I'd always wonder if the software got it
right unless I just kept checking.
And why try with plain English? Heck,
long ago I commonly wrote Fortran programs
with very easy to use input: Start with a file
that asks for all the data. Each line of that
file starts with some character to indicate
that the line is such a request and
with, say, a number, to indicate what request
it is. Then a user just types in their
data after each such request. It's dirt
simple to implement and for users to use.
So, for human readable input, just do it
that way. Natural language understanding --
f'get about it.
Once I programmed something where the
human input was a lot like XML --
really simple to use.
I agree and I could easily see myself use something like that. However, I want something (naively perhaps) which my Mom can use. My worst nightmare is one where early users inadvertently create some sort of "syntax" which my mom use to discard this as a service for her. Like she discarded the idea of twitter, because people created a RT, MT $bla #bla etc. "syntax".
Your goal is fine, fully appropriate.
Of course your mom should be able to use it;
anyone who can type and read should be able
to use it. Fine. And there is no need
for any nonsense gibberish such as
"RT, MT".
But, I believe you are over estimating the importance
of having some natural language understanding,
under estimating the difficulty of achieving that
understanding reliably in software,
and are very much under estimating how easy
to use, even for your mother, for anyone
who can type, something like I outlined can be.
E.g., when I was in grad school, I took out some
time to earn some money so that my wife and I
could complete our Ph.D. degrees. For the money,
I worked as an applied mathematician, computer
guy in a research shop doing work mostly for
the US Navy. So, yes, we had secretaries who
did a lot of typing but had no word processing.
As part of my work in applied math, I ended up
as system administrator of a super-mini computer.
Of course, for programming, it had a text editor.
If only for writing the computer manuals, it
had a simple text formatting program, call it
a member of the family of Runoff programs.
And I'd gotten a daisy wheel printer nicely
driven -- asynchronous serial communications
with ASCII characters and the XON/XOFF
handshaking (pacing)
protocol -- by
the computer. So, we were GO to do a LOT of
typing.
Soon enough the secretaries wanted to get on
board with this new stuff. So,
for them, one at a time, we pulled
some 5 conductor, general purpose
signal cable with a 25 pin plug at each
end (we only connected the pins for the
signals
SEND, RECEIVE, and
SIGNAL GROUND), and a dumb terminal.
Bottom line: All the secretaries got
on board right away. The ones without
a terminal begged for one. No one
ever gave one of the secretaries more than
a few minutes of 'training'. They all caught
on right away, to logon, files, the hierarchical
file system, the text editor, the runoff program,
the daisy wheel printer, etc. Right away.
Later as a college prof, I did the same
for the business school, and again the
secretaries 'got it' right away.
Gee, we weren't asking them to write
macros in TeX!
So, back to my suggestion:
You want an appointment. So, you send something
like
=== May we meet? Let's pick a time and place.
=== My name
=== My job
=== My e-mail address
=== My phone number
=== Subject of meeting
=== When to meet
=== Where to meet
or some such. Then you use just typing to
insert data
under each of these or some such,
likely need something better, but you
get the idea, and send your e-mail.
A human, including your mother, can read it
and respond. And they can respond with a
similar e-mail.
If either end of the communications is using
your software, then the software can
read that data and make sense of it
much easier than for natural language processing.
Or, send the person some e-mail with a URL
to a server with a Web page with a form and
some JavaScript to help the person fill out
the form. Then we're into just
a Web form solution that we know very well
how to handle.
Forms work great; people are really good
at entering data into forms.
For people who have your app, it can replace
the Web site.
No way do you have to use gibberish such as
"RT, MT". Instead, everything a user reads
can be in complete English sentences with
a button with Help for more explanations, etc.
It can be easier to use than most Web forms,
and 1+ billion people use those.
It can be easier to use than Google,
e.g., where Google has those little horizontal
bars to indicate (I never got that memo or
read any explanation in a help message)
for more options. Last I checked, Google
had a lot of users.
It can be easier to
use than the Amazon Web site, easier to use
than Facebook.
You are underestimating
the ability of your target users to
make use of simple computer user interfaces.
My guess is that there is no way natural language
processing can be good enough
that, net, it is easier to use than
just some simple forms or something like
I outlined above.
Gibberish like "RT, MT" is really a straw man to
knock down. Instead, never but never should
there ever be any gibberish or undefined terminology
or undefined acronyms in any user interface. That
rule is easy to obey, and natural language processing
is a very hard way to obey it.
The real business need and opportunity is
meeting scheduling, not finding
work for natural language processing.
Well the scheduling program works as your PA, and is expected to deal with other humans who want to schedule meetings with you. So not only does it have to understand their correspondence, it also has to negotiate with them. This requires NLP
As someone else mentioned, that would require the other party to click a link and be directed to some webpage for said form. I agree, that's not too much of a hassle and in my instances can be far more effective than setting up a meeting on email (for example if it displays the free slots of all involved parties like doodle.com), but that's what x.ai is offering: letting people scedule the way they already do
I am not sure I would be offended if somebody called a service "Dennis" (probably the opposite). That aside, use Andrew Ingram instead, or name her yourself and move her to your domain (the most obvious premium product we have in mind).