►
From YouTube: Lightning Talk: The $103k API: How NodeJS Saved the U.S. Government $100k - Ryan Hillard
Description
Lightning Talk: The $103k API: How NodeJS Saved the U.S. Government $100k - Ryan Hillard, U.S. Small Business Administration
A
Good
afternoon
my
name
is
Ryan
Hillard
and
I
work
for
the
US
Small
Business
Administration
I'm,
here
to
share
with
you
one
of
my
misadventures
so
last
year,
I
got
a
call
for
help.
Things
were
behind
schedule,
people
weren't
cooperating,
and
there
were
lots
of
technical
issues
happening
with
this
project.
So
I
dug
in
I
had
a
bunch
of
calls
sent
a
bunch
of
emails.
Did
some
meetings
I
figured
out
what
was
going
on?
A
We
had
an
old
system
that
had
external
users
and
internal
users
that
had
been
migrated
to
the
cloud,
but
the
external
users
hadn't
been
taken
into
account.
This
system
is
a
case
management
system
for
the
agency
to
receive
feedback
from
the
public
and
then
process
it
well
because
of
how
our
security
works.
In
our
new
system,
we
weren't
going
to
allow
external
users
to
access
it.
So
I
sat
back
and
I
thought
hmmm
I
wonder
if
the
case
management
system
could
expose
an
API,
so
people
could
open
cases
from
a
generic
form.
A
Well,
we
asked
the
vendor
to
expose
an
API
like
that
and
they
came
back
with
an
obscene
quote
a
hundred
and
three
thousand
dollars.
This
is
how
I
felt
and
we
took
a
little
pause,
because
we
were
pretty
unhappy,
so
we
went
back
to
the
drawing
board
and
we
looked
at
the
stated
requirements.
We
needed
a
form,
it's
got
to
be
interactive
and
it's
got
to
move
some
data
pretty
simple,
but
the
situation
isn't
the
unstated
requirements
are
that
that
forms
gonna
live
for
a
long
time.
A
We
have
limited
budget
to
do
it
with
we're,
not
gonna
really
be
able
to
maintain
it,
and
so
therefore
it
needs
to
be
secure
from
the
beginning.
So
I
immediately
turned
to
s3
Amazon
simple
storage
service.
To
put
this
on
the
internet
without
the
need
of
a
server
for
the
backend,
we
looked
at
AWS
lambda
the
function
as
a
service
offering
and
running
our
code
using
nodejs
I
wanted
to
use
node
because
I
wanted
any
web
developer.
That
comes
along
after
me
to
be
able
to
jump
in
and
hit
the
ground
running.
A
So
looking
at
the
requirements,
the
client
needs
to
be
able
to
support
this
interaction.
Where,
if
someone
wants
to
remain
an
anonymous,
we
don't
force
them
to
fill
out
all
of
the
contact
information.
Well,
we
could
do
that
with
something
fancy.
But
after
looking
at
the
requirement,
it
was
clear
that
the
normal
get
element
by
ID
API
in
the
Dom
would
get
us
there,
so
we
ended
up
leveraging
that
another
requirement
is
this
concept
of
an
auto
filling
date.
So
we
looked
at
that
as
well
and
well.
A
You
could
grab
a
library
like
moment
to
do
that.
It
would
be
way
overkill.
Seven
lines
of
vanilla,
JavaScript
get
us
there.
So
all
in
all,
we
have
about
300
lines
of
code
making
up
our
client
and
our
server
is
using
core
features
and
node
to
prove
out
the
concept,
so
we're
using
query
string
to
parse
the
event
we're
pulling
out
the
data
we
need
and
to
demonstrate
that
we
have
everything
in
terms
of
contact,
information
in
case
management
and
then
we're
sending
it
back
to
the
user
as
a
proof
of
concept.
A
21
lines
of
node
code
get
us
there.
So
I
want
to
stop
here
because
during
the
pandemic,
I've
been
learning
woodworking.
This
is
a
wooden
biscuit.
It's
an
interface!
Much
like
software
development,
woodworking
has
interfaces
and
the
wooden
biscuit
pictured
on
screen
and
I'm
holding
up
here.
It
helps
two
pieces
of
wood
fit
well
together,
but
what's
cool
about
it
is
that
it
can
slide
back
and
forth
and
be
a
little
dynamic
and
fit
in
where
it
needs
to
well.
A
No
js'
is
like
that
in
the
software
development
world,
I
love
node
because
of
its
versatility
and
its
dynamism.
So
once
you
combine
node
with
the
function
as
a
service
offering
like
lambda,
you
can
start
to
do
really
cool
stuff
like
take
these
misaligned
edges
and
start
to
piece
them
together,
so
stepping
back
for
a
second.
What's
the
maintenance
cycle?
Look
like
for
our
solution?
A
John
King
asked
this
great
question:
what's
the
actual
lifetime
of
the
decision,
you're
making,
are
you
taking
four
years
to
build
a
system?
That's
only
gonna
live
for
five
thinking
about
the
incredible
expansive
nature
of
the
JavaScript
ecosystem.
I
wonder
if
sometimes
we're
pulling
in
so
much
code
that
we
can't
really
maintain
it.
Jack
Kinsella
asked
this
question:
has
someone
written
a
book
about
one
of
your
dependencies
if
they
have
there's
probably
so
much
complexity
in
that
dependency
that
there's
no
way
you're
fully
understanding
it
don't
end
up?
A
Like
me,
this
is
a
real
picture
from
one
of
my
repositories
with
52
open
security
alerts
on
it.
Dan
McKinley
finally
rounds
us
out
with
this
great
question.
How
would
we
solve
the
problem
at
hand
without
adding
anything
new
I
would
upon
that?
Maybe
our
toolkit
should
look
a
little
bit
more
like
this
and
less
like
that
giant,
expansive,
intimidating
wall
of
500
wrenches,
so
I'll
leave
you
with
one
final
question,
which
is:
what's
the
smallest
tool
for
the
job.