All Episodes

February 25, 2026 56 mins
This week on JavaScript Jabber, we’re joined (again!) by Val Karpov — the maintainer of Mongoose — to talk about what’s new in Mongoose 9, how async stack traces are changing the debugging game, and why AI is quietly reshaping the way we build developer tools.

We dig into stricter TypeScript support, the removal of callback-based middleware, and what it really takes to modernize a massive codebase. Then we shift gears into Mongoose Studio, a schema-aware, AI-enhanced MongoDB GUI that brings streaming query results, map visualizations, and even LLM-powered document generation into your workflow. If you’ve ever wrestled with debugging database issues or squinting at raw JSON, this episode will get your wheels turning.

We also explore Cassandra integration, vector search, Bun vs. Deno, and what AI means for the future of software engineering. There’s a lot here — especially if you’re working in Node.js, MongoDB, or building backend-heavy JavaScript apps.

🔗 Links & Resources

Become a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.
Listen
Watch
Mark as Played
Transcript

Episode Transcript

Available transcripts are automatically generated. Complete accuracy is not guaranteed.
Speaker 1 (00:05):
Hey, folks, welcome back to another episode of JavaScript Jabber.
This week, on our panel, we have Steve Edwards.

Speaker 2 (00:12):
Yo yo yo, coming at you from away too warm Portland.

Speaker 1 (00:17):
I'm Charles Maxwood from Top End devs. Well, I'm too
far west for that big cold storm. But it's still
cold here.

Speaker 2 (00:24):
It's maybe too warm. Man. Our snowpack sucks. Yeah, been
able to get any skiing is just awful.

Speaker 1 (00:31):
Yeah, same here. People are worried about water. I live
in Utah. If you're not aware, we have a special
guest though this week. That is Valeri Karpov. Do you
want to introduce yourself. I know we've had you on before,
but just remind people who you are.

Speaker 3 (00:46):
Yeah, Hi everyone. My name is Belle. I'm the maintainer
of Mongers. I'm popular ODM for no JS and Mongo dB,
and I do freelance web development. I'm based in Miami, Florida,
which is much colder than expected. I had to turn
on the heat for the first time. I'm telling Chuck,
first time turning the seats. I moved to Miami about
seven years ago. That's brutal.

Speaker 1 (01:06):
Yeah, I feel your pain. Yeah, my son's on a
mission for the church. In South Carolina, and yeah, apparently
people don't deal well with cold there either, so.

Speaker 3 (01:17):
No, not used to it. I mean, yeah, I have
never seen Miami. I haven't seen Miami break into the
thirties before since it's been a while.

Speaker 1 (01:26):
Yeah, I was accused of not teaching him how to
drive on the ice, which I know isn't true. So anyway,
let's dive in. Let's talk about Mongoose. I'm assuming that
people have some idea of what it is, and I
really want to get more into you know, features, functions,
you know, it seems like a lot more adoption of AI.

(01:47):
Where does it? Where does mongoos get us from there?
But just kind of set the stage to get us going,
like what is mongoose And at a high level what
does it do for people?

Speaker 3 (01:57):
But a high level, it's like an O R M
or O D M and no sql land or for
no jas and malgaib so it provides you like the
M and MBC or for working with mafugedd B. We
recently released Mongoose nine, big breaking release, first major release
that we've had in two years. Got a few a
few cool new features there, and then we're also working

(02:20):
on a mungo centric muggedy b gooy called Magus Studio
that would like to take some time to talk about.
And then yeah, there's something else that you want to
talk about. We also are we've been working on a
kind of a plug in with with the data Stacks team.
I guess now they're IBM that what's mongoose talked to

(02:41):
a patche Cassandra via Data Stacks data API. So those
are kind of like three topics that I think we
can discuss related to Magus that are a little bit
of a little bit newer and a little bit less
less of the standard mongoose stuff. If you want to
talk about kind of high level what mongoose isn't one out,
we can talk about that before we can talk about

(03:02):
one of the three new things that are going on.

Speaker 1 (03:07):
Yeah, I think like O rms and you know, or
in this case ODMs, which I'm assuming D stands for
document instead of relation, are probably pretty well understood, and
I'm assuming that you provide a lot of the standard
features you see from other O rms or or like libraries.
So let's let's dive into the new features and if

(03:30):
people want to learn more they can go pick up.
I think we've had you on before to talk about Mongoose,
and so they can probably go find an older episode
that gets into the fundamentals of what Mongoose is.

Speaker 3 (03:39):
Yeah. I think I've probably been on JavaScript Chad at
least work times in the last twelve years, give or take.

Speaker 2 (03:47):
Yeah, we did views on View twice too. I was
just looking that up.

Speaker 3 (03:50):
Yeah, yeah, I might need to do views on View
again because Mama's Studio also built a view so that
could be a fun Oh is it really? Oh cool?

Speaker 2 (03:58):
Yeah, I'm not doing that podcast anymore, but so we
can talk about it here if you want to. This
is where we try to squeeze in a little bit
of view in job the script here.

Speaker 3 (04:07):
Okay, Yeah, that's something we can talk about too. Yeah.
I pretty much all of my software developed in view
these days, unless unless I'm working for a client that
has a strong front end preference. I cool.

Speaker 2 (04:22):
So what's new and exciting in mongoos will now.

Speaker 3 (04:26):
So Mongsteine, it's less about kind of like flashy features
and more about producing long term friction and specifically to
type script. I think one of the things one of
the major changes that we made was before we had it,
so that's functions like find, which is the general way

(04:48):
that you execute a query to load some documents. In Mongoose,
the typescript types there were very permissive and just let
you pass in whatever you wanted. We for Mongus nine,
we made that more script and made it so that's okay,
we have explicitly strong types or for what parameters you
can pass into a query filter. The advantage there is

(05:09):
twofold and in one one that helps typeescript catch typos
and whatnot. And for developers that don't use type script
very much like me, it helps with autocomplete because before
the fact that it just gave you the fact that
the types where just any object goes into find, that

(05:32):
meant that tools like visual Studio code could figure out,
like what are the properties that you should autocomplete, So
now you actually get nice little auto complete drop downs
or for query filters and the other The other big
thing that we added was was like full a stinc
a sink stack traces support in the sense that we

(05:53):
used we had so longos was originally very callback heavy.
We introduced promises support in twenty fourteen, twenty fifteen, and
now in with our last release. Our previous breaking release
Monkeys eight we got rid of the user facing callback
support in all but one important case, and Alan Mongus

(06:15):
nine there's no more user facing callback support. It's all
a sink a weight, which means you get ACNC stack traces,
which is great.

Speaker 2 (06:22):
Okay, I'm still trying to wrap my head around this.
So what do you mean?

Speaker 1 (06:25):
Yeah?

Speaker 2 (06:26):
I understand that. So I'm I'm always big into debugging
and being able to get you know, traces, or I'm
more of the breakpoint debugger type of person. Uh, whenever possible.
So what's an acyinc stack trace as compared to the alternative.

Speaker 3 (06:44):
But if you've worked with stack tracings and JavaScript, you've
probably seen things like processed next tick and rejection or
list not on timeouts. Those kind of stack traces where
you just where the stack trace doesn't show you the
actual calling code.

Speaker 2 (07:01):
That could be a problem.

Speaker 3 (07:02):
I've gotten gotten probably a few of those, and the
reason for that is is the asik nature of JavaScript.
Right when you pass a when you pass a call
back into like a set time out function, for instance,
you're losing You're losing your call stack when set time
out calls the function that the callback function that you

(07:24):
passed into set time out. You'll if that function throws
an error, you'll see a stack trace that includes Note internals,
let say okay, and calling it on timeout, you won't
see your code that actually called the set timeout. And
this was especially problematic with the callback based code because

(07:47):
callback based code, you know, runs a synchronously, right, so
you don't see the code that actually called whatever function
is getting the callback, and that may debugging Note apps
for a very very long time basically made every stack
trace and industry.

Speaker 2 (08:06):
Yeah, other words, you're getting everything but what you want,
right and getting and you're not.

Speaker 3 (08:12):
Getting your own code. Oh yeah, with a six stack traces,
it's pretty sure. Yeah, A six stack traces is like
a V eight feature, so it also works in Chrome.
But the idea is that if you're calling a sync
functions all the way down, even if the actual error

(08:33):
is a synchrons, you still get the full stack trace
of the actink functions that you call. So let's say
you know, you I'm in function I'm in an AC
function called A. I call an AC function called B,
which calls an ACC function called C, which has a timeout,
and then throws an error after five seconds. The stack

(08:55):
trace for that error will include ABC, it won't include
any I won't to cleave like the known internals for
on timeout or whatnot.

Speaker 1 (09:04):
Well that's really handy, Yeah, but there.

Speaker 3 (09:08):
Is you need to You need to make sure you're
calling ACYNC functions all the way down. So the instant that,
like somewhere in your internals you start calling something that's
callback based or call a set time out, you're going
to lose the A six stack traits and then you're
back to where you started. So the work of there

(09:28):
for Mongoose was to get rid of all of our
callback based internals pain point there was like the one
of the primary ways that you wrote Mangoose middleware was
was using callbacks specifically gang like you would say Schema
dot pre save. You would get a next callback, kind

(09:50):
of similar to Express middleware, where you would call next
in order to kick off the next middleware and the chain.
We had to remove that in order to properly support
acing stack traces all way through it.

Speaker 1 (10:03):
Gotcha. So is there anything you have to do specifically
to get this to work? Or you just upgrade to
Mangouse nine and then you're good to go.

Speaker 3 (10:11):
Yeah, upgrade to Margus nine. Any plugins or middleware that
uses that use it next needs to be rewritten. Thankfully,
hopefully that's not too many right now. But yeah, but
in the age of AI, it's much easier to refactor
this sort of thing. Yeah, so I'm a little bit more,

(10:31):
a little bit less concerned. Actually, that was pretty much
like my first foray into AI code generation a long
time ago was was refactoring some of Mogus's callback based
code into put into using a Sika weight. This was probably,

(10:54):
i want to say, early twenty twenty three. This was
like before pers or anything where you could easily select
a bunch of code and pass it into pass into
open AI. What I did was I I wrote some
code to basically parse out some of Maugus's test suites

(11:15):
into individual tests and then would pass those tests one
by one into open ai is a book API, and
tell it, tell it to refactor this into into a
synco weight based code. And even back then it did
a really good job, got like probably ninety percent of
the test suite done, and it took me. It was
a like this whole the whole project of refactoring all

(11:37):
the tests, like we have thousands of tests, and I
was working like eight hours a day for several days
straight trying to read back through all this, and then
I just was like, I'd even tooled for the piss.
This is getting insane. So uh yeah, I tried open
AI and Opening I did a great job. That made
it a one day project as opposed to a multi

(11:59):
week project.

Speaker 1 (12:01):
Yep, yeah, I'll have to I have to say that
I've used some of those same kinds of features for
a number of things, just just to increase my test
coverage or hey, you know I need to yeah, rework this,
or you know, rethink that, or even add a feature,
and yeah it it does a pretty decent job. Usually

(12:22):
I have to go in and refine a handful of
things and I have to look over the code make
sure I didn't do anything stupid. But it's amazing what
you can get done with AI these days.

Speaker 3 (12:34):
Yeah, I am the other. A couple of weeks ago,
I gave a demo of some new map features we
built in Mongoo Studio, and one of the things that
I demoed was was the ability to just like, so,
I have a one of my clients has a region model, right,

(12:55):
It's a region is like a geopolygon forever defining just
like a region where they have operations. You draw a
polygon in a map that represents Dallas, and this kind
represents the boundary of what the company's operations thinks of
as Dallas. So creating new regions can be annoying because well,
you need to figure out a way to get all

(13:16):
the DFAs on points. But I demoed a way where
you just lai, like, hey, create a create a region
representing Boston. And while it didn't do a perfect job,
Mugus Studio's willing to go into Maungus Studio and drag
the other urgencies around. But like, yeah, I just like
basic models already know off the top of their heads,

(13:38):
like where like the approximate lads to longitude of Boston, Massachusetts,
or or boise iaho or any pretty much any major city.
So it makes things, Yeah, a lot of if you
do a lot of really amazing things or amazing seeming
things with models there just off the shelf, if you
let them, and they do give you a good enough

(14:01):
job to at least get you started.

Speaker 1 (14:04):
Yeah, if you give them a function that'll let them
talk to the internet too. Sometimes if they don't know
the answer that they have enough context to go and
look it up somewhere, and so that that's the other
piece to that that I found is Okay, here's how
you here's how you make a call, and it's like, oh, okay,
so what is mango studio.

Speaker 3 (14:25):
So MUGAs studio is a gooey for magaritib that's a
little bit more higher level than than a traditional database viewer.
It's got we're trying to make it one more schema
a whare in the sense that in magerty B or
maggityb gooies typically don't have a notion of a schema

(14:45):
right because doesn't really have schemas by default. But magis
who do have a schema, and that lets you fill
in things like autocomplete and auto suggest so like auto
field names when you're typing in the life or filter
input for why. We're also adding a bunch of AI

(15:06):
elements in the sense that you can good concrete example,
what do you try when you want to create a
new document in your database. There's like a nice button
you clip to insert in your document, right, and then
you get a code input that tells that what you
enter in. Okay, I'm going to enter get a creative
documents properties, but that can be a little annoying to

(15:31):
type out manually. So we also have an AI input
there where you say, okay, let's let's ask the AI
to generate a document right there without having to go
anywhere els And that's kind of how the Boise Idaho
region example worked, just you know, instead of instead of
typing out the entire all the details for the Boise

(15:52):
Idaho region, I just have a quick little AI input
that already has the context of what the schema definition
is for this particular document, as well as what the
user is asking, create me a region with for representing
plays of Idaho, and then the AI just goes in
and generates the generates the output, the user confirms or

(16:15):
rejects and can edit it a little bit extra selves
looks create. So there's that, and then we're also working
on things like MCP server. So if you have a
production deployment, well you'll have an MCP server that you
can connect Claud too that lets you do have a

(16:36):
controlled code sandbox access like you can let Claud have
say read only access to your production data or or
access to write certain collections but not others. For a
little bit more security.

Speaker 1 (16:53):
Yeah, that makes sense, I mean, and we're seeing this
more and more right where people are integrating AI into
their setup, right, and you know, whether it's taking user input,
so the user essentially is chatting with the AI system
or at least giving it some kind of prompt or
sometimes I've seen folks just basically say the LLM is

(17:19):
going to do a good enough job if I ask
it to do this job that I don't actually have
to write explicit code and cover all the edge cases
and make sure that it does the thing that I
needed to do. And so both of those scenarios sound
really really helpful with something like Mongoose, where you can
essentially say all right, you know, yeah, here are the

(17:39):
credentials for getting information from my data or you know,
here's how you query my data, and then yeah, effectively,
then it has much better information to go off of
to solve the particular problems that my system or my
app is solving.

Speaker 3 (17:58):
Yeah, exactly the longer. In addition to having your STEMA definition,
we also have access to things like methods and statics
that you define on your on your models, right, So
that means that well, Mungas Studio can be aware to
some extent of how you write your code and how
your application works. But it's a more application centric or

(18:22):
developer centric database SCOUI. That's meant that's meant to help
developers do their jobs and be less kind of DBA centric,
which I find a lot of whether database scoes to be.

Speaker 1 (18:35):
So does it just send a list of available functions
to claude when it you know, kind of like MCP,
or it doesn't have to be MCP. Sometimes you send
a list of functions.

Speaker 3 (18:47):
So we have so for cases like the like the
creat input and the chat tab places where we have
AI inputs in the UI, there we we call we
call out to either like the Gemini a p I
and the chat API or prop a KPI, and we

(19:08):
pull the context like we have a collect or. We
have internal storage that stores just descriptions of the users models,
including including the bodies of statics and methods, including STEMA definitions. Okay,
so that data gets passed over there for the m
CP server. What we do with the server, uh, well there,

(19:34):
I think what we passed back is more along the
line of like a typescript definition of what models are available.

Speaker 1 (19:43):
Right, and then it just comes back and calls into
whatever it needs in order to do what it needs
to do.

Speaker 3 (19:48):
Yeah, exactly what the MCP server what we're experimenting with
is kind of like a code sandbox effectively for the
for the l l M. So we're so like the
way that our MP server works is more long the
lives of here. The MCP tool is here, execute this
code in your sandbox, right, and the AI just kind
of gets the context of like this is what's available

(20:10):
on the sandbox. So that's what we're experimenting with, trying
to figure out how that can work. The other option
that we're thinking of is almost like a CLI tool.
That's something I've been debating on Twitter and to make
it back myself as to whether whether I go the
m CP route with the code sandbox, whether I just
have like a c l I or where the line

(20:33):
it's a CLI to do stuff.

Speaker 1 (20:36):
Yep makes sense.

Speaker 2 (20:44):
Yeah, I was just going to say, where has I've
been doing some searching where's the Mango U? I keep
finding the Mango studio what you call it? Because I
keep finding studio three T.

Speaker 3 (20:54):
Many planks for on the website is mongoostudio dot app? Yeah?
All one word.

Speaker 2 (21:06):
Yeah, I keep forgetting about these new TLDs we have.

Speaker 1 (21:11):
Yeah, and this is so is this something that I
can post on my own? Oh I see in your
video example on here that it's it's got to dot versell. Yeah,
so it looks like you can. You can play it
out to wherever you need.

Speaker 3 (21:26):
Yeah, exactly. We support Brusell Netlify and express right now.
So if you have a Verseell deployment, yeah, you don't
even need next j ask them to think of it.
If you have a versall mangu Studio as a sidecar
alongside your interesting application, or you can just run Mungu
studio for local usage and you still get mostly all

(21:50):
the features. I think a couple of things that are
missing or we don't support dashboards for local development. All
we do support have like the basic database you were
and the chat chat tab is our kind like a
chat GPT interface for generating for generating scripts that execute
in the momy studio code sandbox, and I think that one.

(22:17):
The chat tab also gives addresses like one limitation I've
seen with MCP which may not be as relevant after
last week when they announced MCP apps, but before MCP
apps came out like about a week ago, there was
no way for MCP to really generate like non trivially.
Why so, one of the things that I wanted from

(22:39):
the chat tab from the very beginning is the ability
to generate scripts or to generate charts and maps from
from after language. So the ability to say things like,
give me a chart of users created by day for
the last two weeks. Being able to do that is
what the chattab is good at. But MCP did not

(23:01):
really have any meaningful way to do that up until
very recent So we're figuring out how to do the
MSP app side.

Speaker 1 (23:10):
Cool. Yeah, I'm just looking at this and thinking to myself,
I typically use a relational database, but if I were
using Mango TIB, I mean, having something like this just
it makes it easier because you get to the place
where being able to visualize a lot of this stuff,

(23:34):
it just it allows you to think about it in
a different way rather than being stuck in your CLI
or something.

Speaker 3 (23:40):
Yeah. Absolutely, And you'd be surprised how many times like
a bug is difficult to spot when you're looking at
a traditional kind of like rods and tables data. Basically
the gids that you look at a chart, You're like, oh,
that's a bug I actually spotted, Like from one of
my clients, I spotted a bug that was costing them
thousands of dollars just by together a quick chart I

(24:01):
look at. I'm like, there's an extreme outlier on this chart.
What's going on there? And well, yeah, we've never caught that.
If I had to look at that one charm and
on that chart you just look at, it's like that's
squaringly obvious. Thing is wrong there.

Speaker 1 (24:16):
So I was paying you on commission on those bugs, right,
six thousands of dollars a month. They have to pay
you ten percent.

Speaker 3 (24:22):
Well, if I caused the bug at the first place.

Speaker 2 (24:27):
So when I was working with Mango on Atlas, so
I used like a guy called Studio three T. That
was just what my company used. How does Mango's studio
different from that? Is it just that it's web based
versus like a separate app or what's the differences between
those two.

Speaker 3 (24:46):
A couple of things. Web based is one big thing
for production deployments. In particular, we like to we like
to have Mangoo's studio as something that you log into
through through UH through either Gmail a lot through Get
Help a lot instead of passing around connection strings. So

(25:07):
one of the things that we've seen that small medium
businesses do is like when a new engineer joins and
you want to give them production database access, we just
send them like a shared credential or shared connection string
and slack and then ask them to hook up put
that connection strain in your studio at threep and that

(25:27):
can be No, that's a little bit insecure, yeah, Dice, Yeah, yeah.
What you should do is at least have a share
or a separate connection strength for each individual developer, so
you can easily onboard off board people rotate it probably

(25:51):
once every year at least, but nobody does that because
it's it's tedious, it's a thankless job. Just everyone finds
it a union and annoyance. No, but he does it.
With Mango's studio, we do things a little differently in
the sense that you deploy, deploy mongke you studio as
a web application, and then people log in by a

(26:11):
GitHub or Gmail. So if you onboard or off board someone,
you offboard someone, they lose access to their they're no
longer part of your GitHub organization, and they lose access
to the company email. Then they're automatically removed from Monkey
studio as well. So those are two big differences, the

(26:32):
production deployments and the well on the web based side
of things, Yeah, another big thing is well, uh being
mongt centric and knowing about your Monkey's schemas gives you
access to things like schema level autocomplete, where again it
uh monbu studio knows that your users have a first

(26:55):
name property studio three T doesn't necessarily know that it
can infer it from the shape of existing documents, but
it's it's not going to be one accurate that way.
Another detail is like, we're trying to make all of
your studio a little bit more, a little bit more

(27:16):
higher level. I'm a little bit more developer focused in
the sense that we want to show data less as
rose and columns and as plain text and more as
the data that you want, the data that you actually
want to see in a useful way. So, for example,
for things that look like GeoJSON, we actually have the
ability to show the GeoJSON points as mapps. Nice. So

(27:40):
if you go into looking a particular at a particular
document and it has like a geok song polygon or points,
you can actually click to show that on a map.
A couple of other visualizations that we're adding is for
image fields we want to actually visualize or have the
option to this as an image and then or for

(28:02):
vector data, that's something that would give you worked out
pretty cool, and so is showing a projection of the
of the vector data or at least making it easier
to visualize a bunch of vectors just in your database.

Speaker 2 (28:16):
You are, so, I'm assuming you can also view the
data and it's raw format right in your.

Speaker 3 (28:23):
Yeah, the format is the default. But if you but
if you want to just quickly look at something a
GJ song data point on a map, click a button,
don't even have to leave studio, which is nice. Is
a frequent pain point for for me. I've been working
with geo Data and mal aib for a long long time.

(28:45):
Just having that all faked into one database food that's
been huge. I no longer have to worry about what
I used to have was I had like a script
that would take in a would take in latitude longitude
points and just give me a Google Maps output that
I could copy for account Google Maps that I could
copy paste into my grouder to view where this to

(29:07):
be where this was, or to view where a point was.
And then for polygons there there was pretty much nothing
I guess I could generate like a Google Maps does
have like this static image generators, so that's what I
would probably use, was I would just take a polygon
and just generate a Google Maps image from a script.
But that was an elegant and inconvenience, much easier to

(29:30):
just I'm already and day. Basically I click a button
to view on the map again, a nice little leaflet
map that I can edit drag.

Speaker 2 (29:39):
That was my next question. I was curious to see
what library you're using to generate your maps. If you're
not using Google Maps anymore.

Speaker 3 (29:47):
It's Sleep. But for for Google Maps, I was talking
more about their Google Maps has like this api for
generating static map images, which is actually really useful.

Speaker 2 (30:01):
Yeah, if you just want like a screenshot of a
map or a one time view as compared to something
that you can zoom and pan and that kind of stuff.

Speaker 3 (30:07):
Right, yeah, exactly, or if you wants something that's easier
to share in a place like Slack that will support
the whole Google Maps experience. Paying the image it's very important.

Speaker 1 (30:20):
So what's coming next for Mongoose or Mongoose Studio.

Speaker 3 (30:25):
For Mongoose, we're probably going to have one more another
breaking release this year. We will see about exact timing
and scope, but it's going to be our Mongoose ten
release if I want to make sure that there's something
interesting in there. I just haven't settled on exactly what
I want, but one thing I want is more of

(30:47):
a switch towards using proxies internally for change tracking as
opposed to project of defined property, kind of going more
along the lines of how View does change tracking, whether
how Magos does change tracking. Now I was gonna say,
like views, Yeah, now, View and Mongoose have a lot
of similarities internally in terms of the problems that they

(31:10):
try to solve. Again, one of the uh one of
the core parts of Mongoose is is has changed tracking
in the sense that you load a document from the database,
you assigned some properties to the document, and then you
type save. Mongoose tracks the changes that you made and
only sends the changes that you made the database, as

(31:31):
opposed to trying to write the whole document.

Speaker 2 (31:34):
So now where is I was going back and listening
to simpots from past episodes like twenty twenty twenty twenty
one on Views on View where we were talking about
Mangos mongoose. So I know Dino's you know, has been
around for a while a few more years since then,

(31:55):
is uh this mongoose compatible with Dino?

Speaker 3 (32:00):
Yeah, I think we technically still have a helpful support
for Dino, and we do. We have been testing on
Dino for several years, so I think it's reasonably stable.
But I haven't really used Dino very much, to be
perfectly frank like, I am not sufficiently confident, and I
haven't seen enough enough interest in using mortgage with Dino

(32:23):
to than justifys saying like, hey, this is like an
officially supported thing. I'm seeing more usage for BUN, so
I'm kind of curious to tinker with how Moggy's works
on the bond, But I haven't had time to work
on that either.

Speaker 2 (32:40):
Now it was, but I'm I've you heard about bun
and see a list? Is that more just a run
time or is that something you would write apps in
like you would Node?

Speaker 3 (32:51):
From what I gather you, yes, you would write and
you would write applications and fun I've heard of some
interesting app frameworks that are specific to BUN. I think
there's Alicia JS something like that. I think that one
down there. I think that one is very BUN specific,
and I've heard very good reviews about it. I think

(33:13):
one thing I liked when I reviewed Alicia Elisia. I'm
going to sorry if I'm butchering the pronunciation. One thing
I really liked about that Express does not support is
Alisia has good support for server sent events, kind of
right out of the box. So if you pass it in,
it gives the other developer experience that I've always wanted

(33:35):
for service sent events, which is you pass in a
acink generator function and then whatever your acin generator function
yields that that gets admitted as a server event, which
is really cool. Love that I actually use that pattern
in the Malgi studio back end as well. Yeah. One

(33:57):
UI decision that we made probably a couple of months
ago in Mugu Studio that has paid huge dividends is,
like traditional database viewers, you frequently load query results in pages.
So you would so if you execute a query, you
get twenty results back you get or there's let's how
you execute a query and there's forty results you typically

(34:20):
get twenty results at a time as a page, but
the query, but when you execute the query, you don't
get to see the results one at a time. If
you wear uh, the the gooey waits until it gets
all twenty results and then displays the twenty. With Mogus Studio,
we've actually made it so that we use server sent

(34:41):
events to stream the results as they come at in
so even though you load twenty at a time, you
get kind of like, okay, the instant that this document
is available, we stream it to the front end, and
the front end gets it to you kind of see
like more of a smooth loading effect. And then there's
infinite scroll back then too, so of course you if
you want to scroll and view more data, well you

(35:02):
get kind of a smoother experience where you're running one
documents one at a time as opposed to kind of
like gang Chunks twenty twenty twenty. And it really is important,
especially in cases where you have a very slow running query,
like if you're filtering logs or something like that, where
you expects, okay, I may get like one or two

(35:23):
log results really quickly, but then it may take twenty
seconds to get all the log results, so it's more
it's important to kind of get some of the data
first or get the results as they come in case
with long running queries. Service centerventsive great for that. Ye
have you guys been working with with the Dino or
bun at all? I have it.

Speaker 2 (35:43):
Most of my back end, I generally focus on PHPU
and label just because that's been you know, where I
started on the server side. So no, I haven't had
much opportunity to work with with Note or mon Ordino itself.
Like I said, just Mango in the context of a
large letter bill view application.

Speaker 1 (36:03):
Yeah, and I mostly do Ruby on rails on the
back end, So.

Speaker 3 (36:07):
Yeah, I guess I'm in the minority as someone that
does server side jobscript pretty much exclusively. And like all,
I describe myself as like a back end heavy full
stack de alter in SnSe that in my team, we
typically focus more on the back end and build pieces
en upfront ends. Our frontucts are not our shrunk suit,

(36:28):
but we do.

Speaker 2 (36:29):
Sound like me. Yeah, when it comes to the JavaScript
side of things, I'm really good at you know, if
I'm handling data, you know, communicating with the back end
and getting data, displaying and data and that kind of stuff.
You know, one of the data management type of application
A pretty good when it comes to the UI and

(36:49):
making it really pretty and design and stuff not so much.

Speaker 3 (36:55):
Yeah, well, these days the AI does a pretty decent
job of that. Oh ish. One thing I've seen is that,
like you know, the AI tools are still not quite
as good as people as like spurts in that space. Right,
So you know, if I if I build something, just
if I just have clawed one try to one shot something,

(37:17):
it's not going to be as good as the tailwe
guy built some spoke lay up for me, but it'll
be it'll be probably like seventy percent is good and
maybe that's good enough. Yeah, exactly.

Speaker 2 (37:29):
I've been trying to play around and find some different
tools that would be good at at creating like a
you know, some sort of UI template you know, that
I could implement on the front end at least looks
decent and better than what I would come with on
my own.

Speaker 1 (37:43):
Cool. Well, is there anything else that we should dive
into here?

Speaker 3 (37:46):
Well, there was one topic that we want to talk
about I mentioned earlier, the data API at Cassandra Integration.
Oh yeah, that's something that's interesting. Oh, so yeah, we're
for probably the last year two we've been we've been
working with what Data Stacks, which recently got acquired by
IBM to build a plug in that. Let's mongoose talk

(38:08):
to the stack of Data API, which is kind of
like an HDT layer on top of the Patrick Cassandra.
So one of the neat things you can do with
mongous now is you can actually or you can actually
like just find wright molecuse code dropping a couple of
lines of figuration and habit talk to Patrick Cassandra with

(38:29):
with some pasttrisks as opposed for features that are supported
and whatnot. And then now the neat things you can
do like Magus is populate, which is kind of like
Malgus's application level level joins gosh. I use that to
take data from Manga to be populates some data from
Cassandra or vice versa. It's pretty cool thing, I think.

Speaker 2 (38:51):
So for the uninitiated, can you explain what Cassandra is
because I didn't know myself until I went and.

Speaker 3 (38:55):
Looked Patrick Cassandra is. It's a no SQL database but
quite different from malgady B in the sense that like
it still stores data and what kind of looks like
Rosen columns, but it is like what's called a y
columns store. I think the big selling point for Cassandra
is it is it's good for massive right throughput, like

(39:19):
the classic. The big example of probably the biggest Cassandra
deployment that I could think of off the top of my
head is is Apple iCloud. So let's say every time
that you take a photo on your iPhone, metadata associated
with that photo, like who took it, when they took it,
that gets dumped into a two hundred and fifty thousand
last I checked, no Cassandra cluster, or at least the

(39:41):
last time I read about this. Yeah, Apple iCloud is
one big deployments discord messages for a long time. We're
we're also in a Patrick Cassandra and pretty much like name,
like a major tech company that's not Google, they probably
have a Cassandra deployment. Like Cassandra is actually originally written
by Facebook. The open source de debated. I think it

(40:05):
was like originally written to ah as like the back
end store for the timeline view, but.

Speaker 2 (40:12):
It sounds like it's more it's not like something to
use for small laps. It's more of an enterprise, huge
implementation type application, right.

Speaker 3 (40:22):
Yeah, exactly. Now, one of the things they're trying or
that they're trying to do is like make the Sandra
more accessible using that data API, and Mongoose is part
of that as well. There's a lot of content out
there on how to use monkeys. The munguse kind of
like plugs neatly into into the the sex data API,
which kind of exposes like a Mango like layer on

(40:44):
top of Sandra.

Speaker 1 (40:46):
Yeah, I've done a little bit with the Cassandra and
it's it's kind of an interesting set up with the
column near focus and things like that.

Speaker 2 (40:54):
But so it's no SQL because it's not SQL. But
it's different than mongo ters or.

Speaker 3 (41:00):
How in the sense that they have, like they have
a language called CQL Cassandra Corry language, which is similar
to SQ well but heavily simplified.

Speaker 1 (41:13):
And they strictly speaking don't have a rigid schema kind
of like what Mango does. But yeah, their performance characteristics
are different and they kind of focus in a different
way of thinking about your data. So depending on what
you're doing, you would pick Cassandra over mongo I'm not

(41:37):
sure I'm the right person to explain when you would
pick one over the other.

Speaker 3 (41:40):
But yeah, I think historically I'm not sure like how
accurate this is right now, but historically them was like,
if if you have for read heavy data or data
where you're incrementing a counter where like it's crementing data
in place, you would probably use manga to be And
if you have something where you're just writing something as

(42:01):
fast as you can, you would use at Sandra m
I'm not sure how accurate that is right now, but
that tends to be the way that I think about things,
although recently I've also been using Cassandra more or data
api more for vector search, because one of the things
that I really I think Cassandra did really well recently
is they have they've taken vector search and made it

(42:22):
a part of the core Cassandra and now that's exposed
throughout through data Api as well, Whereas with muggerity b
it's still like h vector search is still like an
Atlas only thing. Like you if you're running muggity B
by itself locally, you don't get ex your search, which

(42:44):
is not not a complete deal breaker in the sense
that for the most part you're going to be running
production deployments and outlets like even I don't run even
I don't run my o mugity Be closers anymore, but
it does kind of. It is a bit of a
pain point in terms of local development.

Speaker 2 (43:03):
So basically you can unless you're like hosting it on
Atlas or something like that, unless.

Speaker 3 (43:10):
Or or running manga to be locally via the Atlas
cl I. However, like running it locally by the Atlas
cl I also comes with caveats and restrictions that you
don't have if you're you're running you're running one mangity
be locally, there's there's caveats there.

Speaker 1 (43:30):
Cool, Well, I've got about ten minutes before I have
to jump off. Or are there other things that you
guys want to keep talking about or should we do picks?

Speaker 2 (43:37):
But just real quick, the one question I had was
you admit now you mentioned at the beginning that you
use view whenever you have to whenever you need, you know,
job to script front end. So is that just in
in the UH, the UI or where else do you
use view at least with Mango.

Speaker 3 (44:00):
For front endy wise, either either your service side rendering
or single page app Another thing that we use viewfore
is email temple, but we'll send emails we are email
templates are also in view.

Speaker 2 (44:13):
Oh okay, you just have to use some single file
components that format your your email.

Speaker 3 (44:21):
Not single file components, and we typically use were typically
used two file components in the sense that we have
JavaScript in HTML, so our emails look more along the
lines that there's like there's order confirmation dot JS and
order confirmation dot HTML. And that defines a component that
renders a that renders our order confirmation. So I can

(44:45):
we write out we define our uh, we define the
layout in an HTML file. Historically, we found that easier.
I have considered switching to single file components in recent
years because I think that as I thought that way,
I could do a better job with single files. But
we're still sticking the separate JS and htmail files for

(45:06):
now and then just to find to find emails in
each GM because we found the comput is really good
at just beef work things like that, like basic loops
computer properties. That makes email rendering much easier.

Speaker 1 (45:23):
Mm hm cool, Well, I'm gonna I'm gonna push us
into picks, so, uh, Steve, do you want to start
us off with picks?

Speaker 2 (45:32):
Certainly, nothing really pickwise other than the high point of
all of repros. That's the dad jokes of the week,
So I'll dive right into those real quick. So when
I was growing up, one of my favorite memories of
my childhood was I used to build sand castles, you know,
with my grandmother, and then my mom took the urn

(45:55):
away from me, right, I sort of like the joke
about where I was at washing cars with my son
and he's like, Dad, can we just use a sponge?
But and then people say, when people say you look
so familiar, do I know you? I find that if

(46:15):
I say were we in prison together? Really ends the
conversation every time. And then finally I was talking to
my insurance age and I said, I hit an animal
and my car is total on my copboard. He goes, yeah,
what'd you hit? And I said a fish? And that

(46:35):
joke sort of comes with the car in the water.
Maybe it's a little more of a visual joke, but anyway,
those are the dad jokes of the week.

Speaker 1 (46:41):
All right, I'm going to jump in here with some
pisure really quickly. So I'm going to pick a game
I've been playing a lot lately with my buddies. I
know I've picked it before, but I'm just gonna pick
it again because I didn't have time to look one up.
It's called the Gang. Play it in like fifteen to
twenty minutes. It's essentially group poker, like cooperative poker. And

(47:08):
so what you do is you have chips that are
numbered from one to however many players are playing it
has up to six, and then you deal everybody out
their whole cards or their pocket cards, you know, the
two cards you start with in Texas. Hold them, and
then everybody grabs a chip and you try and get

(47:30):
it in order of who has the best hand down
to who has the worst hand, and then you flip
the flop and you do it again right, and then
you flip the turn, and then you you know, do
the same thing, and they flip the river, and after
the river on the red chips. Then whoever has the

(47:52):
number one chip flips theirs over first. They should have
the worst hand. Whoever has the number two should have
a better hand, three, four, five, and all the way
up to six, or if you're only playing with three people,
you know, all the way up to three. I was
playing it with my kids the other day and yeah.
So the only other rule is is you can talk
about everybody else's hand, but you can't talk about your own.

(48:13):
So at one point, for example, we had flipped the
turn card, and so which is the fourth card in texas?
Hold him? And it was a ten, and so my
son grabbed the number three chip because of whatever the
three of us playing, because he in his whole cards
he had a ten, and so he had a pair

(48:34):
of tens. And so I looked at him and I said,
if you matched, just now, you have a pair of tens.
And then I grabbed the three chip and put it
in front of me because I had a pair of
jacks from the flop, and so that told him. So
I didn't talk about my hand, but I indicated him
I know what you have and I have a better hand.

(48:55):
And so anyway, so that's kind of the way you
do it. If there are more pople you tend to
talk through a lot more things. With my buddies, we
also like to call out you know, for example, if
you have two clubs, then you have a flush, right
because there are three clubs cards in the you know,
in the in the shared cards. Or if you have

(49:16):
a two and then six, then you have a you
have a straight right, which is a run of five
cards in number order. And so anyway, so it's a
lot of fun and like I said, we you know,
we just you know, you can play through pretty quick.
You're trying to get three correct before you get three incorrect,
and that's how you win the game. And yeah, like

(49:38):
this it takes like twenty minutes. So I'm going to
pick that for the game. I've also wanted to really quickly.
I was texting. I've started this thing where I start
texting people that I haven't talked to in a while.
And so one person that I texted, let me find
the text because I told him I was going to
share some stuff. But I was texting with can Kent

(50:02):
Kent Dodds, and I might just have to search it here.

Speaker 2 (50:07):
Wow, talk about name dropping.

Speaker 1 (50:10):
Well he lives out here and so periodically, well you know,
hang out or whatever. But yeah, so he said that
he's been doing a couple of things, so I'm just
going to shout out his websites. He has epic ai
dot Pro, so he's been teaching people to do AI stuff.

(50:32):
He's also got epic web dot dev, which is kind
of his full stack preferred stack, and so I don't
know if he's still doing remix, but you know, that
used to be a big part of it. And then
he had a whole bunch of other stuff that hed
pull in. And then he also has epic React dot dev.
So if you're looking to learn stuff about React, JavaScript

(50:54):
or AI, then he's got He's got some resources out
there that you go check out. I find that his stuff
is reasonably easy to follow along with, and so I
don't have any problem shouting that out. So I'm doing that,
and yeah, I'm also just going to shout out the
idea of, you know, find for people to reach out

(51:16):
to every day. I mean, I do it with family members,
I do it with people in the tech community. It's
kind of fun because sometimes I haven't heard from him
in a couple of years, like I had. I don't
think I've really talked to Kent in a couple of years, right,
and so it was like, oh, hey, and so we're
catching up on kids and things like that. Anyway, So yeah,
that's kind of what I've been doing. And I picked

(51:38):
that up from Jordan Harbinger. I was listening to him
do an interview with somebody and he said that he
does that, and I was like, there are a lot
of people I want to stay connected to that I don't,
And so anyway, I'm going to shout that out as well.

Speaker 3 (51:52):
What are you think I reached out to Jordan? I
haven't spoken him in a few years.

Speaker 1 (51:57):
Yeah, I haven't either. Last time I talked to him,
I had to drop some money.

Speaker 2 (52:02):
So we should get Can on the podcast again.

Speaker 1 (52:05):
We should. I'll ping him and see if he wants
to come on. All right, Val, what are your picks?

Speaker 3 (52:14):
Yeah, check out Magus Studio, Mangu studio dot app Alicia J.
S Alsos dot com worth worth checking out. Actually it's
in the public chat already. But is the L y
s I a J S dot Okay? Yeah, yeah, that's yeah.
I told you I was going to butcher the pronunciation,

(52:36):
so sorry in advance. I tend to like not listen
to video. I tend to read things so frequently I
read things and I just don't know how sorry about that.
So yeah, that that one. I haven't actually played with
it yet, but it's got some interesting patterns and I
think I'll looking into thinking about especially related to servers

(52:57):
events and then yeah, recently, I've been using to do
list a lot more. I've kind of gone back and
forth on like DIF to do list tools, and I
just keep coming back to this one or specifically for
like personal tasks. So it's it's a great replacement for

(53:17):
just for like having a to do dot t x
T or for having sticky notes or something. So I
like having kind of like three, like a list of
three or four tasks, like these are the important things
I need to get done today. And it can be
work related, it can be just like if I have
Valentine's Day gift for my wife, which is still on
my on my list right now, so you got reminding me.

Speaker 2 (53:40):
That one read.

Speaker 3 (53:41):
Yeah, just having like a list of things that that
I want to be front center, like these are the
things I need to get done. To do US is
a great way for that because they got, oh they
got a great web app, they got a great mobile app,
and they have a nice, little simple user interface that
encourages you to only have a handful of things on
your list. So it's never going to replace like a

(54:04):
linear or Gira or something for managing a long backlog task,
but it is a good way to just kind of
have like a quick sticky notes thing for yourself to
keep track of important things.

Speaker 2 (54:16):
So are you still doing the mastering JS at all?
I don't think know if I've seen.

Speaker 3 (54:20):
Lee in a while, I have been not working on
it as much. Actually, I've been kind of like letting that,
laying that run, because the idea like mastering JS was
kind of more about like get it like a tech
tutorial se O, which is a game that has become
very played out in the post AI era. People don't

(54:41):
go to Google for code questions as much anymore. To
traffic for that website has fallen substantially since the yeah
you saw the if you saw the tailwind stuff, it's
not that fairly similar in the sunset. Yeah, Like with
the traffic to mangus jas dot com and mastering js

(55:04):
dot io pretty much peaked exactly in August September twenty
twenty two, and then it's been at the client sets,
which hasn't affected us that much right now, but we
don't really rely on the ad revenue right there, but
it's definitely been definitely been something that we've noticed in.

Speaker 2 (55:25):
The thought about Yeah, interesting that Jeffrey Ray is the
guy that does Leerraic cass He put out a video
here in the past week. We're so talking about that
and the impact that AI has had on his site
in their courses and stuff like that too. It's an
interesting listen.

Speaker 3 (55:44):
Yeah, the the impact of AI on our industry is
it's it's gonna be. It's still happening. It's it's huge
so far, and it's gonna keep getting bigger, so we
I honestly, it's somewhat exciting. It's an exciting but somewhat
scary time to be in software engineering because, Aslee, no

(56:06):
idea what our industry is going to look like in
five years. I agree with DH on that, on that assessment.

Speaker 2 (56:13):
Yeah, someone who's job hunting right now, I can vouch
for that. It's pretty brutal out there.

Speaker 1 (56:18):
Yeah, all right, I've got to jump off. I've got
a work meeting. But thanks for coming, Val.

Speaker 3 (56:24):
Yeah, thank you for having me, Chuck, It's always great
to see you.

Speaker 1 (56:26):
Yeah, you too, And yeah, until next time, folks. Max
out
Advertise With Us

Popular Podcasts

Dateline NBC

Dateline NBC

Current and classic episodes, featuring compelling true-crime mysteries, powerful documentaries and in-depth investigations. Follow now to get the latest episodes of Dateline NBC completely free, or subscribe to Dateline Premium for ad-free listening and exclusive bonus content: DatelinePremium.com

Hey Jonas!

Hey Jonas!

Hey Jonas! The official Jonas Brothers podcast. Hosted by Kevin, Joe, and Nick Jonas. It’s the Jonas Brothers you know... musicians, actors, and well, yes, brothers. Now, they’re sharing another side of themselves in the playful, intimate, and irreverent way only they can. Spend time with the Jonas Brothers here and stay a little bit longer for deep conversations like never before.

Betrayal Weekly

Betrayal Weekly

Betrayal Weekly is back for a new season. Every Thursday, Betrayal Weekly shares first-hand accounts of broken trust, shocking deceptions, and the trail of destruction they leave behind. Hosted by Andrea Gunning, this weekly ongoing series digs into real-life stories of betrayal and the aftermath. From stories of double lives to dark discoveries, these are cautionary tales and accounts of resilience against all odds. From the producers of the critically acclaimed Betrayal series, Betrayal Weekly drops new episodes every Thursday. If you would like to share your story, you can reach out to the Betrayal Team by emailing them at betrayalpod@gmail.com and follow us on Instagram at @betrayalpod and @glasspodcasts. Please join our Substack for additional exclusive content, curated book recommendations, and community discussions. Sign up FREE by clicking this link Beyond Betrayal Substack. Join our community dedicated to truth, resilience, and healing. Your voice matters! Be a part of our Betrayal journey on Substack.

Music, radio and podcasts, all free. Listen online or download the iHeart App.

Connect

© 2026 iHeartMedia, Inc.

  • Help
  • Privacy Policy
  • Terms of Use
  • AdChoicesAd Choices