Secure your Elixir apps with paraxial IO.
From code analysis and bot defense to dependency checks,
they've got you covered. Elixir first design with GitHub
integration. Elevate your security at
paraxial dot IO. Hey, I'm Kimberly with Elixir
mentor Jacob recently added recruitment services to help
companies hire pre vetted Elixir devs.
I help with company outreach, so if you're hiring, I may be
reaching out, or you can connect with us anytime at
elixirmentor.com. Testing what's up?
I'm Jacob Blitzo, your Elixir mentor, and welcome to another
exciting episode of the Elixir Mentor Podcast.
This is where we discuss everything related to Elixir,
from interviews with enthusiasts, pioneers in the
community, to innovative projects and libraries shaping
Elixir's future. Today I'm joined by Josh Price,
founder and CTO of Olympic. You've probably heard of him
just being involved with ASH, and we're going to talk a little
bit about a new project he's been working on called Clarity,
and probably talk about just building a consultancy in
general and who knows, maybe what AI means for developers.
I think we have a whole assortment of conversations, so
thank you so much for joining me today.
No worries, Jacob. Great to be here.
Yeah, I think it's going to be a fun conversation.
And for everyone joining us, I know this isn't our normal time,
so thanks for tuning in. It's difficult to connect with
people from from across the the world, right?
I think you're the furthest you can be as far as time.
Zones go. The New Zealanders will be mad
that you said that, Jacob. Yeah, but you don't care about
them, do you? We care greatly, but we like we
like making fun of each other. Something about sheep and stuff,
right? I don't know if you can go there
man. I have one of my cousins is
married to a Kiwi so I think I'm allowed to make fun of them a
little. Bit so you've heard the jokes.
Yeah, I don't. Know if we do those anymore?
You don't do them anymore. I don't think so, but they got a
lot of mileage. That's funny.
Yeah. So to kick things off, you wanna
kind of for those of us that might not know you kind of
explain who you are and your background a little bit.
Yeah, sure. So I'm Josh, if you haven't
figured that out already. I've been doing Elixir for
probably over 10 years, which is, you know, a fairly long time
I've had. OG status.
Probably 30 years of programming plus, no, probably 40 if you
count, you know, where I started, you know, poking
Commodore 60 Fours and Vic 20s and very early computers, Apple
2ES and CS. But yeah, I probably had three
decades of my career. Like the first one was Java,
second one was Ruby, and then the third one was definitely
focused on the Lixa. And yeah, I don't see that
changing. And it's funny that we've
arrived at and we can talk about this later.
You know, the, the the Twittersphere, if we call it
that, I'm not calling it the new thing is abuzz with the fact
that, you know, people realizing that Elixir and Erlang and the
BEAM are perfect, you know, infrastructure for running
modern identic systems. I'm surprised that's too long to
be honest. Right.
And then not long after I discovered Elixir, I was like, I
need to start a company doing this.
And me and a buddy, James Sadler, who is off doing some
very, very deep tech these days doing like, what's it called?
He works for a company called Cipherstash where it's super
deep encryption where you can do lots of stuff while still
keeping the data encrypted. Encryption and use is sort of
the thing. OK, nice.
I hear they're probably making some waves in the space.
It's pretty cool, but yeah, we've been doing that for like 9
years now. I think it was our birthday in
February. We are very bad at celebrating
these things. Maybe we'll wait for the 10th
one. Plan that better.
That's awesome. Yeah, that's very cool.
It's a short history of what I've been doing.
So you started your consultancy after finding Elixir?
Right. So I was working at a gaming and
betting company for my sins like the the domain was not really my
jam. But yeah, it was super
interesting work. And what it required was because
it was very fast moving market data.
And the faster, the closer you got to an event, the faster and
the more traffic and the more that the data would move.
And so we solved that pretty inelegantly with basically
caching and refreshing every 10 seconds.
It did the trick. It's a plus on that how you'll
do. Things.
I don't know. It's, look, it's, I think we can
talk about this later as well as like sometimes the dump solution
is really brutally effective and that worked great.
But you had sort of an average time of stale data at 5 seconds,
which when you have really, really fast moving data may not
cut it. If anyone's done any trading of
any sort, then you know what I mean.
Yeah, for. Sure.
And so, yeah, I saw a couple of things in that project.
Not only was Node really expensive and, you know, AWS can
charge you an arm and a leg and you need a lot of Node servers
to to do that kind of strategy. And I was like, and we also had
like a REST API that was I guess artisanally handcrafted.
And so, you know, we saw drift across all kinds of different
parts of the system that people were building out.
Like everywhere you looked, every bit was different to every
other bit, just in subtle, nuanced ways.
You just didn't have that consistency.
And so, you know, with an artisanally handcrafted REST
API, which was honestly the winning strategy here because we
were wrapping old, you know, legacy technology that they'd
spent a lot of money and a lot of time failing to, to migrate
to something more modern. And so we kind of threw the, the
API rug over it. And we were able to replace an
existing Flash website that a BIG4 consultancy had put in
there after Steve Jobs had said, hey, don't, don't no flash on my
Apple devices. And so they had a Flash website
and they had no mobile, you know, and that was not
acceptable at the time. So basically the API surface
area sort of saved us from, you know, the monsters underneath.
And we built all of this modern stuff that was pretty great, but
I thought it could be better. And Elixir and Graph QL was sort
of the two dimensions on which I thought it could be better.
First of all, like REST APIs, it's HTTP One, it's request
response. So there was no way to push fast
changing market data to the front end and to the user's
devices. And so you have to request.
And so that's why the caching strategy every 10 seconds worked
so brutally well, brutally effective.
Sometimes you know you just have to make your hacky solution and
no one really needs to know how you did it.
Well, exactly. But what I was dreaming of was
like, well, why aren't we pushing the data only when it's
changed? And so that led me down a path
of like, well, what do we need here?
Like web sockets would be great and open connections so you
don't have to like how do you do push?
And APIs, certainly REST APIs didn't support it.
So I was looking at Graph QL, which at the time was pretty new
and also had a subscription idea and some of the spec was also
looking at defer and stream and sort of all all that kind of
stuff. How do you do you do you still
like graph QL today I. Know we use it a lot.
Yeah, but I'm a I'm a big fan of it personally, but a lot of
people have very harsh opinions of it, but I think it's.
I was super bullish. I was super bullish about it and
I think possibly over bullish. I think it has some problems and
I think, you know, it's really picked a tool for the job and in
it's kind of if I need an API, it's the first tool I would
reach for. But it's not the only tool in
the tool belt. So knowing when to use it is
important. Yeah, but I think it doesn't get
enough airtime and credit for the subscription stuff which is
allowing push through the API, which changes the game in terms
of APIs. Yeah, to be able to subscribe to
events and things is pretty awesome.
Or you know, just changes whatever you're subscribing to,
right? I also like just the
flexibility, like I feel like as long as you have some
restrictions around your like mutations and queries, it's nice
the flexibility you can still give the front end for
requesting data without just getting a bloated response, you
know? Yeah.
And look, there's a ton of ways that graph QL is just super
elegant. And, you know, the way I liked
to think about it and I still like to think about it is it's,
although, you know, Ash probably changes that graph QL by itself
is probably a super flexible API toolkit.
And you can do REST with, you know, a graph QL, you know,
graph because all you're doing is sort of projecting a tree and
starting at a root node and projecting a static tree over
that. And think of just mounting a
graph QL query at an endpoint like a URL and you've got REST
and you can just define, you know what all the queries for
the things you can get. So you can sort of get REST
through graph QL, which is very elegant.
And you can have graph QL, surf graph QL, surf graph QL, it
doesn't matter where it is. It was, you know, a standardised
way of, you know, describing the world.
So that was 1 dimension of what I saw at this this company.
And then the other dimension was like, OK, well, if you've got
open sockets, there's no way that node would reasonably and
and sort of economically efficiently serve that many open
connections. Look, it probably could, but it
would cost you a lot. And I do recall the AWS fuels
being quite large. It's no surprise or irony that
my manager and buddy now runs AWS in Australia.
Oh, that's awesome. And so that gives you a sense of
like, yeah, OK, you can turn the taps on and, and certainly
charge a lot of people a lot of money if you don't choose the
right technical solution. So yeah, like that was where I
landed on Elixir. And I was like, Oh my God.
Like Elixir and Erlang, this is perfect for this like open
connections, pushing fast moving data up to client devices.
And that was the sort of 2 dimensions on which we founded
Olympic. So that was, that was pretty
much it. And you know, graph QL look, we
use it a ton. Like we don't sort of think it's
the most important thing like we used to look, use it where you
need it. Yeah, I think that's a great.
Deal for we usually, I mean we usually still use it for mobile
apps, so and then Ash came along a bit later, basically allowing
us to spin up whatever API we want.
I'm curious what brought, what brought ash on your radar and
like what made you go so bullish with it and like bring Zach
Daniel on board and all that? So this is a good question, and
I'd actually forgotten the origin story until I just
started telling the previous story.
So it came through graph QL and so I thought graph QL was super
simple, like it's only got a couple of primitives and in
terms of primitive types, that is it's kind of problem these
days. We can talk about that later if
you want. So I had a couple of primitive
types and then a way to model like a graph of your domain.
And so I started thinking, could we using graph QLSDL, the schema
definition language actually modeled domains in this and you
basically could. What it lacked was a few things
like union types and, you know, I would model domains and go,
yeah, like API first modelling. It wasn't terrible except there
wasn't anywhere to put the business logic or describe what
happened when you mutated a thing.
And so, you know, fun fact, Elixir Graph QL was my first
hello world Elixir project. And so I spent like months
writing the parser for that, which actually got borrowed and
used into absinthe. And I wrote it in lex and yek,
which is, if you don't know what those are, those are Erlang's
lex and yek, pasa and lexa. And so yeah, like I'd spent a
ton of work in that. And then Absinthe used that to
sort of leapfrog into a much more elegant solution that we
see today. And yeah, so I was trying to
build graph QL and Elixir for exactly that reason.
And I was like, we can model stuff in this, but there was
nowhere in graph QL to actually put the domain logic and the
things that sort of aren't just the nouns and relationships and
the types. So I was like, this is nearly
there, but it's not quite. And I did meet, actually my
first Elixir conference was in Berlin in 2016.
And me and James Sadler went over there and we met up with,
so this was Alexicomp EU and I think it was one of the first,
one of the first ones. But we also met up with a whole
bunch of Graf QL folks. So Bruce Williams was there.
Who else was there? The guy that wrote Sangria, I
forget his name, who's no longer with us, which is a shame.
He was amazing. He built built the scalar graph
QL implementation. Andy Marek built the Java one,
and then Johannes Schickling, who started graphical and then
ended up doing Prisma. We're also there.
So we met up in a pub in Berlin, had some beers and chatted.
Graph. So that was.
That's awesome. Berlin's a fun city.
I I wanna go back. I need an excuse.
I was there for like exactly 8 hours once.
I'm like a long layover and I just. 8 hours is not enough time
in. No, I know I but I took
advantage of being there and I just like paid a taxi cab
driver. I was like, take me to all like
the German food, like all the good restaurants that I should
go to and we just like drove around for 8 hours and I just
ate a ton of food and drank beer.
Did you have Curry versed? I don't think so.
No street food Classic. Nice.
I've got to say I I'm I'm sorry to all the Germans, but I don't
rate it. It's a street food, like it's
good, but it's not amazing. Yeah, yeah, I hear you.
And I travel a lot and I'm it's just heavy, but.
Just all meat, you know? But it's, you know, it's like a
process to me. So it's like.
Yeah, it's. A very particular taste and I I
definitely had a long conversation last time I was in
Berlin and. Yeah.
I offended someone so apologies to all the Germans.
German Curry. Offender way.
No, I'm just kidding. Yeah.
So was when you met Zach Daniel, was he just already working on
Ash or was it like an idea that you kind of?
Both. Came up with.
Well, remember how I was like trying to, you know, model
domains in graph QL and you know, people thought I was crazy
and it didn't quite work because we were missing whole chunks and
the type system wasn't quite there.
And I'm like, this is close. What is it?
And at the same time, I saw like an early incarnation of Ash and
it was it sort of, I don't even remember what what it said.
I think we looked at the Wayback machine.
If you look at the early ash websites, you can find it.
We did that the Ash Summit. And it's kind of funny, like it
was on my To Do List, but I didn't realize really what it
did. And so I looked at it and
thought, oh, that's a way of sort of auto spinning up some
graph QL AP is using Alexa. And I, I sort of had it on my To
Do List for like a couple of years.
I'm like, yeah, I should check that out one day.
I didn't get around to it. Then we had a client project
where it was like, oh, we need to build, you know, basically
Elixa, we needed to build out a mobile like API because they
wanted to have, you know, mobile devices.
And this was our sort of, you know, first really big Ash
project. And I was like, Ash would be
perfect for this. So I hit up Zack and I tried it
out and I'm like, oh, this is quite good.
And then I realized once I drove into Ash that it actually solved
a lot of the problems that I was trying to solve.
And so I sort of saw the power immediately because it just
filled in the blanks what I was trying to do, modelling domains
in Graph QL. And it modelled it, you know, in
elegant DSLS at the Elixir layer.
And then from that you could derive Graph QL or REST or
whatever. And then I realized it was more
than just an API generator. And I think a lot of people fell
into the, it's just an API generator trap for a long time.
And, you know, I was like, oh, we could use this for
everything. And, you know, the more I dug,
the more things I could see. And, you know, the client was a,
you know, deeply technical and appreciated what that brought.
And he basically asked a whole bunch of enterprise architects
like that. He knew because we were like, we
should try Ash on this. We're also trying to try live
view. So, you know, he was already
sort of bought into live view, but we didn't know about the
component system. But we looked at Ash as well,
trying to go, well, if we model everything in this, we can
generate so much of the, you know, the enterprise stuff that
we know we're going to need for this, you know, eventually very
enterprisey app. And so he asked a bunch of his
buddies that were enterprise architects and had worked on
really, really big enterprise systems.
And they all basically, you know, came back with the idea
that, well, you're eventually going to have to hand roll and
hand build something like Ash eventually yourself.
And so I think in the forward of the Ash book, I make a joke
about, I can't remember what Laura I called it, but it's a a
riff on Greenspun's Law that any sufficiently old and advanced,
you know, enterprise system contains, you know, a buggy,
slow I'll fitting version of Ash Well.
That's funny. And so, yeah, I mean, I think
that's true. Like the bigger an app gets, the
more ash matters. And I think that's where people
struggle to realise its power because if you try it out on a
toy app, it doesn't give you anything.
And it's not until you have a really big domain and lots of
things to generate from that. I feel like it gives you a lot
with a toy app because it gets you up and running really
quickly. I'm not saying it doesn't give
you anything with a toy app. Yeah, OK.
Like the value isn't there because people go like this is
not doing that much more than what I could do, yeah.
Fair, especially with. LLMS it's like.
Yeah, I actually struggled. I liked the idea of Ash.
I liked, you know, I liked Zach. I had Zach on my podcast before
I started diving into Ash as well.
And I struggled. I gave up.
Like I ripped it out of a couple projects where I tried to bring
it in and I was like, I'm just, I can move faster.
Just, you know, use using Elixir in Phoenix.
I'm just going to stick with what I'm comfortable with.
And then when the book came out, I was like, all right, I'm going
to force myself. I'm going to actually learn this
thing. And now all my personal
projects, like if I'm in control of them, I'm using hash on all
of them now because you just like get up and running so
quickly. Exactly.
I mean, it's not just up and running and like Igniter changes
the game on that. One, just like so much less
template code that you're writing as well, like you just
create your resource, your policies and like you don't have
to think about your migrations or like anything like you so
much comes out-of-the-box. I think having spent like a
decade of writing migrations in Ruby and.
Migrations and just suck. Like, honestly, it was the worst
part of my day. And it's like, what are we, What
are we doing here? And not having that, like
people, you know, undervalue, like just how great not having
to think about migrations is. I mean, you still have to read
and review them, but unless they're destructive you don't
have to look at them. Right.
Just a projection of your domain.
I have a horrible habit of always reading all the and maybe
it's not a horrible habit. It's probably a a safe.
Habit. It's a good habit.
Yeah, I read. All your kids out there, read
your migrations. Don't be like Uncle Josh.
Yeah. And but so far I haven't done
anything, you know, complicated like basic web apps, you know,
they're just CRUD operations essentially, right?
But I have not had to adjust anything like my indexes get
created properly. I I have not had to edit
anything. And that's nice.
Right. Yeah.
And so I've been doing that long enough that I think, you know,
unless there's a problem later, which is very rare, like unless
you have very specific needs, if you're just doing, you know,
normal stuff, ash, ash has your back on that.
Well, it's actually technically ash Postgres.
And that's the other complexity about ash is like ash core is
really, you know, like the starting point.
And then ash Postgres means you can derive your data layer and
there's all kinds of data layers popping up.
And I think, you know, it may be controversial, but I think we're
seeing that 2026 may be the end of like the road for relational
data because it just doesn't work really in an agentic world
where you need, you know, graph, sparse graph relationships, you
need vector, you need time series and temporal
understanding as well. Like what facts of the world
were replaced by new facts. And yeah, the multi model DB is
something we're looking into at the moment.
Sounds complicated and now another thing I have to learn.
Well, look, the relational DB has done well, I think it was
sort of invented in the 60s and 70s, I believe, you know, and
the relational model has has had a good run, but it just taps out
at the the things that you need for a Genting memory and being
able to query, you know, context about the world extremely
quickly and thoroughly. And so anyone who's you know,
I've been doing stuff with agents, it's like intelligence
without context really isn't that useful.
Right. Well, that's.
Been the biggest problem. Right.
And the the more context you can
give it, the better, which is, you know, open floor, maybe you
know, effectively A weaponized virus in disguise, but you know,
it's very, it's when you give it, when you give it all the
context and all the tools, it can be extremely helpful.
I have not played around with it.
I have like kept my eye on it but I haven't used it.
Maybe I need to? Look, it's definitely worth
testing it out in a very, you know, sandbox.
Don't give it any tools that yeah, yeah, I might regret and
definitely do it in the sandbox. You know, the more sandboxes the
better. Yeah, sandbox inside of
sandboxes. But yeah, I haven't played with
it either. But what I've done is largely
just put a whole bunch of context in files on disk, which
is largely A clawed native knowledge graph.
And so I've been running sort of my own very Macgyvid open clause
style thing just with clawed code with files on disk, and it
works great. That's awesome.
It definitely falls down though, because you know where it puts
stuff it's using like file system search primitives like
graph and you know, find and that kind of thing.
And so that starts tapping out pretty quickly.
And I think it's interesting because I've also been, I don't
know if you've ever tried this, but just opening up Claude
inside your doc Claude directory with all of the sessions because
it saves everything. I have not tried that.
That's a good idea though. Yeah, but only recently.
And I don't know what tipped it off.
And I think did this by default because everything, all of the
sessions are stored as Jason L, which is like, you know, Jason
strings his lines on in a, in a text file.
And yeah, grip starts falling down in that sort of format.
And so, yeah, what if you do that?
You can not only introspect, you know, what your clawed sessions
look like. And it took me a while to figure
this out. And this is probably a pro tip
for everyone. Clode does keep things for 30
days, but it has a 30 day clean up window.
So if you want to save sessions older than 30 days, there is a
setting that you can use to go. And I think it's like clean up
frequency or whatever and you can just say how many days it's
taken. Set it to a really high number.
So you keep all your sessions and sort of 1 easy way into this
is you. There is now a command on the
latest Clode. I don't know when they
introduced it. I just found it the other day,
slash insights and so maybe run it on yours if you've got a
cloud open. If you type slash insights it
will basically go in introspect all of your sessions and give
you some. I can sign out right now so I
don't forget. I mean, it says some interesting
stuff. It's really, really kind of
personal and it's kind of helpful because it, it actually
goes and analysis like where did things go wrong?
And it gives you prompts that you can put into your Claude MD
like so you can just copy paste them.
So it gives you a big HTML report and it gives you like
ways to fix up where it went wrong.
Someone had a friend of mine had posted on LinkedIn this morning
that he was like literally just searching his Claude sessions
for swear words. And that's obviously a place
where you got frustrated and the botch is doing the wrong thing.
And it's like we'll find all those times and figure out what
went wrong. Don't do that thing.
'Cause I have been like, are you an F an idiot like after you?
So I was thinking that go in depth explaining what you want
and it still does the wrong thing and you're like what are
you doing? Right.
And I've been doing, you know, all kinds of tasks in just my,
you know, my folder of Claude, yeah, like state files.
And Claude sort of constructed it and.
Have you played around with beads at all for context stuff?
Well beads is just like A to do list.
I did try it out probably last year, but.
OK, it kind of fell on the floor.
It kind of fell on the floor. I think they started trying to
get too fancy with it. And actually a buddy of mine
rewrote beads and it's called beadwork and he's using like get
branches and stuff now for keeping track of tasks and like
epics, It's actually, it works really well.
So Oh. Very cool.
Yeah, I think. For context and like just like I
always make like markdown plans and things, but it's kind of
nice to keep like the plan split into issues and like a nice To
Do List, right? But.
Yeah, for sure. The challenge is when, you know,
you may change direction and like things get invalidated.
So, you know, but certainly there's lots of ways to do that
and I think people are exploring different tools and.
Yeah, there's a new cool ways to do everything I feel like daily
I can't keep up. Well, here's what I've realized,
and this may be sort of explain what's happening with the
explosion of software is it's actually easier to write your
own now than understand someone else's thing.
And I don't know if you played with Gastown, which was Steve
Yegi's sort of advancement beyond beads.
And I think he uses beads in Gastown.
But honestly, that was just, you know, someone's fever dream.
And I'm like, I tried it. And I'm like, yeah, yeah, I'm
the mayor of Gastown. And then I ended up falling back
into like just raw clawed planning, like I was just in
called plan mode. And raw plan mode is what a lot
of people are discovering is actually pretty good.
It keeps getting better. And so you don't actually need
to live inside someone else's fever drink tap.
You can create your own. And that's honestly better than,
you know, writing your own tools, hyper personalizing them
for yourselves. And software engineers are are
the most capable of doing that. It's like wild too for me is
like I've been just using the the app, the Claude app a lot
and like Co work you can. I've been just writing my own
like Claude MD's for directories and like I have like a candidate
evaluation skill now and it will go through candidate projects
and give me like PDF write ups. So I know if I want to go
physically look at their code or just trash it.
Like it will tell me if it's like good or not.
And then I'm like, OK, now I'll manually review this code.
It saves me so much time. It's amazing.
And look, that's that's it. Like we're producing output at
such a volume that actually human cognitive limits of reach
very quickly and you can't read and reason about the world at
that speed. And so you actually.
Have to. You actually have to have the
box like do it for you. Like as we see, like you just
made a tweet about, you know, AGI being like right around the
corner, right? And like, what do you see it
doing to like our worlds? Like you and I both get paid to
write code. Like you're a consultancy.
So you're, you have employees and all of this and like, are
you worried or do you think it's just going to kind of like shift
how we do it and we're still going to be the technical
architects that have to build things?
Well, I like to think of it this way, you know, and maybe zooming
out to like not just software developers, but humanity is
about to get a massive uplift. Now we may be speed running the
industrial revolution in sort of a tenth of the time, you know,
like a year instead of 10 of that nature, so.
Can we, can we keep up with our own advancements?
Like that's kind of like what kind of scares me.
I don't know. I don't know about you, but I'm
reaching my own personal cognitive and.
Physics. Yeah, I've hit that a while ago.
And and so, right. And so that is a signal to say
we are the bottleneck here. Like we're outgunned.
Like for sure we've got intelligence and you know, it's
non deterministic and so it's not always right.
But have you met people? Have you met the?
Internet nobody's right. And I think, you know, what
prepared me most for a lot of things in this life was I had a
brief period of playing poker online and back in like probably
what year was it, 2003 when poker got really popular.
And I learnt, I took, I was in between sort of jobs and I was
like kind of disillusioned with IT.
And I was at the end of my 20s going, is this really what I
signed up for building software. And I, I didn't get it.
Like I didn't get why we're building this, this garbage
stuff. And it was overly complicated.
And I thought it was me. Then I realised, oh, actually
it's everyone else. Like why are you making this
more complicated than it needs to be?
And simplicity is hard. Like you know, it sounds easy,
but it actually I always more more effort.
I always found like when I write my own code, it's easier to
follow right? And I also feel like my
solutions are always more simple than other people's, but I don't
know if that's 'cause I've. Really.
So says you. Right, right.
Like I always I have to talk to the guy that is working on my
code years later when I'm no longer part of that company, you
know, and see how they really. Well, exactly.
And I think, you know, coding is a communication exercise and
it's a thinking exercise. And so really a lot of the
things that we're doing is communicating and thinking.
And if you think it's about typing, you probably need to
check. For now, it's.
Really what programming and software development is all
about. You're solving problems.
You're doing like hard thinking about how to solve those
problems and communicating the solutions.
Well, even before we, even even before we had LLMS writing a lot
of our code for us, you still spent 90% of your time thinking
through solutions and they're like and then you write the
code. But it's 10% is probably on the
high side of where you spend your time writing code.
Right. And look, I think just the the
poker story was all about just playing probabilistic games.
I've always loved backgammon and I like poker.
I've never been that great at chess.
I mean, chess has some probabilistic stuff to it, but
if you know your opponent and you know what level they are and
you're reasonably good, you know, chess is pretty
deterministic. There's only a certain set of
moves that your opponents like, right?
Well, and they might come up with something good that you
didn't think about, but you largely know within sort of.
I feel like. The best what they're going to
do. The best chess players are just
really good at memorizing tactics, right?
Like, there's only so many movements you can make on a
board and when. Yeah.
And so it's like memorizing what's been done.
And that's why, like the speed chess is interesting because you
can't deeply think about it. You're really just falling back
to just pure speed pattern matching.
But also, have you seen chess? I think it's called 960.
And what they do is you pick a random distribution of how the
pieces on the back are arranged. And I'm not a chess expert, but
basically randomizes, so you can't memorize all the moves.
So you're actually going back to sort of those principles and it
sort of levels the playing field away from just pure memorization
and memory. That's kind of cool.
So that's a a more pure sort of thinking game.
But yeah, I always like probabilistic games.
And so thinking about how to constrain the probability fields
or the range of outputs of an LM certainly suits me.
And Poker's an interesting game because you don't even know what
game you're playing and you're playing the maths.
Are you playing like the the game theory optimal, like no one
can exploit me? Or are you playing an
exploitative game or exploitative defence?
And every hand is is different and every session is completely
different and you're changing up the levels of where you're
actually playing. And, and it's a beautiful,
beautiful game for that reason. It doesn't look beautiful on the
surface, but it's like, are you playing the long game?
Are you playing the short game? Are you trying to five in a
tournament? Like it's a crazy, crazy game
with lots of variants and you have to manage the probability
and you know, you can have the situation where you can make the
right decision and be and lose a lot of money, possibly all of
it. And you know, you still would
make have to make the same decision every time and learning
from things where you're right but but you lost, and vice versa
like you were wrong but you won. And you have to know that you
were right and still lost, so you don't like change that
behavior. Right, exactly.
So that's a crazy game. And that look, that applies
perfectly to business, and it also applies perfectly to, you
know, managing the probabilistic output range of an LLM as well.
So really our jobs as engineers working with LLMS is trying to
narrow the range of outputs that it can come up with.
And then we assemble, you know, committees and hierarchies of
LLMS to make sure that, you know, humans less involved
because we can't do human review on everything.
And really what's maybe missing on most engineering teams is
like the idea that humans have to review everything.
That's like, well, do they, you know, because think of the, you
know, the stakes. When the stakes are low, you
should let AI do it. When the stakes are high, you
should absolutely have humans spend the most time there and
not all all things to review are equal.
Yeah, that definitely terrifies me because like I, I'm
definitely still stuck in the mindset that I don't want to
allow the possibility of bad code going to my code base.
So I'm the bottleneck reviewing everything, right?
And I don't know how to get past that either.
Like how did what? Like, what safeguards do you put
in place to make sure the right code is being generated, the
right kind of tests are being written without verifying it,
you know? Well, and you know, I don't know
which project you're talking about, but you're talking about,
you know, your you've got a few side projects.
Any project really. But yeah, like for instance,
like Killswitch is a good example because, you know, I'm
using encryption. People have to trust me with
properly encrypting files and text and all of that good stuff
and yeah, I can't not look at that.
What is What is Killswitch for those who don't know?
I think everyone that watches this podcast probably knows, but
it it's, it's essentially like an encrypted document storage
with deadman switches. So you can add beneficiaries to
any of your files, notes, whatever it may be.
And then if you stop checking in and you can set that window
whatever you want it to be. Then it will send out to your
beneficiaries and don't. Go offline.
Don't go offline for too long, but it's been a lot of fun.
So it's sort of like, you know, so yeah, well, like when the
time when the the switch triggers, 'cause you haven't
responded, like, you know, your special set of secret stuff is
released. Yeah, that's.
Be careful. And so forth.
Well, so one thing that's cool, I basically I create like
signing tokens for each share link that's created.
So like every person that receives access to your
document, you can revoke at your level.
So like if things accidentally go out, you can revoke
everything and then they lose access as long as they haven't
already downloaded it. But.
Right. Yeah, I don't think we've
managed to create the, what's the word, the the encryption for
like once his hit human eyeballs.
Yeah, yeah, with. Basically.
Unencrypted black flash just. Are you flashy theme me?
Yeah. So all right, I'm going to just
put this on hold for one second and play a quick add and then
we'll be right back. Hey, I'm Kimberly with Elixir
mentor Jacob recently added recruitment services to help
companies hire pre vetted Elixir devs.
I help with company outreach, so if you're hiring, I may be
reaching out, or you can connect with us anytime at
elixirmentor.com. Coding Elixir with AI or
building AI into your Elixir apps?
The Elixir AI Collective Discord is your community for both.
Link in the description below and we're back now.
I forgot what we were talking about.
I always. Well, we were talking about kill
switch and agentic engineering. Yeah, so like.
Probabilistic stuff. Well, I have a question for you
first, you're using, you're using Ash and Elixer and Live
View I'm. Assuming Yep.
Live view Elixer Ash. Yep.
And how are you finding that? Oh, I mean I love it now I would
say so Killswitch, I feel like I went into kind of already like
get I I got it like I know how to use ash now, but like with
projects prior to it, I was like, I know how to do this the
normal way. How do I do this the ash way and
that was like the hardest thing right 'cause then you're like
OK, I can do this multi tenant app.
I know how to do this with just migrations and my database, but
how the F do I do this in Ash? And like so I would have moments
like that where I would I just beat my head on the table and
then it's as simple as adding a freaking one liner to to your
resource, you know, and you have a multi tenant application
essentially. And but so like once you know
those tricks, Ash is amazing, right?
Because now I can make things multi tenant or, you know, yeah,
multi tenancy ability with one liners and config files
essentially. Yeah.
And the idea is that, you know, like in 30 years, I've built a
lot of apps, I've seen a lot of apps being built and you see the
same patterns over and over again.
And so it was always funny that, you know, it was always the the
Super, you know, battle scarred super senior engineers that got
ash straight away because it was like, oh God, I don't have to do
this thing again because it's like someone solved this
problem, like for real this time.
And, you know, it's funny that you know, as we, you know, tried
to explain Ash to people, Zach and I sort of went to Elixir
conf in the US and I think it was 22 and we were trying to
explain it to people and it just didn't land at all.
And it's, it's like the people that really got it were like,
oh, you solve these problems so I don't have to do it again.
And then the, you know, the people that are less experienced
actually have an easier time going, Oh, like, I don't have to
know how to do that. Like, it just does it for me.
Oh, awesome. And so it ended up being like
almost like a Midwick meme. So like the the people in the
middle, like who are still cutting their teeth learning how
to code and haven't made all the mistakes yet, actually want to
write code and want to learn by making the mistakes themselves
without having it spoon fed to them.
And so actually in the middle of the sort of range of experience
were the most resistant to ash ideas because it's interesting.
Well I I just got my coding badge and I need to learn this
stuff myself so. You feel like like the like mid
level developers are the least likely to like Ash?
And just hate it in our experience.
Well, like, obviously that's a generalization, but we've talked
to a lot of people and the most resistance comes from, you know,
the middle. Well, I also feel like like
Elixir is stuffed full of a lot of senior level people as well.
Like, yeah, we have our beginners, but a lot of us come
from the battles and headaches of other tech stacks.
And then when we find Elixir, we're like, we're never leaving.
So I think there's that too, right?
I don't have any plans to leave. I don't want to.
I made-up my other job, I made-up my own jobs just so I
could write Elixir before I, you know, got my official first
Elixir paying job, you know? Hey I started a company so I
could do. This Yeah, I did the same thing,
but I struggled. I tried to start a consultancy
and it was hard. I just like, I suck at getting
clients and it was a lot of hard work.
And then I ended up just like getting a lot of website clients
and I was like, well, this sucks.
I don't want to just make websites all day.
Yeah, I mean, look, running your own business is hard.
You know the founder out there. You know found a life.
If you know, you know. I'm stuck in it for some reason
I can't stop torturing myself. Well, once it, it's a double
edged sword, right? It's sort of like you get more
freedom from the traditional employment relationship, but you
know, at a cost of there's a lot of you actually get more
freedom, but less because, you know, your boss just shifts to,
you know, something else. I don't know for my own, for all
my projects, my boss is a real asshole.
Right. And sometimes you are your own
worst boss. Exactly.
Like I'm probably harder on myself than oh dude.
I don't give myself any breaks. It's just like, OK, day job is
over, now you're grinding until you can't stay awake.
Right. So yes, the, the grind is real.
And look, nine years of, of running a consultancy, yeah,
it's been a challenge. And look, it's been, I mean, I,
I know a ton of the Elixir agencies and certainly it's been
a while since I caught up with like a lot of the other
consultants, more consultant consultancy and sort of studios
and agencies around Sydney and Australia.
But I know a bunch of them and not everyone made it through the
last sort of 3-4 years. I feel like the last four years
have been rough. Brutal.
I think brutal. So, you know, like even just
surviving through that is definitely success.
And, you know, because not everyone made it and certainly,
you know, wallets and purses snapshot about yeah, after post
COVID and like, you know, there was free money for a bit and
then suddenly there wasn't. So the 0 the zerp or the 0
interest rate meant that basically borrowing money was
effectively free. And so there was a little party
for a while and there was lots of money and lots of, you know,
craziness going on. And then reality bites.
And you know versus a snapshot the.
Fake growth bubble or whatever you want to call it.
Because I feel like even like like SAS companies or tech
companies in general, not just consultancies, they all just
bloated their payroll and then they mass laid off and we're
still seeing that now. Yeah, I mean, the the news
recently was blocked doing exactly that.
Yeah. And you know, funnily enough, I
do know the head of engineering of Block and he came out, he
lives in overseas and came out for Christmas one time.
And he's talking about just how many engineers they had.
And I'm like, I can't even reason about how many engineers
you have, buddy. Like, what do you do with them
all, you know? And so I guess I got my answer a
week ago. It's like actually maybe you had
a few too many. And so that wasn't, I think,
just an AI story, although that's a nice take for, you
know, the investor crowd. And it's a it's an easy story to
swallow, but I don't think that was the whole story.
Yeah, No, I agree. I think well, I think so like
Collects is my day job really awesome company, right.
And they're very bold like our CEO and CTO are very bold on
like AI moving forward. But like no one at our company
talks as AI is like a replacement, more just like like
an accelerator for all of us. Like it adds super powers to all
of us. And so we always talk about how
we use it and what our workflows look like.
And we have like weekly calls about it, just so like if
someone starts doing something differently, but it works really
well, we all talk about it. Yeah, yeah, we're doing the
same. And you know, look, it's hard to
keep up. There's 4 Claude releases of
Claude code per day. It's like it's just keeping up
with that is difficult. You know, I was describing it to
my business partner and wife, you know, because she isn't like
she's like, oh, why aren't we just sharing all this stuff?
And I'm like, it's like having Christmas every hour and you're
opening all your presents and you don't have time to get to
them all. And certainly the ones you've
opened, you don't even have time to play with.
And so there's this giant pile of toys behind you and you're
like, this Christmas sucks. Like, I don't even play with any
of my toys. It's just all the dopamine of
opening the presents and going, oh, maybe this is good.
I don't know, I can't even keep up on like just reading the
change logs and I'm trying to be a better person about that.
Right. Oh, but you know, like, I think
you can probably agree that we're able to do much more now.
And we don't know where the limits are either.
It's like, what are the limits? We don't know.
And people are busy finding it out.
And I think, you know, I think who said it, I think it was Karl
Pathey may have said, like I've never felt so behind because you
can sort of see where the possibilities are and you're not
there. And it's almost like a a
restatement of Dunning Kruger where the people that know the
most actually think they're the dumbest, know the least because
of they they're aware of how much there is to know and how
little they actually know in relative amounts to to the
total. The Dunning Kruger curve is
real. It's.
Totally real. And so the people that are most
knowledgeable actually think they are the least knowledgeable
because they know what's possible.
And except for Mike Hostetler, I can't keep up with that guy.
Can you keep up with him? No.
I think he's running agents in his own brain and he's just
always working. I don't even know.
I I keep chatting to Mike and I'm like, Oh my God, dude.
Like I don't know how you do it all.
I don't either. Trying to figure it out myself.
Some level of LLMS is the answer.
But yeah, it's like, you know, I always thought Jose Velim was
like 10 developers in a in a long trench coat.
Like how does he keep doing what he's doing for as long as he's
done it, dude. For him, Zach Daniel is another
one, like I don't know how he does everything and like how
responsive he is too with like Ash questions.
Like dude, I don't even want to respond to people in my elixir
discard. I mean, I love that everyone's
in there and I like chatting, but it's like when there's like
a question, it's like, oh, that's going to take me like 20
minutes to actually thoughtfully answer and.
I was like no like an SLA of milliseconds.
Yeah. And actually, you know, Zach's
now head of engineering, I think his his title and he's sort of
running a pretty massive team at Remedy Meds.
And yeah, like I think that has tied him up.
And so he's. Slowing down a little, right,
You know. Yeah, we just had to put some
some anchors on Zach so that he could create some space so more
contributors could come in because no one could beat Zach
to answering questions or. Or even writing features.
And so actually slowing Zach down was the best thing to
happen to the Ash ecosystem, ironically.
Like, you wouldn't think that would be true, but it's like,
you know, I I definitely, you know, begged Zach to like, just
create some room for other people to step in and he
couldn't. And so actually like.
I get it, when something is your baby, it's hard to it's your.
Baby right? And you know, yeah.
And he was like his I guess iterative OODA loop.
If anyone knows that, it's the observe, Orient, decide and act
his OODA loops, which is so fast no one could compete.
And basically, yeah, there was an interesting and recent chat
where he described the the OODA loop and it's kind of a
generally applicable thing and it's worth calling out the
story. But it was created or sort of
coined by a fighter pilot. And basically this fighter pilot
was just so fast at orienting, observing, orienting, deciding
and acting that he won every dogfight.
And so it was about having a tighter OODA loop than your
competitors or adversaries in a, in a sort of aerial dogfight.
Because if you can do the Orient, observe, Orient, decide
and act faster, you've changed the state of the world.
And if your opponent's OODA loop is slower, they have to start
again. And so if they've only got to
deciding and they haven't acted yet, if you've acted and they
see that, then they have to start and observe and, or, and
you actually create, if you're tight enough of a loop, you
create a psychological break because you can never do
anything because you have to keep starting again.
And, and that was like a completely wild idea.
And I, I think, you know, definitely applicable to a lot
of scenarios, but I mean, the OODA loop is also the scientific
method, right? It's sort of keep trying some
things and seeing what happens and depending on the response
from the world, learn some things and do it again.
And you know, what is FAFO? Can we swear on this show?
Yeah, I mean, it's YouTube I think.
You know, it's fuck around and find out is the scientific
method. It's like do some things, learn,
rinse and repeat. That's all it is.
And you know, it's interesting that we're seeing that, you
know, you program LMS to do that and you get sort of evolutionary
intelligence. And, you know, I was kind of
joking about AGI getting closer because Jeff Huntley is
rediscovering ash and elixir like he it's.
Cool to see people talking about it at like, you know, the access
of you know, the popularity of these people bringing elixir
back into the game. I also.
Well, I think. Someone like this isn't going to
surprise you, but the Rusk community wants to rebuild
Erlang and Rust. Like, well, I mean, I think
we've tried that a few times ourselves, the Elixir community
and look, I'm here for it. I mean, it's a difficult, it's a
difficult thing to do because there's more to beam than meets
the eye. And I think there's a pretty
interesting Twitter, I'm not going to call it the new thing
Twitter conversation recently about exactly that.
And I think, you know, it's sort of like, oh, you don't
understand the beam. You know, language wars.
We don't have them very often, but you know, it helps to be
unfailing and welcoming. I.
Sound like a broken record on my podcast at least.
Because what's wild to me is like Beam and Erlang solved all
of our problems today back in the mid 80s.
I'm. Having the same problems, it's
just a different different mask on them or whatever you want to
call it. Well, what I've been seeing the
last sort of month or so is people basically putting an LLM
inside their Kubernetes cluster and then going, oh, we can spot
the problems and like fix them and like restart the thing.
And I'm like, oh, like self healing systems.
You know, Erlang's had that since 1986, man, 40 years of
self healing systems. I want to get AT shirt actually
self healing since 1986. And so what's interesting about
that is part of that is self healing.
And you know, obviously with supervision trees and limiting
the blast radius, you know, you can fix the problem, limit its
blast radius and not affect other things and restart it in a
known good state. So you know that is a a brutally
effective and simple strategy. It seems complicated, but it's
like no, just start, have a tree of things and then let something
fails. Crash and start it back up.
Start it back up in a known good state.
I mean, how do you fix most technical problems that it's,
yeah, you know, have? You tried unplugging it and
plugging it back in? Have you tried?
Turning it on and turning it off again.
Turning it off and turning it on again, that's basically the beam
in a nutshell. In terms of how you need to
understand supervision trees. It's like, you know, and the
bigger the tree and the smaller the pieces, the less, you know,
impact. Any failure at any part of the
system can affect any other part of the system.
And that's such a brutally simple idea, and I don't think
people appreciate the elegance and simplicity of that as much
as they should. And people think it's the actor
model, which, you know, like, is it the actor model?
Certainly BEAM was invented and Erlang sort of VM was invented
before the actor model existed. And they were like, Oh yeah, it
just happens to be the same thing.
But you know, what are Gen. servers other than OO?
You've got this container of state where you encapsulate
state and you talk to it through a message passing, which is what
Alan Kay actually meant by OO. He was like, Oh yeah that's what
I meant. Like not objects and an
inheritance. Dude, I wish.
Honestly I wish it would have saved me a lot of time.
My learning curve when I learned how to program with object
oriented programming was so difficult I could not wrap my
head around. It wasn't just you mate.
Yeah, I didn't understand. Like inheritance sort of made
this logical sense, but it didn't make any sense at all.
Like I'm like this seems simple but it's why is it so wrong?
And then like. Probably.
It probably took me over a decade to figure that out.
Well, and it, it, it has so many flaws, which is why we have so
many patterns to follow, right? Because if you don't follow
specific architectural patterns, you're going to have a hell of a
time debugging or having a stable project.
And then like all of these like patterns in Elixir and Erlang,
you just have to use the language and there's just a way
to use it. And you don't really follow a
specific patterns, you're just using patterns because that's
just how things work. And here's The thing is that you
know, you and I probably took a decade long plus detour into OO
and never felt like we got it and I probably beat myself up
going. You must be really dumb if you
can't understand dude. You know what I the most out of
OO world is? Singletons.
And just like shared state and the fact that you can fuck
around with an object in multiple places and have race
conditions that are almost impossible to track down and
just alter data without knowing where it's being altered from,
that drives me insane. It's funny that you mentioned
singletons, but you know, yes, scars were had because I did
like Java and Ejbs and like, you know, Spring came along as
dependency injection, which wasn't the best dependency
injection solution by any stretch because it was all XML
and like. And I'm like, what I realized
actually a long time later is that, yeah, when I joined the
mob in, in London hacking away, it was like the early Footworks
office and they were building their own dependency injection
framework. And what I realised a lot later
is that I'd actually been doing exactly the same thing in my
Java files because I'm like, oh, well, I've got 2 implementations
of this interface. And I'm like, you know, they're
sort of structural strategies. I'm like, I want to boot up my
app with one or the other, like depending on what I need when I
run it. And I'm like, well, how can you
do that? And what I realized was, oh,
well, you just need to be able to dynamically set from outside
what the implementation is. And you could pass that as a
parameter to your program. But what I decided to use was if
you remember Java properties files that basically were just
kind of like tunnel. Sadly, I do.
Remember it was just a key equals of that value.
Kind of like an environment file or whatever.
It was just key equals value. Dude, I remember.
And So what I did was I had like the interface full qualified
package name equals the implementation that I wanted.
And So what I didn't realise until way, way later is like
independently had invented dependency injection, but you
can do impendency dependency injection and everyone goes, oh,
what is that? It took me years to figure out
it was just pass some arguments to your functions and then this
is how I teach functional programming now is like, well
any high school kid, middle schools I think learn F of X.
When do you learn F of X in America you know?
That's like algebra. So right.
I mean, I taught my daughter that like F of.
XI want to say like freshman, sophomore, year of high school
probably. How old are you at that point?
You would be like 14. Right.
So you knew the secret of functional programming at age
14, and you were certainly capable of understanding it way
earlier than that. And F of X is it like you know,
it's a pure function, it takes arguments you don't suddenly
grab like other state or arguments from anywhere.
But X can change over here too. Right.
I mean I mean imagine maths how hard it would be if if suddenly
like stuff could change your F of X.
Yeah. Like or it started sending
emails or printing stuff out. Getting confusing, but yeah,
I've always said that. I've always said if I started
with a functional, like immutable language where you're
just transforming data and you know exactly where it's being
changed, it would have been life changing for me to learn.
I would have learned so much quicker.
And I think, you know, as functional programmers, you
know, it's probably, you know, on us to teach people just how
simple it is. And, you know, I've done this
because people have forgotten they got taught or like
overcomplicated stuff. And if you strip all the
nonsense away, it's just F of X. And that is the most brutally
simple and effective way to teach functional programming to
anyone, even children. And so I think actually, you
know, in this age, perhaps the people that have yet to learn
where the limits are and be sort of taught wrong things probably
have more scope to go further because they can skip to the end
without this detour that we've had.
As you know, we did like a decade wasted a decade in the OO
mines I. Mean yeah, I.
Mean wasted a decade not thinking F of X was the answer
just. But I also.
Think it functions. The problem with developers and
software engineers is we're like very hard headed and you never
want to be wrong. So shifting your mind like like
I ignore Elixir for like 2 years.
I had a buddy telling me I like, you got to check this out,
you're going to love it. It's like, dude, I don't have
time for that. I'm busy in node JS bro.
When your friends say that, you should probably listen.
They care. About them, well, I, I know, I
know and I say it all the time because then like I started my
own one of my like a bootstrapped business.
It was a marketplace and I was like, all right, let me look
into this elixir thing and like on paper I was like, OK, this is
this is what I need. This is perfect.
And like on paper, I understood the shiny things and then I
started learning it and I definitely didn't understand
supervision trees and Genservers and like OTP and all this stuff.
When I first started, I just like started kind of writing a
REST API like you would in JavaScript and I like relearned
and rewrote things over and over again and just learned the hard
way. And but I did it right away on a
project and I'm like really happy I did that.
But then I was like, dude, that was hard.
And that's actually what inspired me starting my YouTube
channel. I was like, I'm going to teach
people how to get like off the ground and running quicker than
I did because I just want people to build their projects.
You know, like as an older person and with more experience
and some learnings under the belt, you can definitely pave
the path behind you. So it's easier for sure.
With saying that, I need to get back in motion with my ash
course because I've just kind of ignored that.
For Oh yeah, what happened with that?
I just like, I saw the first lot and it was amazing.
I was like, this is very ambitious, Jacob.
I know. Well, it's really good.
It's a fun project. I just like a lot in life caught
up to me and I kind of just like burned out on making tutorials
and now I feel like things are slowing back down.
So I just have to like, get back in the motions of like recording
a video, like maybe just once a week and just get going.
Yeah, good, good habits. You know little.
Steps, it's easy to lose them. That's the thing.
And then I feel guilty, like it's an extra guilt because all
these people are like, when are the next videos coming out?
I'm so excited. And then like you feel obligated
to these people for your free content.
But like, I love helping people so I want to do it.
Right. Look, and it's the stuff that,
you know, you do for the love of it and because you want to and
because you care. And then, you know, life has a
funny way of paying that back sometimes.
And really it's about, you know, movement and emotion, just doing
stuff. I mean, it's I.
Wouldn't have. I wouldn't have any of my jobs
right now without starting my YouTube channel, you know, like,
yeah, that's kind of cool. And like this podcast, I get to
meet all the coolest people in the Elixir community because
they come on my podcast and talk to me.
Right. I mean, yeah, I think you've
collected a very interesting and amazing bunch of people.
I've been kind of jealous of your your guest list.
I'm delighted to be included on it.
I mean, you're one of them. You're one of the awesome people
on my guest list, so it's cool. I'm just surprised all these
people want to talk to me. You.
Know well, I think, you know, you're the lightning rod mate.
It's like, you know, someone has to do the organizing and, you
know, bring people together and that's a really valuable skill
because I think, you know, a language community is more than
the technical stuff. You know, it's about how do you
sustain and grow that community and, and keep it as great as it
is? Because I think, you know, like
the licks are maybe an amazing language and the beam may have
been self healing since 1986. But, and, and have some insanely
great ideas that, you know, maybe the words are complicated
and a bit scary, but the ideas are like elegantly simple.
And so, you know, like don't be put off by the, the crazy words.
But you know, like I've organized community stuff for
probably nearly a decade. I've sort of lapsed because I
did a lot of travel last year on organizing Elixir Sydney and
yeah, recently shut off mymeet-up.com subscription,
which was costing a lot of money.
You know, I still had meet ups that we weren't it.
Kind of sucks that it's so expensive to use meet up now.
I remember when. It was so.
Expensive. And it's so expensive.
And then they do that, like, blackmail thing.
So if anyone's listening on the Elixir City, it's like, still a
thing. We'll do some more things, I
promise. And yeah, like, they're going to
do the blackmail. Hey, your, your organizers step
down. Who wants to step up?
And it's like auctioning off the Elixir City thing.
Yeah, it's, you know, it would be a shame if something would
happen to your meet up and then it's sort of like extortion.
And so I'm like, no, I'm done. And look, I think, you know, we
should all, I haven't managed to achieve this yet, but if you're
listening and you run a meet up, you should probably move off
meetup.com and go to Luma because that is way, way better.
It's free unless you charge money, which typically meetups
do not charge money. And so it's free and the
experience is really good and you can have, it's a slightly
different thing. So it's not really designed,
it's designed for events rather than meetups, but perfectly
suits running meetups. But you can have a calendars
that contain other calendars. So you could have an Elixir
global calendar, you could have an Elixir Australia calendar or
sort of different hierarchies. And there's no sort of limits
about how you can constrain the containment of of different
meetups, for example. But the language does confuse
when you first see it. But yeah, we're going to be
using Luma from here on out, and I recommend that other people
do. Do you have meetups where you
are we? Do I'm horrible at get into
them. There's an elixir meet up that
tries to meet like once a month, like just South of Salt Lake
City, and I kind of slack it going, but when I do make it,
it's fun. Like it, you know, you see all
these guys that are all like working elixir developers for
the most part. And you know, I recognize I'm
horrible with names and faces. Oh, I'll remember faces horrible
with names, but it's. Cool.
It's cool when you like start seeing the same people at
everything. And I also like kind of enjoy
because like I do this, this is my spotlight and but when I'm in
person, I can like kind of take a back seat and just enjoy
speakers and things and it's kind of nice.
Yeah, for sure. And it like it's its own reward.
I mean, I used to sort of treat it as a monthly excuse to get
out of the office and just socialize with a a regular crew
and talk talk tech. I like when I'm like in it, but
getting there is the hard part. Like I'm like, do I really want
to drive and go socialize? Well, exactly.
And I think the the challenge is, you know, post COVID,
meetups were never quite the same.
And, you know, we kept running online stuff and then, you know,
geography doesn't really matter at that point.
It's just time zone. And so, you know, I think, yeah.
And meetups were never quite the same.
And certainly when they came back after COVID that like we
had some really big meetups in Sydney.
And then I think just everyone's not working in the city anymore.
Like, yeah, it used to be huge because everyone would be in the
city. It'd be like, oh, like after
work I'll go have a have a drink and.
I feel like that's what it was, right?
Like it was your commute home, so you didn't drive very far.
It like, you know, if you're driving 20 minutes to work but
your meet up's 5 minutes from the office, it's a lot easier
to, you know, make that excuse to swing by on your way home.
Yeah, exactly. And so, you know, like in
Australia, if you work in the city, you're probably not
driving your car and so you're getting public transport.
And so it was, you know, even easier if you can go from your
office, walk to the central meet up.
And, you know, we had a lot more people there.
And I think most people are sitting at home watching
YouTube, maybe this. And you know, that's why when
meet ups aren't quite the same, people can.
Chat with us live like you know, we got.
Let's see. Who's saying what?
I can't see any of the chat unfortunately.
If you went if you go over to the YouTube live stream, you can
see it, but Steve said he just picked up the ash book a lot of
fun so far and I was I think it's a great it's a great book
and Jura. Steve could probably find my my
quote about the the half. Oh yeah, there you go, the ash.
Thing it's in the Ford somewhere.
And then? What I call?
It Jura, sorry if I'm butchering your names guys.
He just said he loves Ash and then Victoria goes, dude I love
your channel. I'm studying to make my career
change from JS full stack to Elixir and he's from Peru.
It's a it's a good move dude, you won't regret it.
That was pretty much. You really.
You really weren't. I was JavaScript back end.
I always did back end stuff and I did Swift and a lot of iOS
development and I don't want to touch any of that stuff anymore.
Yeah, yeah. I mean.
Yeah. So you mentioned Micah Stetler,
who's a legend and he has just released Judo 2, which is super
exciting, but we we catch up fairly regularly and he, he told
me that he was actually part of the jQuery core team way back
when. Oh yeah, he was.
Isn't that crazy? Yeah.
I'm like, oh, what I love jQuery.
I like J when I discovered that dollar thing, I'm like, Oh my
God. And so for anyone who's sort of
new to the web, like jQuery was the giant Band-Aid that you put
across browsers so that any of your stuff would actually work.
And so if, if you're now used to document, you know, selectors
where you, everything's on document and you can find things
in a Dom by CSS selectors or, you know, do stuff that used to
not be true. And jQuery was the the solution.
And it's still around like jquery's used massively on, you
know, if you want to do vanilla JS with no framework, jQuery is
the thing that, yeah, wild. I, I cut my teeth on and you
know, it would get you very far and you'd be like reacting to
individual events. And then you'd end up going, oh,
I've just created the world's greatest spaghetti.
And then you really needed it because you'd be like, oh, how
do these things interact? And you couldn't reason about it
at a certain scale. It was great until it wasn't.
Yeah, yeah, most things are great.
Until anything that's good like gets hoovered into like.
A lot of what made jQuery great got hoovered into like actually
the the web APIs which. Is.
Yeah, I forget. Sometimes you serve as the the
Band-Aid until the thing gets fixed.
Yeah, Mike became my friend when I first started doing like Vibe
Coding live streams on Saturday, like when when LLMS just started
getting good enough to like kind of build small projects, I had
like a couple Vibe Coding live streams with guests on where I
made them teach me the tooling. It was great.
And then Mike reached out and I had them on and yeah, that was
the beginning of our friendship and it's been fun.
And now I can't. I can't keep up with the man.
Yeah, Mike, Mike's a legend. I haven't chatted to him in a
few weeks and. I want to try to get to Elixir
Conf in Chicago because he's in the Chicago area and it'd be a
lot of fun, I think. Yeah, like I'm looking forward
to that. I'm going to be going to Malaga
for Elixir Conf EU and I'll be swinging past San Fran and
Chicago along the way just because, yeah, I'm on this
constantly rotating round the world ticket.
Yeah, I guess so. I feel like you're always
travelling. Well, it's the cheapest way to
do it. It's by a long way.
Once you're doing, I just keep going.
Yeah, I'm in the middle of my trip right now.
I started in Oslo in September after Goatmeyer.
Nice. Made it home and I'm on a stop.
A very long stopover, but yeah, I caught up with Mike last time
as well and he took me out to his favorite steak restaurant
and that was nice. He is a scholar and a gentleman.
And yeah, you should definitely check out Jido.
It is, there's a lot there, but the way that it's been put
together is pretty amazing. So you've got first class
agentic programming, you've you've got just an insane amount
of tools in the tool belt. Possibly too many.
So many is overwhelming and certainly I I've only dabbled
but some of the team have been diving into it.
And I got to get Mike back on. He's supposed to be making
content for my channel for Jeto and he's been slacking.
Yeah, Mike, but. I can't throw him any stones.
Because I'm slacking. Well, I don't know whether
Mike's been slacking. Maybe on this particular talk.
He's not slacking on development, he's just slacking
on creating content for me. There you go.
Well, there you go. You heard it first, Mike.
It's it's time to come back. Yeah, Mike, stop slacking.
But yeah, join us Discord too, if you're interested in any like
agenic programming like the Geeto Discord's really awesome.
A lot of smart guys in there. I can't keep up.
I am so bad at keeping up in Discord communities but.
I can't keep up anymore, so I've reached my limit.
I need a box. Ash Ash is a crazy discord
community too. I can't keep up with that one
either. Yeah, there is a lot happening
and you know like there's a Geeto, I think it's Ash Geeto.
It's like first class connections to creating a
genetic programming on top of that.
I did see that. That's really cool.
So if you've got Ash, like there's a connector to Geeto
world for for that and. That's I need to bring Mike back
on and make him just teach me stuff again.
That's the only way I have time. I just make a live stream and I
box it out. Right This is why I did meet ups
dude it's like oh I want to learn stuff on a regular basis
I'll just set up the meet up so and if I couldn't find speakers
I would have to learn something and tell everyone.
There you go. Well.
Like it's really. Funny.
People always public speaking. People always be like, how do
you have time for your podcast? It's like, it's great 'cause I
just bring smart people on that are doing cool things and they
tell me about it. It's like my free education pass
and I have to pay attention 'cause I'm talking to them so.
The secret's out. Yeah, that's why I did meetups.
It's like I wanted to learn stuff and I wanted to catch up
with cool people every month, and so I just did that.
Yeah, my podcast is purely selfish, dude.
Like it's for me but. I mean, I I did meetups for
everyone, but it's mainly for me, yeah.
Yeah, I got it. You know, I I've got to find the
time to bring that back, but. Yeah, yeah.
I don't know. I don't know if the the age of
meet ups is really over it and I think maybe you think we'll
spend way too much time in front of our computers.
It's like actually healthy to go and meet in person.
I think so. I think it's good to meet in
person and just like who was I just talking with?
It's like just the like I was just down in Austin for the X
Max conference, the small. Oh yeah, how was that?
He was awesome. I got mad at Nathan for for
putting it at the same time. As yeah.
I couldn't. I couldn't go.
I was like same time as beam. Beam.
Beams or whatever code beam, yeah.
And like, I know this is just for me, but could you just shift
it by week? Yeah, he obviously told me to
get lost. I'm.
Like, but he did such a good job.
If you don't ask, you don't get right.
Right. Well, it was worth it.
It was worth asking. It was worth a try.
Was it great like? It was great.
Like honestly, like the talks were all great, right?
But the best part was like, it was such a small conference.
You had time to talk to everyone in between talks and at lunch.
And so you meet a lot of really cool people and that like, I
can't remember who I was just talking to, but it's like that,
like the hallway talk is how you solve problems.
Like you could just be like, hey, I'm like, I don't know, my
absinthe graph queries are like joining my tables in like a
horrible way. And I don't want it to do that.
Like you can talk about all these problems that you might
have that you don't know how to solve.
And nine times out of 10, someone you're talking to or
overhearing your conversation has been there and.
Well, exactly. And I, you know, like the
hallway track is if you haven't been to conferences or it's been
a while, like the hallway track is really where it's at.
I mean, talks are great, but you know, and people put a lot of
effort into talks, but you know, you can watch the video later,
but it is important to see the talks because, you know, you can
then, you know, chat about that stuff with folks in the hallway.
And so you're never going to, you know, it always feels
terrible when you, you've got 3 tracks and I'm like, if I see
one, I'm missing 2. And then it's like, I always
find that super overwhelming. Yeah, the single track's the way
to go. I really like the the smallness
of the single track. You don't have decisions to
make. And well, the decision is like,
am I in the thing or am I having chats outside?
Exactly. And so yeah, Goat Maya was the
pinnacle of small regional I. Heard that it was a lot of fun.
It was really well. Done.
It was so good. Yeah, that's awesome.
And Lars is cooking up another one.
Nice. Awesome already, and so you
should probably look at Goat Maya too, in the little town of
Varberg. And Western, that would be fun.
That would be fun. I want to, I got to start doing
making appearances because I think it'd also be fun to like
kind of change it up and do some like live podcast episodes with
people. Just snatch them out of the
hallway, throw a lapel mic on them and go I think.
It would be, yeah, yeah. I mean, look, capturing the
conversations that happen at those kind of conferences is
certainly that would be a lot of content gold.
Yeah. Yeah.
And look, you know, I, I was introduced to the small regional
conference certainly in Elixir, big Elixir, which was in New
Orleans in I don't know what year that was, 2022 I think it
was. And that was amazing.
It was, it was sort of in an old New Orleans theatre, the Petite
Theatre. You know, it wasn't really
catered. Like you went out for lunch and
you'd grab some folks and found some po boys or, you know,
whatever you find on the streets of New Orleans.
It was so fun like and it's a shame that hasn't happened
since. But yeah, that's how Max was.
It was nice. We would just grab a group of
guys and just go to a local restaurant at lunch and that was
it. And then we'd grab some drinks
afterwards at the end of the day and then, you know, rinse it.
I. Was sad that I couldn't make
that one. Austin is a fun town, but yeah,
New Orleans. Is a very fun town.
I've never been in New Orleans and I'm sure that's a fun town
it. Seems like it would be, you
know, yeah, it's definitely, definitely cool.
It's like, you know, yeah, I'm surprised that you haven't been
there. But it's like I had this sort of
very interesting idea of what in my mind of what New Orleans
would be like. And it it was quite different
current to what I imagined, but it was also similar in some.
I just imagine it's smelling like.
It's like super European. I don't know.
No, like I think, you know, Bourbon Street's Bourbon Street.
Yeah, there's a crazy on all the time.
And, you know, certainly they they like a a very liberal free
pour of odd spirits. Yeah.
Well, I'm from Wisconsin. We're the same way, you know.
The secrets in the name of Bourbon Street and then, you
know, Mardi Gras just sounded kind of crazy, but but you find
your own kind of fun and certainly like it's a super
European feeling town and it just feels old and different to
anywhere else in America. Yeah, it looks like it'd be fun.
One of these days, I'll get there.
I have not been to Nashville either and I need to.
Go. I haven't been to Nashville.
Closest I've been is Chattanooga I think.
OK, nice. That's Bruce.
Bruce and Maggie's conference, right?
Yeah, I heard rumors. I don't know if they're
substantiated that they're not doing Geek City this year, which
would be a shame, but that is another another amazing.
I've heard good things I wanted. To.
Like make it out to that one as well.
Yeah, I've, I've been to the last couple of amazing and
Maggie and Bruce are the consummate hosts.
And I've heard, you know, yeah, Chattanooga's a fun Old Town.
And yeah, well, if they're not doing it this year, then
certainly give them your support and make sure they come back
bigger and better next year. Yeah, for.
Sure. Because yeah, like, it's tough
running conferences, you know, there's not a lot of money in it
and it's hard work and, you know, you know, it's a roller
coaster. So really all I can do is say,
you know, throw your small regional conference, organize
your support because those are the things that make community,
I think. I agree, I've always.
Had people together trying. To do a Salt Lake City one but I
don't know it seems. Like, oh, you heard it here
first, folks. Salt Lake City 2027.
I I've been probably doing the same about Sydney 1.
We'll go on a camping trip in the mountains and then talk
Elixir. How about?
That hey, I have this. So we used to do elixir camps.
We've never done an Elixir conference in Australia, but we
used to do Elixir camps and that has been kind of between a meet
up and a conference. It's sort of like a weekend trip
away and we it was based off rails camps which we did from
like 2000 and five, 2006. Did you?
I feel like you shared this with me a few months.
I probably did. Yeah.
OK. Cool.
I may have showed you the the sort of thing like sort of.
Blueprint that was behind it. Well, OK.
And I may as well talk about it here.
It's like, yeah, of course. Elixir.
Elixir dot camp, the domain and that was where we ran five
really amazing elixir camps pre COVID.
So it sort of all fell apart in 2020.
And so we haven't done one since, but we would get like 50
plus people out to, you know, somewhere in the Bush camp if
you want, or sort of, you know, scout camp or sport and rec
camp, summer camp. I think the Americans, that kind
of vibe and then you had sort of bunk beds and dorm beds and like
just, you know, it wasn't enough people to fill it up.
So you'd sort of pick where you want to sleep or bring a tent if
you wanted to just be. Yeah, that would be fun minus
like, I don't want to bunk with anyone but camping and just
like, right. Having like so.
Mountain bike activities or rock climbing, and then some elixir
too. So you should totally organize
one of those because it's certainly easier than organizing
a whole conference. And you have a much smaller sort
of crowd of sort of 30 to 50 folks, you know, making friends
and talking about tech and just whatever and, you know, mixing
some hacking and working on some stuff.
I always thought it would get to do the angle of like, I know
there's like a lot of masterminds and groups out there
to try to help, but like being the technical founder and like
running a successful like SAS company, Like I struggle with
the actual sales of my SAS company, right?
I can build the product and then it's, it's hard to bring on the
users. And I think it'd be awesome to
have a group of the same kind of people, some more successful,
some last, but like have conversations around marketing
and user acquisition and like just like learn from a campfire
conversation, you know? I think that stuff exists, but
the format is, you know, very doable.
You know, there's a bit of organizing to do, but it's not a
whole conference, right. And it's, it's sort of like an
unconference, if you will. You can have, you know, people
sort of sign up for talks, but it can be very informal and ad
hoc and you don't have to be in the talks or whatever.
Yeah. And so look, yeah, I wanted to,
I've sort of published A proto blueprint for that, but I I will
publish that. But do you think there is like
micro SAS conferences? And there are.
Maybe hacking events and stuff? And like Rob Walling has a lot
of stuff out there, a lot of content.
He wrote the SAS playbook. I actually had him on as a guest
a couple weeks ago. I think now I it's all a blur.
But he's awesome and he's doing really cool stuff.
But I think it'd be like even cooler to like, you know, niche
down even more and like build that same kind of community for
Elixir developers that are running their own SAS and then.
Oh, right. Yeah.
Look, and I think you know in in any kind of distribution game
sales and marketing is definitely one of those and.
And I'd be curious to see, you know, like.
Developers are not great at. Well, we talk about how great,
you know, Clod Code is with helping us write code and, you
know, all of that. I'd love to see how like,
salespeople and marketers are using AI to make their lives
easier. You know, learn new.
Well, I, I, when you can sort of wave a magic wand and you've got
anything you can think of built for you to some degree, you
know, maybe it's not ready to put in front of a load of
people, but certainly, you know, you can.
Anything you can think of, you can basically build now.
And the limit is your imagination.
And so often when you can build something that quickly, the
bottleneck becomes, well, how do I get it out to people and
distribute it? And you know, that is largely
where a lot of the problems are going to be is in, well, if you
can build anything, how do you sell it to people?
And that that is what software developers are traditionally
extremely bad at. And, you know, I don't think
we're going to really want to know how to stand out in an
extremely crowded market because communicating that stuff is a
real skill, for sure. So yeah, connecting disparate
communities for sure would be very cool.
Yeah. But that would be fun.
I'm going to hold myself to putting like a blueprint out for
running Elixir camps because we learned a ton doing that and the
Rails camp. That would be awesome.
There was one in the US and like, people could just run
their own. And I think it's the perfect
sort of small regional conference thing.
And, you know, you can make some.
We'll have to. Make it like we'll have to time
it in with your with your pit stop before Chicago, right right
here in Salt Lake. So.
Oh yeah. We should, we should get cooking
on that. I'm about I'm about to have to
book my next round the world ticket because that's how I get
home from Malaga. That's because I've got to book
a whole nother round the world ticket.
So I have. You pick the longest flights to
go and you just go. Yeah, hey, how are we doing on
on time, by the way? I think we're good, like we can
wrap things up. This has been a lot of fun
though. Yeah, man, I kind of figured,
oh, what are we going to talk about?
And then? I was like, dude, you did.
You don't have to worry. It's going to go.
Just just, you know, pull the string and see what happens.
Exactly. That's the way to go and we'll
have to bring you back. On it feels like, you know,
we've got like another few hours to.
I know we'll have to bring you back on and dive into clarity
and maybe it'll be in a better, better spot in a.
Few months. Well, what I realized about
clarity, like so sort of my idea about bringing the sort of
introspection visualization of ash, so you can introspect
anything in ash. And we already had some mixed
tasks baked in very early on that you could create mermaid
diagrams for your, you know, the relationship diagrams or class
diagrams or you know, there's some C4 stuff there.
Now, it's not great because Mermaid C4I chatted to the guy
that made C4 at the Yale conference last year and he was
like, Nah, they just stole plant your melon and made it garbage.
But yeah, like there's this whole structurizer tool that
exists to do C4 properly, which is sort of zooming in.
But yeah, like there's introspection and you can create
diagrams from this stuff, but you can also just create
documentation like describing your, yeah.
I thought it was very cool. You kind of gave me a
walkthrough on Killswitch, actually.
I think that's what we ended. Up.
Yeah, that's right. That's yeah, that's a while ago
now. It feels like a while ago it
was. I feel like it was at least a
couple months ago. I don't know, maybe.
And so, yeah, I, I sort of put Jonathan onto like, hey, can you
build this out? And he did.
And we've sort of released it very, very early, rough version.
And I've had this branch going for like, yeah, at least a month
or two where I fixed a lot of the glitches and, you know,
added a few more features. But I haven't sort of twisted
the lid off the jar because I've been distracted by it.
Just a few too many other things.
But what I've realized this week, sort of getting back into
it, is that what Jonathan has actually done?
And it seemed overkill at the time, but what he's done is
hoove it in like everything in your Elixir app, like every
Elixir module and created an in memory graph data store.
And so it's all done in digraph, which is the the Erlang sort of
graph library which stores things away and ants and cases
it. But what it is is sort of like
an agentic knowledge graph of your entire Elixir application.
And you know when you have sort of graph relationships, you can
attach knowledge to the nodes and you can relate everything to
each other like not only within your ash domain but within your
entire application. So you could do like dependency
analysis because you've hoovered in all your dependencies.
You can do like xref graph things well and you can sort of
ask any question about. Your and then you got the
context of everything in your project which is.
And so I, Jonathan sort of buried that a little bit and and
maybe I did, I just didn't click.
The big idea was actually, oh, because we're looking at multi
model data stores where where they graph their vector time
series and we're looking at arcade DB, which is an
interesting open source Java thing that mixes all of these
models together because I think 1 model of data store isn't
going to cut it. And so you sort of need all of
those ways of navigating knowledge and context and you
want to be super queriable and fast.
And yeah, when I realized that Jonathan's just basically built
like an in memory knowledge store, I'm like, oh, what can we
do with this? It takes a while to ingest it
all, but not that long. It was very slow and then you
made it a lot faster. But that's awesome.
Very cool. You know what I showed you was
kind of like the very minimum viable demoable.
I saw the big picture though, like I saw where it could go and
it was cool, you know? And so you, you've got a sense
of like, oh, what does my domain actually look like and how does
it hang together? And if you put in all of the
annotations around documentation in your ash thing, not only can
they go out to your APIs. And in fact, I think I even
found some like messy resources I wanted to clean up after we
did that, remember? So it was good.
I was like why do I have this here?
And so really, it's hard to like, you know, like Ash was
hard to explain. Clarity's a little bit
interesting because it's sort of well, depending on the audience,
we had this lens idea of like, well, if you're thinking in
architecture mode, you want to see how my Ash resources and
domains sort of relate to each other.
What does my business logic look like?
Because that's really what you're bringing and what what
you're spending the effort to build is the the core platform.
And you know that is going to look really quite insightful.
If you saw my keynote in Berlin, I talk about why, like in Ash,
you're basically modelling your core system and then you derive
things like the database structure and the migrations to
get there because it doesn't really matter where you store
your data. Actually, you know, there's lots
of possible options. And I think we in 2026, we're
starting to see the real need and necessity to have different
ways of storing data because relational just doesn't cut it
for everything. And you know, I think we've been
seeing that for quite a while, but you know, like the
relational DB is a good run and Postgres is amazing.
I'm not saying don't use Postgres.
We. Just need a little more pain to
make it apparent, right? And then you're forced to make
the changes and we're. Seeing look and and ash deals
with a lot of that stuff for you, but there are different
ways to store data for different reasons.
And I think multi model in terms of storing data is is gonna be
certainly the way forward. But also, you know, I talked
about in my Berlin keynote code beam about like the
disappearance of the UI. Like I watch Lars do some stuff.
He he yeah, ping me on Discord going, Hey, this Ash AI stuff is
amazing. And he was basically doing
Goatmeyer organization through Claude by talking to an MCP that
was exposed to his goat Maya sort of platform.
And he didn't have AUI, it was just Ward and he was just
interacting. And so I'm doing the same kinds
of things. I've been seeing the big push of
worry more about creating good APIs now versus a full app like
give people access. And what is an API?
Like we had REST and we had Graph QL, but you know, MCP was
the stuff I've been talking about for quite a while now
since it came out like a year and a half or something.
It's November 2024, and I saw the promise of that because it's
like, oh, API is native to how LLMS work.
Right now we're seeing the MCPS don't work quite as well because
they have a lot of metadata that takes up context and figuring
out tool selection and making the LLM reliably pick a tool or
a skill or whatever. It's actually a really hard
problem, especially when you've got a lot of choice.
It doesn't know how to make the decisions to pick those.
And so I think that's that's still a problem.
And so CLI is, is actually a better deal because you get
progressive disclosure and, and Claude and and Co are really
trained on running bash commands.
And so you can do like man the CLI and get the man page and get
the high level idea. And so they know how to do this
stuff. And so CLI is in the last few
weeks has been like absolutely better than MCPS because Zolis
are just a standardized Unix format.
And the way that you get help and you understand, Oh yeah,
this is my top level menu with the one line description of each
command. And then I can go, you know,
command help, sub command and get more detailed information
about how that works. And so progressive disclosure is
absolutely where it's at for LLMS and humans, right?
That's how humans learn. Yeah.
And everyone's realizing that shoving everything into your
cloud MD is just a way to send that yeah to the to the bot on
the other. Side well, we also see the
limitation to that too, Like you can only throw so much in a
markdown file, you know? Right and well skills were and
usage rules if you haven't used it.
Usage rules is amazing. So it's probably got an upgrade.
Like it's crazy, like the simplicity behind something like
that, but like the amount of power you get from it.
Yeah. So if you haven't checked out
usage rules recently, when Claude announced skills, I was
like we should be able to take usage rules and turn it into
skills and did a very draft PR. Where I got stuck was we can't
auto generate the front matter description, which is how the L
lens see, because all it loads is the front matter for the
skill and then it figures out do I need that skill?
Then it loads the whole file. And so it's pretty critical that
your description for the tool or the yeah, the skill is is
perfect because otherwise the LM can't choose to use it.
It's like use this when and so that wasn't baked in.
So I think it was Zach that that rejected.
I'll have to check it out I feel.
Like you can now create skills and set your own descriptions
for. Nice.
Groups of skills like Ash skills or live view or Phoenix or what
have you and it's it's way, way better and you can sort of turn
it from shoving everything into clawed into more like
progressive disclosure through through skills.
I have been using skills heavily now in my daily workflow and
it's helpful. It's nice.
Yeah, I, I've, I've been using cmux for like, I love Ghosty,
but I've been using cmux and that's been really good around
just giving you like a Ghosty terminal with vertical tabs,
which so you can read what the tabs are.
So you have a lot of tabs. I've got a full side drawer of
those. And then every time Claude
stops, it puts a little, does a little Ding and puts a blue ring
around and yeah, just alerts you to what is needing because I'm
running like 20 plus sessions constantly and.
I feel like I had to step up my game.
I'm like a a single. So try Cmux.
I really like it. It's based on Ghosty and so it
just feels very familiar and it's got brown.
Oh yeah, it's cool looking. It's it's super cool someone Rob
at olembic also showed us super set SH.
I think it was was another one. I can't vouch for that one, but
Rob said it was pretty good. All right, cool.
And so similar ideas is like, you know, sort of agentic
workspace terminals and I was, you know, abusing VS Code as
basically like a team UX because I never got.
It yeah, I was going to say like I know a lot of people using
like team UX sessions and things and it seems to work pretty
well, but. Well, I just use VS Code with
the way that you can get terminal windows, and I had my
code and my terminals and my claws and my codex is all in one
space. Yeah.
And now I use CMUX for the stuff that it doesn't necessarily have
code attached attached to it. OK, cool.
But I use a combination of those I'm.
Gonna have to do this. I feel like I need a little
upgrade to my AI workflow so it'll be good to well.
There you go, CMOS is pretty good.
You know it's still new and so I found an issue the other day.
If I dragged a session with a clawed running inside of it over
to another workspace, it started like the the IT wraps clawed and
it wraps open something else so that it can inject the hooks
that it needs. And it's just a shell script
that you can look at if you're worried about the security.
And so yeah, it's pretty neat. And it works on Ghosty, which if
you haven't used Ghosty as a terminal Item 2, was my favorite
for a long time. And then I discovered Ghosty and
Mitchell Hashimoto. I think that's his name.
Right, I have not used it, but I have seen it.
Oh. Yeah, Ghosty's amazing.
And I think Zach was talking about, I think it was yesterday
that they got in in the latest release Applescript scripting
for Ghost. I did see his post on that.
Yeah, that's. Cool.
That's really cool, Apple. Script you know, you may not
have ever written it, but. I have actually I I have a
stupid. Script in your math.
I have a stupid script to mute my microphone at the hardware
level and I I did that with an Applescript.
There you go. So Applescript is probably the
the power tool that you've probably been sleeping on on
your Mac for. Oh, I I have absolutely.
I have like a wish list of, I have a wish list of things.
I want to just take the time and like write out and automate and
I. Have Well now you don't have to
take the time. Just ask Ford to do it.
Yeah, they're. Oh yeah, that's smart.
Right, Yeah, I see. Like I use cloud.
Daily. But then I don't think about
using it to simplify my like working tasks, you know?
So like I said before, and I think it's probably a good note
to to leave it on is that you know, you know, you asked like
where does software engineering go?
Well, we're not going to be doing any of the grind work
anymore, right? But we get lifted up to be
having more time to think about, well, what can we do?
Where are the limits here? We don't know.
And the only limits are your taste.
Now you know. The only limits are your taste
and judgement, you know, and your imagination.
Yeah. And time, right.
And like, you know, how many tokens can you get down from?
Yeah. How many tokens utilize your
monthly spend? I did accidentally buy personal
Max on top of the Olympic team plan premium seat, which is kind
of like the team version of Max plan.
And yeah, the whole Olympic team is on that now as of 2026.
Everyone got on there and earned their stripes.
They had to push through the API key to sort of figure out, oh,
I'm using more tokens than it would cost to do the, you know,
the team plan premium seat. And so, you know, you have to
earn new stripes and yeah, like, I need to figure out how to
utilize all the tokens I have at my disposal before the price
goes up because will the price go up?
I am, you know, yeah, I feel. Like where they get you on the
free credits and the cheap tokens and then we're going to
get. Trapped and all of a sudden
it'll be like, well I guess it's worth 2 grand a month or you
know what I mean, per seat. Right.
And then? If you're using it wisely, it
probably is. I I know folks using like cursor
through the like the betting. Plan where it's like his paper's
in What's Josh's handle on X? Oh, it's just my name.
Josh Price. Josh Price, right?
Yeah, there you. Go.
I'm pretty. Sure, yeah.
I I tagged him in some of my posts so you should be able to
find him. Yeah, yeah, I I stopped using X,
No Twitter. I had a hard time, I couldn't
accept it. Like I just, it doesn't flow
right. But like all of a sudden I feel
like I guess it's been X long enough but I I don't.
Know, I guess I I don't know, I like when Twitter came out and I
like Twitter doesn't. Sounds nicer tweets.
It just makes like. I don't like calling it posts.
I'd rather call them tweets, but.
Yeah, I, I'm still old school about that.
Yeah, I get it. 2008 when it came out, it was just absolutely
amazing. And it was like having
conversations with everyone around the world globally, like
they were they were next to you was amazing.
And I think it still is like that.
I enjoy it. There was a, there was a, there
was a dip for a bit and actually there's.
I feel like they cleaned up the the for me like.
I'm getting some really good stuff on there I've been doing.
Mine has been all elixir based, less politics and.
Yeah, yeah, no, I I've been getting into like 3 JS and what
you can do with that. Oh, nice.
And combining that with live view because we're building AI
built sort of vibe up a satellite tracker and it is
pretty amazing. I may launch that soon, but
we're, you know, about to start doing a interesting space
project. That's been something I've been
waiting for since my my teenage years.
Well, that's very into like 3D graphics and I've always wanted
for 30 years, my whole career. Like how can we bring game and
sci-fi interfaces into business applications?
And I think with LLMS now, the calculus is such that we can and
three JS is amazing and it works really really well with life.
I've seen demos, I've seen demos with it.
I've never like played around with it though.
Well, I mean, that's why I asked whether we could do some screen
sharing on this but. You know what we should?
Well, I said I'd prefer not to because then you have to like,
describe everything on the screen.
But. What we Well, this is a podcast
after all, so you're correct to say no.
Yeah. So, but I think what we should
do is maybe schedule like a coding session and then like I
don't put those on podcast platforms and we can screenshot.
Yeah, sure. Yeah.
So I'm definitely down for that. That would be a lot of fun.
Because I've been cooking some stuff that is pretty cool.
We have. And I feel like I'm just getting
started. Joshua Payne, he said the new
relational database structure really got me excited.
And now three JS combined with live view in space.
Let's go. Right.
I, I vibed up this satellite tracker in a couple of hours on
a weekend and I literally had a grin from ear to ear.
And I said I had so much fun because, yeah, in my uni days,
in my 3D graphics course, I built a ray tracer in C And
because I left it to the last minute, I was like, I was on my
modem telnetted to the university server.
And then I realized, oh, it's a, it's 10:00 at night and I can't
render the ray tracer output because I need a graphical
terminal. And I'm like, what do I do?
And I had this very slow modem. And so I had to downscale this
ray tracing output to like, you know, 10 by 10 or 20 by 20, so
it would fit on a screen and render it in ASCII.
So I wrote a ASCII renderer so I could keep trucking.
After hours, I couldn't get the graphics terminals.
That's awesome. And so yeah, like I've been
waiting for this moment to come back to the.
Yeah, for real. That's awesome.
But yeah, all right, Sport is quite good at 3GS and Live View
works with it a treat. Yeah, I think let's do a vibe
coding or just a coding session schedule, then we can play
around. I think that'd be fun.
Let's do it. All right, cool.
Well, thanks so much for joining me, Josh.
This has been a lot of fun. Thanks for having me and it's
always great to chat and I feel like we can go for hours.
I know we can just keep going and we'll just have to schedule
another one and just continue on.
Let's do it. Looking forward to the next one.
Alright guys, thanks for tuning in everyone and I'll, I'll see
you guys on Friday with another episode testing.