This episode is brought to you by Beam OPS.
If your Elixir deployments are painful, or your infrastructure
is a mess, or you just need experience hands to help you
scale, these are your people. Beam OPS specializes in scalable
Elixir development, automated deployment pipelines, and
infrastructure migrations. They will help you work smarter
and ship faster. As authors of the Pragprog book
Engineering Elixir Applications, they know their stuff.
Check them out at beamops.co.uk. 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 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 library shaping. Elixir's future.
Amos joins me today to talk about mentorship, knowledge
sharing, and what it takes to build software teams that
actually thrive. And I'm sure we'll be talking a
lot more, but welcome, Amos, thanks for joining me today.
It's good to have you. Yeah.
Thank you. Glad to be here.
So we first met at down at XMEX. That was a fun small little
conference and it was enjoyable and I really enjoyed your you
kind of, is it a keynote when it's a closing talk?
Yeah, yeah, yeah. I think, I think that's what he
called it. I feel weird saying that.
Even when he asked me, I was like sure, I'll do a keynote.
And then spent months going why did I say OK?
Dude it was so good though, like it was one of the most engaging
talks I've listened to in a while so I really enjoyed it.
That's very flattering. Yeah, I usually like to kick
this off with like you want to give a brief introduction of who
you are and kind of your background, where you come from.
Sure, sure. So my name is Amos King.
I've kind of been all over the place over the years.
I've done COBOL, Java, JavaScript, Ruby, Elixir,
Erlang. I have always like helped run
meetups and things like that since I got out of college.
I've been programming after college for like 20 years.
Was programming, though. I like got my first paid gig
when I was 12, so I've been programming quite a long time.
So yeah, I, I, I, I just love being out there and learning new
things. I picked this career field
because I would constantly be able to learn new things.
You know, I hear people say I've I've forgotten more things than
than some people have learned, but I, I don't believe that at
all. There's way too many things to
learn in this career field that every single person you run
into, you have something to learn from them.
Yeah, I miss being on top of the Dunning Kruger curve, you know,
and when you think you know it all.
Yeah, yeah, yeah. I, I, I never, never did.
I've worked with some really great people and, and my whole
experience and my whole career has been pretty humbling.
Every time I think I know something, somebody shows me why
I why there's one more thing that I need, one more thing I
get to learn and understand and. It's nice.
Beautiful. Yeah.
It's nice when you can surround yourself with smarter people.
And it also keeps you very humble because you don't ever
think you know everything. I was going to say, it's really
easy for me to be around smarter people.
Same, same. I mean, all I do too is every
week I talk to smarter people than me in the Elixir community
and I'm so I'm grateful for it 'cause I learn, I get to learn
as we chat, you know, it works out really nice.
What, what brought you to Elixir?
How do you get started with that?
What? What?
Put it on your radar? So many years ago I'm trying to
think of when 2007 ish I worked on secure chat software for the
Navy and it was all written in Java.
The server was Java. The front end like the client
was, was based on Eclipse RPC. So the the same thing with the
Eclipse editor. Is that even a thing anymore?
I have no idea. I don't know but I tried to get
my masters in software engineering and I dropped out
because all it was was was Java. Yeah, I have.
I have looked at at going and getting a further degree and
kind of the same thing. It was like everything I was
running into is Java and I was like, I want a distributed
systems degree or a, or a functional programming degree
and I'm not getting those in Java.
So yeah. So I anyway, I wrote this chat
software for the Navy and then I was in the Air Force for a long
time too. And so I had a, a high level
security clearance and I was one of the only people who could go
get on boats and submarines at the time.
And so I actually had moved off the project and then they
started to switch the server to Erling because, you know, you
have a distributed chat system. It just kind of made sense.
And I was already a little interested in Erling.
I'd heard about it, but I don't remember where.
And I was still at the same company.
So they would have me come down and look at stuff with them, ask
me questions about problems that I had solved in in the Java
land. And then I also was still like
being sent out on these boats, even though I was working on new
projects and I was mostly doing Ruby at that point.
And so that got me into looking into Erlang and doing some
Erlang programming. And then, you know, because I'd
been in the Ruby community, I knew who Jose was.
And when I saw that he was working on Elixir, the, the
thing that I really didn't like about Erlang was the syntax,
just because it was so different from all the other stuff.
And so it was like, oh, maybe, maybe I'll like the syntax.
And then I kind of never looked back.
And I've been doing Elixir full time for quite a while.
I wish I knew it a time period that I could tell you like.
I'm afraid I might not be exactly right.
You're just an OG. We'll just give you the OG
title. Yeah, that's awesome.
Yeah. I'm.
I'm late to the party. I've been like the maybe the
last five years I've been in the elixir world and what I don't.
Interview you what brought you here?
I, I had a buddy in my ear telling me about elixir for like
a year and I was like, dude, I don't have time to learn another
language. You know, I'm, I'm too busy.
Like, but then I had a, a project idea and it was a mark,
a fitness marketplace and I started looking into tech stacks
and like, what's the best way to make, you know, a robust
marketplace? Which making a marketplace was
not a good idea from the start, but it, it got me.
I was like, OK, I'm paper. I didn't really understand what
I was getting into. Honestly.
I was like on paper, Elixir is what I need.
Like I, you know, fault tolerance, the distributed nodes
and you know everything, everything about it, the
supervision trees, Genservers, all these processes.
I knew I liked it, but I didn't know what I was getting into.
And I just started writing my back end in Elixir.
Like I was writing a JavaScript like no JSAPI.
And so my learning curve was rough and slow but.
It. Slowly got better and clicked
and then like I fell in love with the syntax first and then
fell in love with the power of like the beam and from there I
just started making up my own jobs until I could get a real
elixir job. That's awesome.
Yeah. That's the way to go.
That's kind of what I did too. Yeah, like I started a
consultancy and I would just push Elixir on all my clients if
they didn't have like a tech stack choice.
I was like, this is what we're going to do.
And yeah, that's what I did. We have the same story on that
part. Oh, that's hilarious.
So you you ran a consultancy before you were at Adobe?
I did. I did.
I ran a company called Binary Noggin and we did work for
people all over the world. Worked with Toyota, Schneider
Electric and all. A lot of it was Elixir and or
Erlang stuff, a little bit of Ruby here and there, but it was
like if I walked in and and you didn't have a tech stack, I'll
be damned if I was going to stay there and it not be like.
Yeah, that's funny. Yeah.
So. We ended up with that kind of
everywhere and it was it was good.
I ran that full time for 10 years.
Awesome. What made what made you want to
shift into working for like going from a consultancy to
Adobe? I think so.
A pretty big shift. The market.
So I, I, I went from having more work than I could even handle
without really doing much advertising or, or anything.
Then I started doing some advertising and, and was getting
even more was hiring people. And then the market shifted and
I really, I hated doing sales. I was still doing sales and
programming and, and it was a lot of work kept trying and, and
it went from hey, we've got this year long 2 year long 6
developer project to hey, what can you do for $2500, you know,
like so all the projects shrunk and changed, you know, a few
years back whenever they had all the tech layoffs.
And I wrote it out for another year and was just exhausted.
And I got a phone call from somebody at HCA hospitals in the
water park project and asked me if I would apply there.
They knew that the market was rough and I said sure, let me
look. And then so I went there.
You know, it's kind of kind of nice to not have to do sales for
a while. Yeah, I feel like I my consult,
I started my consultancy in the worst market ever, but it kind
of started off by a fluke because I got I had a couple
great clients right off the bat and then when they dried up it,
they started turning into just like, I just need a landing
page, I need a website and like all this horrible work.
And so I like built my own like website hosting platform in
Elixir so I could like spin websites up and have them deploy
faster and like that was cool, but I had to do things like that
to like make me like what I was doing because just building
landing pages is awful. Right, right.
Yeah, yeah. And that was mine.
All of our projects were big and then turned into.
Yeah. Little little piddly piddly
work. I would always tell people no I
really want to build things more like for the non tech people.
More like Gmail and and your marketing web page, right?
Yeah, yeah, yeah, I'm grateful. Now I have a great job at a
company called Colex and I'm a back end engineer and it's all
Elixir and we have, we just hit like 4 million users.
So I like I get to stretch my ability.
All these hard problems you don't get to solve with like
small startups and bootstraps. Like I'm, I have my own products
out there and stuff, but I've never had scaling problems or
performant issues that I had to solve 'cause you can have a lot
of mistakes on database queries when you have 1000 users.
That's true. That's true like.
When you when you get away with with tiny things.
When you got to start tuning it up to work for, you know,
thousands of requests, a second different ball game, right?
Yeah. Yep, Yep.
So it's cool, I get to learn from a lot of cool engineers now
that I work with, and it's like unlocking new skills for me.
Very cool. We were talking about that right
before we went live, that it's nice to work with smarter
people. Actually, it might have been the
beginning of our going live. So I always find, like when we
see working with smarter people, like I do find that everybody I
run into in some way or another is smarter at something than I
am. Yeah, I always have something to
learn from them. Even like recently I was working
with somebody and I wish I could remember the question, but the
questions that they were asking were far more introspective, may
not be right, but feels like the right word.
They, they have these questions that were just like, wow, I
would have never thought to ask that.
And that is an, an amazing question.
And I actually, I, I got an older story that I do remember.
The question is, we were working on a system that needed to send
emails out on a pretty regular basis.
And one of the other engineers said, well, how what's the SLO
on when that e-mail needs to go out?
Does it need to go out and eight seconds after the thing happened
or is 10 minutes OK? And I was like, well, that's
not. I was just concentrating on
like, how what do I need to do to send this out?
And he's like talking about real engineering, Like what is my
deadline for sending this e-mail?
Because then I can I can know how to architect it.
And as soon as he said it and they answered, it completely
changed the architecture that we were looking at.
Yeah. Just a little thing like that,
Like, yeah, does it have to be immediate or does it?
Or can you run a process that takes 20 minutes?
Right, right. Yeah, It was wild.
Yeah, I find it interesting. I don't know if like the tech
space or like developers are a special breed or if it's like
this in any, any like job, I guess, but the backgrounds of
developers are so drastically different.
Like you can all be, you know, quote UN quote senior engineers
and just like your knowledge base is so drastically different
than the people you work with. Right.
I, I mean, it even depends on like your past programming
projects, But even if you haven't been a programmer like I
have, I've told somebody before, my favorite teams are you have
somebody with a computer science degree, somebody with like a
physics degree, some other science degree, somebody with a
non science degree. And then somebody who like was
just a hacker who never, maybe never even finished high school.
And it was just like, I learned all this crap through banging my
head against the wall because I wanted to solve some problem
that I had. And when you get those minds
together and people from different backgrounds, like the
way that you solve problems, it just completely changes.
When I was in college, I could not understand programming to
save my life. I just couldn't do it.
And so I ended up, you know, I was good at math.
I could do calculus, I could do differential equations, I could
do all that stuff, right. So I ended up like becoming a
structural engineer. And then I didn't even use that
degree. I started doing like ladder
logic and like manufacturing automation, like timing
controllers and servos and things and that ladder logic
just like that drag and drop, just timers, switches.
And that it was enough to peak my interest.
I was like, I want to learn how to program.
And then I started learning and then I started learning Java
grossly enough and wrote AI wrote a web scraper to like, I
wanted customer like I wanted to build a customer list for like
emailing and things. And I, I did a Google web
scraper had to go through a proxy and every, every like 10
pages back then. I they're way better now, but I
remember every 10 pages I had to switch my IP address where they
would block me and I would just had I would just manually
paginate through Google listings and take customer data.
All in Java. All in Java.
Oh man, it's I, I I feel for all everybody who's writing C# and
Java. Yeah, it's I, I mean, I couldn't
do it anymore. I I wouldn't have the patience.
Yeah, yeah, there's just so much boilerplate in all of that.
I feel like, and I don't know anybody who tells me that they
learned object oriented programming in Java.
I'm like, I, I just want to hug you.
I never, I never fully grasped it.
I I feel like I was a very like copy and paste stack Overflow
guy back then. I could always make things work,
but I did not grasp it and I didn't actually get it until
Swift was released. And like then I started iOS
development and it it clicked and then from there I finally
understood object oriented programming.
But before that I don't know, I just couldn't get it.
What about that change from that to functional programming and?
Dude, I wish I learned functional programming from the
very start 'cause I think that's just how an engineering brain
works. Like step by step, you don't
have state being held anywhere, you don't have like singletons
or anything that can add weird, complex, you know, state issues
to your code. So I think like immutability,
like if I learned Elixir from the start, I think it would have
clicked so much quicker, yeah, That you just transform data.
You can't access it from 100 different places, you know.
Yeah, getting rid of that, that entire class of errors is
awesome. I still found though, even after
that, every once in a while, like my Erlanger Elixir code
would start to look a little more like object oriented code.
And it took me a long time to unlearn a lot of the patterns
and stuff that were stuck in my head.
I was just like trying to do the same stuff in a different
language. Yeah, well, and I feel like you,
you just kind of have to use like Erling or the Beam
architecture, Like you just write code and you don't have
the same. You don't really follow
patterns. They're just there like, does
that make sense? Yeah, there's just a way to
build, right? Right.
Yeah, I think, I think there's a little bit of that.
The only time that I start to see things to me that feel like
old object oriented pattern brain stuff is like supervision
and when you're trying to figure out how processes talk to each
other, but then you have state and everything.
And so it does feel like like. Abusing processes you can.
Definitely do that, yeah. Well, I, I always tell people to
like, I know it's like the shiny object.
Everyone gets excited about Jen's servers when they get into
Elixir. Like get just like build with
Elixir. Don't worry about the fancy
objects yet. Because if you start, if you're
coming from object oriented and you obsess over Gen. servers,
you're you're going to use them wrong.
You're going to use them like a stateful machine, right?
And just and just abuse them? They're like salt and pepper,
right? Like just a little bit.
That's all you need. Yeah, exactly.
Yeah. And, and so many of the like,
you know, 90% of what, what we're doing, if we're doing like
a website, all of that stuff, all the Genservers that you need
are already taken care of by Phoenix or life or, or whatever.
So you, yeah, you get really excited about it.
And then you rarely get to use them unless you unless you use
them wrong. Yeah, yeah, Yeah.
Well, like I, I rarely like I, I use like open in a lot of my
projects. And then you're like, I'm rarely
and then live view obviously, but you're rarely like spinning
them up from scratch unless you have a really specific use case.
Well, and, and even when you do you, you even if you're working
on a non Elixir or non Phoenix project, like I work on a back
end system at Adobe right now. And so it's all like there's no
framework where we're all doing wet like RPC requests to other
erlink notes and Erlink notes doing those to us.
And but there's like you just, you just need a few Gen. servers
and a few supervisors. You can get so much done that
you like never really get to try to build that again.
After you get it put together, you're like, OK, done now.
Now I'm just working on plain old business logic and figuring
out how, what, what is like when you have choices, right?
Like this is the thing that I find really important is when I
have a choice between like an enum each or a four, like what,
why would I actually have both of those?
What are the choices that I have and what are the drawbacks?
And like there are a lot of bugs that come from just the little
differences between the two of those I see, especially in
tests, I see a lot like a four comprehension.
That pattern matches and has an assertion inside of it, and then
the code changes and that pattern no longer matches.
But you never get an error because.
You just never. Yeah, 'cause you're just
filtering, you know, like, oh, so 4 is a filter and and an
each, so I guess a collect? And those are the worst bugs to
try to track down too, when they exist in the code.
Those mystery mystery bugs. But I, I think that's where we
learn the language though, and we learn what are the powers of
that language is when we start digging into what are these
little differences, why are they there?
And we start questioning why. And I think that's the best
thing about working with other people.
I just heard a Slack notification.
I tried to turn those off. I know, that's why I was joking.
It's just like that wasn't on my end.
Was it the? Computer says that I'm on do not
disturb. Dude I have found.
Are you on a Mac? Yeah.
Dude, do not disturb does not do not disturb everything.
It's really annoying if, if phone calls and stuff will still
like pop up in the top right corner like so if you're if
you're screen sharing or anything like they'll just show
up right there. Do not disturb Doesn't matter.
There's. There's probably some setting in
there that we can find that'll just shut that off completely,
but. I I mean, I do just want to turn
it off. When do you take a call through
your computer? Probably never.
Almost never. Every once in a while though, I
like I like the ability to text through my computer.
I do. I do love that.
I remember when they first started that my friends had
messaged me back and they're like dude, how are you?
How are you texting so much 'cause I would like give them a
you're. On my second monitor, dude,
it's, it's like the main reason that I still haven't.
Like I'm always tempted to move over to like a Linux box and I
just, I'm stuck in the Mac ecosystem.
It's just so convenient. Yeah, that, that integration of
everything, yeah, is is really nice, which also is awful
because right, like the cost of change is very expensive.
Exactly. Well, it's just like the way
that you know, their Airpods transfer from your phone to your
computer and with other Bluetooth devices, they don't
have access to the same AP is and whatever they're using to do
it. And so it's annoying, like it's
annoying to use their off brand tech.
I think like my favorite thing with the the Airpods, I this is
total technology talk that we're having here is, is like being
able to have myself and my daughter and stuff when we're on
a plane and being able to watch a movie and her Airpods also
work at the same time. That was like magical to me,
'cause. I didn't even know that was a
thing. They call it sharing and you can
share the audio to another set of Airpods so you can like.
I didn't even know that was a thing.
Mind blown. Yeah, it's awesome.
That is cool. That's really cool.
I'm pretty excited about that. Now I got to try that.
I don't have any. I do have a flight coming up but
no one to share audio. Are you going to Vancouver?
I am not no I. I'll be, I'm going I and I'm
passing through Salt Lake. I was going to check and see if
we were on the same plane we could.
That would be cool that we could, we could, we could nerd
out on some elixir talks there we.
Go. I, I thought I almost went to
Vancouver and I'm I bailed and it's probably good like this
month has just been hectic. I've I'm moving and doing a
bunch of stuff. But yeah, it would have been, it
would have been a good conference.
The it's the Erlang conference, right?
Or the. Code beam, Code beam, code beam.
Like it's like a one day conference and they have
training on both sides. Yeah, I almost did.
AI almost submitted a talk for that.
Yeah. 'Cause I, I haven't, I, I just
do my YouTube channel and I was like, you know, it'd be kind of
cool to do some conference talks.
You gotta talk in your mind. No, that's the problem.
I I always have like 8 and none of them are good enough as far
as I'm concerned. And then if somebody mentions
like there's a conference or somebody messages me and is
like, hey, do you want to talk? I'm like, yeah, I'll just pick
one of these eight. And then I regret every moment
after that. That's hilarious.
Well, like the second, like I, I think the hard part is when you
start seeing the other talks come up like their topics and
you're like, Dang, that's such a good one.
Right, I want to. I want to go to that talk.
Why can't mine be that good? Yeah, yeah.
No, that's funny. Or whenever you see another talk
that's seems really similar to yours and you're like Dang it,
somebody else is doing it, please mind me first.
I did find that kind of funny with XMEX.
We had a lot of like AI talks, like workflow talks and I was
like, I, I wonder if these are going to like step on each
other's toes a little bit and they ended up not, which I
thought was really cool. Yeah, I was surprised too.
I've seen so many AI talks that I'm always like, Oh no, Oh no,
it's just going to be the same as that other one.
And there's always something a little different.
I'm, I kind of go back and forth.
I'm a little AI negative though. Every time I talk about AI too
much on on like this podcast, there's always some negative
comment about it. Like and like, I get it, I think
there's like AI fatigue, but I also see just like my output,
what I'm able to do as a developer with it as like part
of my workflow. I'm just, it's really cool.
I can't deny that. But I also, it also scares me.
Like are we just luring ourselves into a trap to be so
dependent on AI to help us work that we can't do it without?
So that's where I get worried, especially like back to us
talking about education is like junior developers are not,
they're not learning as much because of the AI and, and even
sometimes not even getting hired because there's, there's AI.
And, and I think that's going to be pretty sad for our future
when we're not training those people up.
I was reading an article from Anthropic.
It always cracks me up that Anthropic articles half the time
were like against AI, even though they sell AI products.
And it said that there was, I think it was like a 20% decrease
in retention of people using. AII believe that.
And and then today I was reading an article that said that there
the AI produces 1.7 times more bugs and.
Per 100% Interesting not. Percent 1.7 times.
So 70% more bugs and and 50% more security issues.
That one I believe 100% like. It's like, it blows my mind.
Well, but then I start thinking about it and I'm like this, OK,
so it's a token prediction engine and it's trained on all
of the code out there that's available.
To it to see there's a lot of bad code out there.
There is, but like at at best like if it's going to predict
the next thing, it's prediction is likely to stick around to
what I would say is average. It's probably the average or you
know, which I guess maybe not the average.
It might be like what appears the most, but what appears the
most is probably going to be fairly near average.
Yeah, I feel like like I'll have AI write like full features on
some of my projects, but I'm always fully doing the code
review and I go back and I'll like yell at it and make it do
corrections. Like, and I feel like if like, I
don't know, like if people are fully vibe coding things that
scares me 'cause we're going to have this weird hesitancy for
anyone to adopt new products because you don't actually know
how they're built under the hood.
You have all these cool products coming out that can, you know,
one shot code and copy any app already out there, right?
Sure, on the surface, but what does it look like?
How's it handling your data? And like you're not going to be
able to scale things or deploy things that are right created
that way, you know, like every piece and proof of concepts
maybe. Right.
Every app's performance requirements end up being
different and you have to make those decisions.
And it's it's hard for it to do that up front.
And especially like if we try to get rid of engineers or we're
not training those juniors up over time, like who's going to,
who's going to know even how to tell it what they want to
perform? That does scare me a little bit.
I've had some positive people on here with the junior, like being
a junior and learning like because I remember just, you
know, banging my head against the wall for like weeks at a
time, sometimes with problems. And then when you finally figure
it out and solve it, like I'm so thankful for all those hard
times, right, that you just went through to learn that.
And now if you're just, if you're not doing like due
diligence with learning, if you're not making sure you're
learning, like I feel like you can ask LLMS to explain things
for you. And if you're doing that, that's
probably better. But if you're just pounding out
features and building products and not really caring, I feel
like there's a problem. Like it's going to, you're
learning, you're learning curves going to be a lot slower.
Yeah, yeah, yeah. I think your retention, whenever
you don't, you have to struggle a little bit.
Your brain's like, oh, I don't need to remember that.
Yeah. Yeah, yeah, I like I've tried to
treat the AI like a pair programmer a little bit to see
if that would help because I've had a lot of good like learning
and growth through pair programming and working with
different people. And it's still not the same
cause 'cause it doesn't, I have to pull from it where if you
have a, a partner, sometimes they're giving.
They're not It's not, it's not as two way with AI.
The problem too, is if you're like, if you suggest a new way
to like, clawed code, right, they'll be like, oh, you're
absolutely right. Like, no matter what, it'll just
tell you, oh, that's so smart. Instead of, you know, maybe
giving constructive feedback on your idea.
Even if you tell it to be mean. Yeah, I'll tell you that you're
right. Oh yeah, I hate it.
I hate it. Oh, you're absolutely right.
I'm gonna put this on hold for a second.
I gotta just run a few sponsorships here.
All right, 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. All right.
I like, all right, just to kind of circle back to your, your
knowledge sharing talk because I thought, I thought it was good.
And I think our topic here like being a junior developer AI,
like what does this all mean? And I think I, it resonated with
me more too, because I started my YouTube channel with Elixir
tutorials because there weren't a lot of video tutorials out at
least when I started learning. And I wanted to get people up to
speed faster to like build useful things without the
struggles that I went through learning functional programming.
So like I, I feel like you and I, we align like with teaching.
And you did a podcast as well. And I do a podcast and there's
something nice about community and giving back.
And it was kind of like my way of giving back.
But like, yeah, you kind of went into just like, you know,
sharing knowledge is way more important than like, creating a
product or writing code. And.
Right. Yeah.
Like you want to elaborate on that a little?
Yeah, that's a big question. So, So what I've noticed even
out of people who who maybe build their own products and
things like that is that you not necessarily building one thing
all the time. And even if you were building
within one product, you're bouncing around a lot and doing
different things. So that knowledge sharing helps,
helps spread that that around so that whenever you're working on
the next thing, you have something new or you can share
with somebody else because we're not always building the same
thing over and over. So we've got to find a way.
And there's this career field is way too big.
I mean, you got to know how CSS works.
Good luck there. Dude AI has made me a front end
engineer otherwise like it's just like my brain just turns to
mush if I'm doing front end dev. No I'm I'm a back end guy.
That's that's where I live. Oh man, so many years spent
struggling through CSS and trying to figure out how to
align a couple of things. 5 pixels to the left was.
How do I center a division? Google and you can't even find
the right Stack Overflow article on it.
So the only thing that, that I found to actually it's, it's,
and maybe it's a little selfish is to learn more so that the
next time I don't have to struggle near as hard.
And to do that, like I, I help run user groups forever.
I, I talked, I did podcasts, I've done two different ones and
it was always selfish and not selfish in this like, oh, I want
to use this for advertising or whatever.
It wasn't all, it wasn't about making money.
It was about I got to talk to smart people, right?
I got to run my ideas. All of the podcasts, we never
really had plans. We just walked in and said, what
is bugging the crap out of you today?
Even at meet up groups, what is what is happening today?
Like the, you know, when we did the podcast, it was the hallway
track of the elixir community is what we called it because it
really was like those organic conversations that we have.
And we talked about the struggles that we're having
today and somebody there's always at least one person
around who's like, I've been through that.
Let's talk about that and, and share that.
And like, so I, I always wanted to go out there and just have
conversations and then put them out there to the world so that
other people might get something from that conversation.
I always felt like if you get something from the conversation,
great. If you don't, great.
If you're entertained, great. I, I never really cared.
I was putting it out there for me.
I do the same thing and I'll say like, obviously my YouTube
channel and this podcast, I'm not making money off of it, but
it is just selfish reasons like 1 when I teach a tutorial, you
have to understand the concept you're teaching way more than
just implementing it too. So you're, you're doing a little
deep dive, even if it's basic stuff, you're learning it at a
deeper level. And so selfish reason there,
number one. And then the podcast, yeah, I
just get to chat like, with people and talk about my
problems, their problems, or just like what we've learned
along the way. And it's really, and I just have
a camera on and other people can listen to it now too.
Do do you, do you ever go back and like end up running into one
of your own tutorials that you've put out whenever you're
trying to search on how to do something?
Dude I've watched my own tutorials to remind myself how
to do something before and like it's just like why?
I can't believe I'm doing this, but like, it'll be like
something like, just like kicking off of a, a new project
or, you know, just some command. I, I, I knew I knew it, but I
couldn't find it in the documents or anything.
So I went and found my own tutorial And it's like something
like, you know, whenever you're starting a new project and you
don't do it very often, you're like, damn it, how did I do
that? And then I'll go and remind.
So you get to share knowledge with future you also.
Yeah, exactly. Maybe that's the problem where I
don't like the 20% you know that you don't retain using AI.
Yeah. Oh, yeah, yeah.
That it's really Oh, are you trying to stop me?
No, my my camera went out of focus so I was trying to get us
attention. I I I don't know if I said this
during the talk, but I commonly talk about being yesterday me
was an idiot. Tomorrow me will probably be
smarter than today me. And when yesterday me starts
catching up to today me, that's really bad.
But but sometimes that yesterday you had a good idea that's worth
looking at again. But that yeah, like I don't.
That's that's why I want to share this field.
I've said it a bunch of times, is just too big for anyone and.
Well, and it's like, you might be a really good programmer,
right? And you might be really good at
knocking out Elixir code. But then what's your dev op
skills look like? Can you deploy a server?
Can is it secure? Do you know how to set up all
your DNS records? Like there's so much that starts
going into it. Right, right.
Especially if you get a bigger project and then you're like,
oh, maybe we need Kubernetes. I don't know that anybody ever
does, but I'll go ahead and let somebody else decide that 'cause
I don't want to. Well, and then scaling, like
once you have a distributed system, scaling databases,
that's like a whole new problem, like, and it's not an easy
problem to solve. Like I don't know that much.
I like a lot of times my database, you just keep throwing
money at it and make it bigger and bigger and bigger.
But at at some point until, yeah, at some point there's that
ceiling and you can't and and then, and then what do you do?
Now? You have a whole new set of
problems and like you just keep unlocking new problems.
And and, and you know, the cloud providers will, will try to sell
you that you can just keep adding to it too.
And then by the time it is a problem, it's a.
It's really a big problem. Yes.
And then if you've been sharing knowledge, hopefully you can
mention out to people that you've met and shared knowledge
with and one of them will have done that.
Well, or even if you get there and you're like, don't do this
and here's why. And like imagine, imagine, like,
you know, being a a new entrepreneur with a SAS product
and you hear something about scaling what not to do and you
remember that and you do it from the start, which is just build
it in Elixir in the future. You will thank you, you know
and. You're winning.
That's right. Yeah.
And then all the soft skills too, right.
Like we, we talked before we turned on about running products
and and marketing is a soft skill.
And I did mention this book. You you mentioned mentioning
this book, so I'll bring it. Out.
Oh yeah, I don't remember. Enough about it, but Marketing
for Developers was a a pretty good book at one point for me.
There's a lot of good information in there about how
to do marketing and it's geared toward developers.
So if you have a SAS product or, or even if you're doing like
consultancy or something, if you ever have to do any sales and
marketing, maybe take a look at that book.
Wish I could remember specifics but it's been a few years.
Yeah, well, like I really enjoy, like I've been focusing more on
bringing like technical founders and CTOS to the like successful
elixir companies now, because I think it's like everyone sees
unicorns, they see the overnight successes and they think that's
the typical way, right? You raise seed money, you, you
know, you get Series A and it just blows up.
But most people struggle for 10 years and now they have a
product. And I think like having those
conversations are so important. And then also like I love
talking to people with successful products that are
technical and have unlocked selling and marketing their
products because I struggle there.
So like, I want that knowledge, you know?
Yeah, like I don't. Are you familiar with Rob
Wallen? I just had him on a couple weeks
ago. He wrote the SAS playbook and
he, he was like a, a, a Ruby dev and he built an e-mail SAS
platform called Shoot Drip. And, and now he does a lot of
like seed funding and a lot of awesome stuff for like, mostly
like technical SAS founders. And he unlocked the superpower
of selling products which so many technical people struggle
with. Like I do because I don't, I get
ADHD immediately when it's just like I'm going to research, you
know, where my best users are. Like, come on.
Like, I don't want to, I hate that stuff.
I don't, I don't want to, I want to just build another cool
feature. But unfortunately it's not about
building it. And they will come.
Right, right. And you know, you mentioned all
that struggling for 10 years. They're struggling through those
things like how, how do I, how do I find the right people?
And, and, but in order to struggle for 10 years, I think
we can all admit that it takes a lot of support.
And we're, and that's another thing about building these
communities and teaching each other as you get that support
from, from other people, which kind of like I'm, I'm a big
proponent of meetups because of that.
There's nothing like that connection that you get from a
regular sharing of knowledge with the same people.
And just meeting people in person is nice.
Yeah, like, like down in XMEX, it was a small conference, but I
love that so much more because in between talks you were
actually able to talk to everyone at the conference.
And so you meet really cool people working on really cool
things. And and then and then the
lightning talks too at that. That was Nathan.
That was a good conference. I'm just going to shout you out
there. That was a good conference.
We got to have another one next year.
I, I, I don't know if he's fully sold on it, but I hope he does
it again because it was good. Yeah, yeah.
And I had good tacos, so. I'll take it, you know, going
down to Austin just for the food is worthwhile.
You know, that's true. That's true, but Austin's a fun
town, I thought. What?
Oh, go ahead. Oh I was going to.
I experienced driving in the fully automated Ubers too.
That was my first time. I forget what they're called
now. Waymo.
Yeah, Waymo. Or the yeah, 'cause yeah, I did
that too. I went to a restaurant on the
first day and and you know, like the app said, are you OK with
one of these? And I had marked yes, but I
didn't even realize that that's what was showing up 'cause I
didn't pay any attention. Yeah, yeah.
And it. Got in and I, I had to video it
and send it to my son. I'm like, this is super weird.
The fact that you could sit in the front seat if you wanted to
like on the passenger side. I was like, that's, that's
really wild. And and like I watched that one
point, OK, maybe I'm a little blown away by I like maybe it's
AII don't know, but whatever. It pulled up in like a
neighborhood to a stop sign and then it slowly eased forward
just like a human would to like I guess see around the cars that
were parked on the side. But I was kind of blown away by
the fact that it just eased forward.
Also, I was like, OK, that's like, that's like riding with
somebody else. Did you see all the there is
like some crazy controversy around I think it was way MO's
in particular with like apparently when emergency
situations happen and like the AI doesn't know what to do and
they just like get locked up. There's there's people in like
foreign countries that can come in and control the car.
What? Yeah, yeah.
So there's like India tech support that can like, take
control of the cars. And then, like, people just
found out about this. They're like this seems like a
security problem, like if you can just take over a car in the
US and like cause chaos out of nowhere.
Right, right. It's.
Crazy. Or you it's going to be a good
movie. Whenever there's like the
president gets in a way mode and somebody takes it over, it's
going to speed drive. We could go down some conspiracy
theory rabbit holes if you want, but I think they can control our
cars for a while now. Oh yeah, yeah, it wouldn't
surprise me. I mean a lot of cars are
tracked. Yeah, well, and a lot of cars
are drive by wire too. Nothing.
There's nothing physical about them anymore or mechanical.
Yeah, which is kind of terrifying.
It is it I It's neat though. It is neat.
It's really neat, but it's terrifying coming from like
manufacturing, like when things go wrong, things can really go
wrong. I used to have a 1970 beetle and
I, I remember just like working on that thing.
It was, it was all mostly pretty simple, right?
And I can, I can do anything. And now if my car breaks, I'm
like. Hey, yeah, I don't know.
I had a 1973 carbureted scout too.
I love that thing. So good, I need an old car.
I I wish I never sold it. My beetle caught fire.
Sad. Yeah, so I'll I'll share the
story. It's it's ridiculous and non
tech related. That's what rabbit holes are
for. Let's go.
I was drive my my wife. I was driving to see her when we
were dating and middle of winter and right before the exit on the
Interstate for her town I heard a belt break in the back and it
hit the gas line. And.
Knocked it open and blew gasoline all over the motor and
the whole thing went up in flames.
And I stood on the side of the Interstate and the fire
department came up and they mashed in the back window and
sprayed the whole inside of the car.
And while I was standing there, I feel ridiculous saying this
now, but I started crying like I was like really upset.
And this fireman, he says it's it's OK, it's OK, you'll get
another one. He's and then he's just trying
to calm me down. He's like, where are you headed?
And I was like my fiance's house.
And he goes, oh, you won't get another one.
That's like. Thanks.
That's hilarious. And he's right.
I haven't gotten another one yet, but we've talked about it a
few times. She's on, she's on board for it,
but just got to find the right time in life when I have time to
work on it again. Yeah, I've always what what I
always want to do now is do like the replica version, like get a
69 like Camaro or Mustang and have it look like that, but with
all modern day technology like fuel injected engine, good
brakes. Then I can't work on it, that's
true. Because like there is like
something about a carbureted engine you can like, it's so
much easier. You can adjust it with a
screwdriver. Right, right.
I can mess it up with a screwdriver too, but that too.
But you can also UN mess it up. Yeah, yeah, that's hilarious.
Is that your dream car like a a late 60s Camaro?
No, probably more. I would probably learn more
towards a Mustang or something like that.
But yeah. Or early 70s, somewhere around
there. But I'd also take my Scout too
back. Like 'cause the Scout's pretty.
I had a baby blue Scout and I was when I was living in Los
Angeles when I had it and my I, I was the first owner.
I cut the seals and took the hard top off and it never
rained. So I didn't have the roof on for
four years living there and I just drove everywhere.
It's beautiful. And what's cool is you're like,
well, Los Angeles, don't you worry about, like, people effing
up your car. Dude, knock on wood.
No one ever messed with my car. I think there's like a strange
respect for classics. Like people just don't.
They don't want to mess it up, you know?
Yeah. Yeah, so nothing ever got stolen
out of it. Nothing ever.
Like a homeless person was never sleeping in the back seat.
It just worked out. I don't know.
I've. Never thought about somebody
sleeping in the back seat. I'd just I'd just get him a
burger and fries and wake him up.
Be like, hey, do you mind getting off my car?
Oh. Man, yeah, I've always wanted
like a like a 67 Chevy Nova. There you go.
I, I have no idea why there's, there's just something with that
car that I'm like, I really like that car.
You got to just do. It you look beautiful.
No. Yeah, but all the old classic
cars just look so good, just like the square bodies and like
even like now, like a early 90s pickup truck.
Like they're just so cool. I miss them.
I hated them when they. Were I know, but now you
nostalgia bring them back because now all of our cars look
the same. Now you're talking about how old
we are. I know that's embarrassing.
I remember when I was in high school, our family car for all
the kids, we had a 98 diesel Jetta.
It was like that square bodied Jetta, but like because it
because it was diesel, we got like 58 miles to the gallon.
Wow. It was awesome, I could put like
2 bucks in that thing and it would be good for two weeks.
That was back when $2.00 would buy you 2 gallons.
Of yes, that is true, that doesn't happen.
That was also when diesel was cheaper than unleaded.
Oh yeah. Wow.
Yeah. I remember my first car, the
first time I went and filled up right before I turned 16, gas
had gone up above a dollar. I'm really aging myself now.
And then by the time I got my license, it had dropped right
back below a dollar. And I remember people being
like, it'll never go over a dollar again.
That's hilarious. I remember it being like $1.30 I
feel like but never lower than that.
Yeah, you, you. I lived in a small farm town in
Illinois so it probably helped. Keep the price.
We're our neighbors. I grew up in Wisconsin, in
Milwaukee. Oh, nice, nice.
Milwaukee Milwaukee's a fun town.
See the Fonzie statue. Yep, there you go.
And in the summer, you guaranteed there's some sort of
beer festival every weekend somewhere.
I'm OK with that. Yeah, me too.
It's. OK, If we end up at a conference
again, we we might have. To, I mean elixir conf is in
Chicago this year. Oh that's that's true.
I should probably try and make it up there.
It's not that far. Michael Stettler brought that up
to me the other day and I was like, oh, because he lives in
Illinois. I was like, that would be a fun
one actually, because I can get up to Milwaukee too and visit
family. Nice.
Yeah, I might take a train up there.
I like to. Go trains are fun.
Yeah, just chill. No real security.
Maybe I shouldn't say that out loud, but you just carry your
stuff on like we don't care. Yeah, there you go.
Yeah, You know what, you kind of forget about that, having to go
through airports 'cause you just used to all the BS security that
you have to do, right. At least they stopped making
making us take our shoes off. I here they do that on some they
they've only upgraded some of the things, which is funny
because we have an airport that's like 2 years old, but
they were testing out new devices.
So they have a couple of the new ones and then they have some
some like the ones right before that.
So you still have to take your shoes off depending on what line
you. I want to not take my laptop out
of my bag, that would be a huge plus.
I bought a bag backpack that has a laptop separate and it's got a
zipper that opens all the way and so you lay it flat.
And so one side only has a laptop and most places it says
it's TSA approved. Most places, as long as the only
thing in that side is your laptop, they'll let it go
through. But every once in a while I end
up at A at a place where they're like, no.
But the new ones in Kansas City, where you don't have to take
your shoes off, you also don't have to take your electronics
out of your. Oh, that's nice.
That's nice. Like I'd rather them just flag
my bag and go through it than having to like take it all apart
before. I don't know.
Yeah, I don't know. It's just it's I don't annoys.
Me the the only time that I've ever been with anybody that got
flagged was actually from my first podcast.
We were going to a an Agile games conference in Boston and
on our way home, one of the guys with me had a stack of note
cards in his backpack. And I guess this like dense set
of note cards. They were like, we need to look
in there. And he did not take it well.
He was tired and ready to go home.
And he's like, whoa, no cards. So dude, I'm like, shut up.
We just need to get on this plane and go home.
I get it. But yeah, sometimes you just got
to go through the process, right?
It would be fun. Yeah.
I think going to Chicago would be fun.
And then like I could do some like in person podcasts that
could be like just grab people, be like let's.
Those are always fun, yeah. Are you what, if you don't mind
me asking, whatever happened to like, elixir outlaws?
Life. Just got busy and it faded away.
Got. So busy.
And then, yeah, just slowly faded away.
It's funny because we've talked about doing it again, like, and
I've talked about doing it again.
But yeah, it was just kids I had.
I had three teenage kids at home all in high school and trying to
be independent teenage kids, and that was exhausting.
And then trying to jam it in at lunchtime when we do the
recording just because we could. And then, I don't know, just
became work. And I've always said, you know,
the one thing is once it becomes too much work, then I don't want
to do it anymore because I already have a job.
Yeah, no, I feel that. I that's why I live stream this,
because then I don't have any post.
It's just like the time it takes to do it and then it's done.
I mean, there's a little, there's a little post, but I
don't have to edit because editing is the hard part.
Yeah, I started out so the the original Elixir Outlaws, like
the first couple episodes didn't really edit at all.
And then I was doing editing and it would take me 8 hours on a
Saturday to to go through. And because we had everybody
record on a separate track. Oh, just if they talked over top
of each other. But it was really important.
Then I was able to space it so that we can still hear both of
them. And just like all of that work,
it ended up being like, I, I just can't do this.
So then my daughter, my oldest daughter was getting ready to go
to college and I was like, hey, need to make some money for
college. And I paid her to I showed her
how to do it. Paid.
Her and. Because of that, Chris Keithley
used to make all kinds of jokes on there and talk about stuff
and he's talking about physical therapy.
And he had to, they would take these marbles and cover, cover
them with like Jelly or oil and then make him pick him up off
the floor with his toes and try to fill up this jar.
And so he talked about foot marbles.
And then I would go to visit my daughter at college and like all
of her friends, they're not tech people at all.
I would be walking with her at college and they would walk up
and be like foot marbles. That's.
Hilarious. What's?
Going on. That is so funny.
They were accidentally being educated on the side right right
in elixir it. It was because they would like
be in the room when my daughter was editing it.
They were her friends and. That's funny.
That's awesome. I love that.
I think like I've been bad at getting tutorials out and it's
because of the editing, because it's just like when you're busy,
it's like the last thing you want to do.
Right. Because like, maybe you should
do. Maybe you should do that stuff
live. I thought about it.
Sometimes like it when you run into an error, right?
That is just a teaching moment. Like it is somebody, somebody
needs that. And it is.
That's true. So that is true.
Just let it go. I just gotta do it like
normally. Like sometimes I'll have errors
that I leave in because I don't. I hate when you, like, if you
accidentally get someone in the same corner as you, but your
code mysteriously works normally, you like, you got to
fix that kind of stuff. But yeah, maybe I do.
I for a while I was doing a couple live streams.
But yeah, it would be better because I did, I started an Ash
framework course and I've only done like the first couple
videos and just left people hanging.
But life, life has been so busy. I just need to, yeah.
Yeah, well, and then those errors that you run into, then
you also get to show how to figure out what the heck they
mean. That's true.
Well, like I feel like learning how to fix problems, like
reading the error logs and everything that's it's a skill
in itself. Even like some debugging is like
you. You learn that from years of
debugging and that's the only way you can really do it.
I do. I do appreciate the errors on
compiling though coming out of Elixir.
They me too. Most of the time can tell you
exactly what's brought, what the problem is, yeah, which is also
frustrating. Like like did you mean this?
Why just change it for me? Yeah, that's hilarious.
It looks like you're missing an end on line 70.
Well, just put it in for me. Let's.
Yeah. Let's see if it works.
Just do it. I mean which is nice.
Now with LIKE using like LLMS in your workflow kind of can do
that. I guess that's true.
That's true. I always, I always get
frustrated every time I try the LLMS again.
Is that, you know, you give it a set of rules and then sometimes
it breaks them. So those rules are not rules,
they're just suggestions to it. Oh yeah, sometimes it'll ignore
them completely. You'll be like, hey, do not like
use pattern matching in your head functions over like
conditionals, you know? And it always will revert and
want to use conditionals over pattern matching with functions.
Yeah, yeah. And it's like come on bro, get
it? Don't make me run Credo strict
on you and then you're going to get yelled at for having too
much nested code. I just I feel like I need to
read I robot again now. I'd never have read it, but it's
probably it would probably be a good book.
Yeah, have have you seen the movie?
I've seen the movie, yeah. Yeah, yeah, it, it's, the
movie's got it so. Yeah, OK.
Yeah, it's got the the idea that I'm thinking of anyways, just
that you can give them some rules and then they find out I
maybe I can break that rule. Oh, I don't have to listen to
this. Yeah, I'm curious as like you're
you're are you're a staff engineer now, right?
What what was like the what was the shift to like?
Do you still write code or not really?
I do, I do. So I write code every day.
Right now I'm working on doing some property testing of a
distributed system. But yeah, I think, I think the
big thing for me that separates like a senior from a staff is
actually the like willingness, often not just ability, but
willingness to teach. Yeah.
And willingness to take the time.
I mean, there's some experience level of like you've seen enough
things. But I can tell you if, if I,
I've done some embedded system stuff, but if I went to an
embedded systems team, I might as well be a junior developer
for the most part anymore. It's been too long.
But if you're willing to share the knowledge that you have and
take the time to not just like you do a code review, you can't,
you can't just say this looks bad or yes or no.
You you have to say why. Why is this year?
Why would you make the decision differently than they did?
And and be willing to put your ideas out there and take that
extra time to to not just say, hey, change the code here.
Don't just make a code suggestion, say why and offer to
pair with them. Yeah, yeah.
To me, that's that's what makes a real staff engineer, somebody
who's who's helping guide the team in the product.
You probably need some pretty decent soft skills as well.
Try. I work on those a lot.
Well, I think it's like it's really easy.
I feel like I don't have it so much at the my current company,
but I've in the past, like engineers have been, they're not
assholes, but they'll come across as assholes, right?
Like because they'll be like really harsh with comments or
whatever. And you kind of learn to not
take stuff personally. Like it's just, you know, they
don't want bad code going into the code base.
Sure. And you take it as like a
learning experience. But I feel like as you start
managing developers, you kind of you have to be a little nicer in
at least the way you deliver. I remember telling somebody on
the team that worked with me a long time ago, they're just
feelings, they go away. And I, I still feel that way a
little bit, like ultimately our goal should be to make a good
product, but they're just feelings.
They do go away, but they're sometimes the most important
thing in the situation and figuring out how to handle that.
And so I feel like you got to lay a lot of groundwork too,
because sometimes you're going to say things that are going to
run, rub people the wrong way. So you have to lay groundwork
that says you can trust me, we're both after the same goal
and, you know, do things with your team where I think we we
mentioned this. If you have a bug, it's our bug.
It's our problem, not you did this.
It's never you. It's always our we, everything
is we and our, which I actually kind of probably go maybe too
far to the we an hour. If I, if I did it, it's always
my problem. But like I noticed that in
commit messages and PRS, even if I worked alone, I, I write big
commit messages and I'll often say we, we made this decision
because of this. And I'm like, Oh, I actually
worked by myself, but I've like internalized that it's our
product and it's me who are getting this going forward.
And so at the end of the day, it's it's not me that matters.
It's the product that matters. And every once in a while,
somebody even says something to me that makes my feelings get
hurt. And I got to take a step back
and be like, look, what's the goal here?
And. Where are we headed?
I remember when I first became like junior, like my first job,
like PR reviews would like hurt my feelings or like, or finding
bugs in the feature that I wrote hurt my feelings.
And it's like so silly to me now because it's just like, we just
can't have a bug in the code. Like it's nothing personal.
We just have to fix it. And I think everything's so
personal. But it's real easy, Jacob.
Just don't write bugs. Yeah, just don't write shitty
code, bro. One of the funniest things, a
guy I used to work with, he's kind of like, you know, you're,
you're developer with maybe not the greatest social skills.
But I remember we had like a junior on our team and it, it
was, it should have been a better teaching moment.
But I remember he made a comment that he just said this.
Is it like he just wrote what in the Stack Overflow question mark
and just left it? No more feedback other than
that. Like I laughed, but it also like
is not a helpful comment. Not a staff level engineer, no.
What in the stack overflow? I would probably unfortunately
laugh if I read that. Yeah, I mean I laughed, but I
also then also realized it wasn't a helpful comment to the
guy that wrote the code. Yeah, yeah, not at all.
Didn't do him any good. He just said oh, it's bad.
I don't know what? I don't know why.
Yeah. I mean, I don't even know what
part bothered you. That was just a highlighted
block of code, you know, and what in the Stack Overflow.
And younger developers probably won't even understand that joke.
But. Yeah, I wonder how much Stack
Overflow is being hurt by AI. Yeah.
I don't know, times are changing.
I mean, people don't even use search engines anymore, they
just ask LLMS. Right, right.
Or even if you do go to Google, like half the I have time.
At the top, yeah. Yep, yeah, just read the AI and
move on like. But I've also seen that be
wrong. The other day somebody gave me
the idea And so I, I got turned on ChatGPT audio and I said,
hey, can you count from 1 to 200 for me?
And it said, sure, it's going to take a while, but I'll do it
123456 and so on until we get to 198 one 99200 and then we're
done. Thanks.
And then we moved on. I was like, wait, you didn't do
what I asked you to do. I'm sorry.
I'll do it again. And it did the like the same
thing, but it had some different number ranges, like it moved
them. But it I was like a you're like
dealing with a fifth grader kid who just like I don't want, I
don't. Yeah, Like, are you serious
right now? Have you seen the funny?
I don't know if it's real or not, but where where they did
that? Like can you count from 1 to
200? And they had like the female
voice selected and she's like, no, that'll just take too much
time. But here's how you would start
it. And it did something similar.
And then they're like interesting.
And then they change it to like the male and the male voice.
They just start counting all the way through and doesn't try to
like change the change the message in.
And it made me laugh but I don't know if it was real or not.
Yeah, I I doubt it. I could not get it to count to
200 for anything so. That's hilarious.
Which it kind of makes sense because it's like silly to use
an LLM just to output something like that, but it shouldn't be
hard. They could just do it in one
response. My thing is, if I ask a computer
to do it, I feel like. It should.
It should do it. Yeah, that's true.
Yeah. I'm still waiting for the day
when AI will mow my yard and do my dishes like that's the things
I want it to do. I know.
All right. Clean the house, like just have
a nice little like assistant that does everything for you.
Yeah, that would be nice. One day, one day maybe, maybe
we'll see it. I don't, I'm like, I'm creeped
out just having like a Ring camera on a doorbell though,
like, and then you're going to let these things in your house.
Yeah, yeah, that's I don't want cameras in my house.
Yeah. Well, but if you had like a a
robot or something that. Yeah, yeah.
Yeah, I already don't like having the camera on my laptop
after. All Do you put tape over it?
I don't now now that Mac got rid of the border.
Yeah. Like where they had the camera,
now there's no border. I'm like, well now where do I
put? That I hate how the tape looks.
I always used to like get those thin plastic slide stickers but
then. But then Apple changed the the
thickness of the bevel and you like, people started cracking
their screens when they would close the computer.
Yeah, 'cause they couldn't make the plastic slide thin enough.
And so that's. Weird from conference swag.
Yep. Dang yeah I don't.
I just always hope that the light comes on when the camera
comes. On.
Something tells me though, that can be controlled.
Yeah, I'm sure I'm. Sure.
And like I use a like a DSLR for this camera, right.
But I, I have AI physically turn the power off to it when it's
off. So I have like a little stream
deck and an Elgato plug and that thing is off.
Yeah, I should. I should probably start using
mine. My wife was a photographer and
so we have, we have those sitting around.
It just looks so much. Maybe I wouldn't look so pale
right now if I if I had that out there.
Or if I could get heard lightning lighting in my office,
it would probably be a lot better.
Or maybe just a little bit of sun, you know?
Well, IA little bit of sun makes me catch fire, so you.
Just get burned right away, yeah.
I look like I I blend in with this wall back here if I oh.
That's funny. You'll just be a little orange.
You'll be fine. Yeah, I'll be fine.
I'll be fine. Yeah.
I, I feel like we've gotten way, way off topic and down the
rabbit hole, but I just like, I had a little bit of a thought
back on on that is that I really want, I feel like meetups kind
of started slowing down after, after in person meetups,
especially after COVID. Yeah, COVID screwed it all up.
And I'd really like to see them come back.
Yeah. And I just want to say it out
loud so that other people will hear it.
Like please do meetups. I'll if you don't have anybody
give a talk, give me a call. I'll see what I can.
If I can fly there and do it, I don't mind.
We, there's an elixir meet up here and I've been bad at making
it. In fact, I don't even know if
they've been doing them consistently, but they were fun.
I did, I did a talk, I was like, I did one of the revival.
I was like the group got revived after like a couple years, maybe
a year and a half ago. And I did one of the first talks
there and it was fun. And I'm bad at getting to
physical events because like the end of the day comes and I'm
just like, I'm tired. I don't want to drive.
For three minutes, especially working at home yeah yeah yeah
yeah yeah that that drive home that drive home whenever you
went to the meet up straight from work was a whole lot easier
than. Exactly.
Leaving your house together. And that's just it.
They're like right after work would let out, right?
So you're also fighting traffic because you have to drive there
instead of being in a nearby office or something.
Yeah, yeah, yeah. But you know, like, I've been to
a bunch of online meetups and I love them.
I love the fact that we can share stuff around the world and
build bigger, wider communities. But there's something about, you
know, waiting for the talk or after the talk or whatever where
you're just standing around talking to other people and you
mention a problem that you have at work and then somebody
happens to give you a solution or at least helps you think
through it. Like, I don't know, I love this
job. I love thinking through all
these problems. And so when somebody I'm easily
nerd sniped. Or just like a a new like a
creative solution that just makes your complex 1 so much
like just so much easier because how often do you over engineer
solving a problem and then you can fix it with something 10
times easier? About every hour.
Yeah, exactly. Yeah, that's, that's actually
most of my code review stuff like, hey, this code works.
It's it's pretty decent. We could eliminate half of it if
we just change the way we approach this problem.
Yeah, like in in the property test stuff that I'm working on,
somebody else at work was working on some of that and
doing some property testing too. And we're doing a generator and
they had, I had a generator. It worked.
It did some really complex stuff.
And I was like, oh, that's really cool.
We could just pick one of the ones we are.
It was like trying to generate a piece of data that we may
already have. And it was like doing all these
generating data and then doing all these checks.
And I was like, we could just pick one of the pieces of data
we already have and he's like, and then sometimes make it pick
something that we don't already have so that every once in a
while we get that that test, that data that says, oh, I can't
delete it, it's not there. Dude property tests are so cool.
Just they are. They are.
They're brilliant. If if anybody hasn't read Fred
Aber's book from Prague, Prague, I forget the title of it
exactly, I have it behind me somewhere.
I don't see it. I don't.
Know if anybody can hear me while I was turned around, but
it's it's property testing with prop check and really like the
state based property testing is is kind of where it's at.
It's one thing to test the math problem, it's another thing to
be able to test a full system. Yeah, I'm trying to pull up the
name of the book right now. Oh that's that's not what I
want. Is it just property based
testing with prop, ER Erlang and Elixir?
Yep, that's it. Great book.
Sweet, I have not read it. I will have to add it to my
list. He also has proper testing.com
and they have an old version of the book for free on the website
and then he didn't he so he did it originally as like a online
book. He also has another great book
read Everything by Freddie Bear. He does Freddie Bear, Erlang and
anger. I had to think about it.
That is all about how to figure out what's going on with your
system whenever it's not working as you want.
It's very cool. I'm just going to plug
everything Fred right now because.
His blog is great. The The Zen of Erlang see this
is this is knowledge sharing in action.
Fred just shares all of his knowledge and I pretend I'm
smart, but I'm really just regurgitating Fred.
I mean, that's that's me. If I say anything smart, it
doesn't happen often, but it's like probably because I heard it
somewhere else. That's awesome.
No, yeah. The like property based testing.
I'm trying to add more to my projects just because it helps
you find so many edge cases so much quicker.
It's one of the most humbling experiences as a developer.
First of all, they're not always easy to write.
You have to figure out what actually is a property of your
code. But then when you finally get
it, you're like, yeah, I wrote that test.
And then it tells you how wrong you were on your implementation
and, and it'll do that to you over and over.
And it's really, it's really like sad to see code that you
thought was perfect just get destroyed.
Yeah, well, but then it becomes perfect.
Yes, yes, as long as you pick the right properties, yeah.
I mean like, writing good tests is hard, yeah, writing a test to
pass is not beneficial at all, but writing a good test that.
Passes and figuring out where to start, right?
Yeah, and I, I was recently talking to might have been my
son-in-law. He's also a developer.
And I was like, man, just make, make a property test that just
says it returns a list and it just gets your your brain going.
You're like, I can do that. And then as soon as you write
that, you're like, oh, oh, actually it's a list of
integers. So now I can write that, I can
add that to it. And then you just end up getting
to the right place over there. But sometimes just that stupid
first Test is just just just write something dumb.
Write something dumb that passes right, right, right and then
iterate. Yeah, I think I feel like dumb
ideas are what changed the world.
I, I say at work a lot, all I, I'll say I've got this dumb idea
and people are like, that's not a dumb idea.
I'm like, no, no, no, all ideas are dumb.
Every single idea is dumb. And if you get that through your
head, then nobody on the team ever feels bad about throwing
out some idea because every idea you're going to call it dumb,
even if it's brilliant. You're like, that's dumb.
We should do that. We should do.
That it's brilliantly dumb. Let's do that.
But it it causes a lot more creative ideas.
So that's that's one of my other.
Just feeling. Tax right?
Yes. Well, I feel like the biggest
problem among at least programmers is no one wants to
look dumb. It's like a fear, right?
Like imposter syndrome kind of hits you, but at the same time
if you're just talking through a problem, getting all the dumb
ideas out is really beneficial. Right.
Because it leads to conversation.
Part parts of eight dumb ideas become one really brilliant
idea. Yep, exactly.
Yeah, like when you're running into weird constraints because
of the database you you used. It's not necessarily.
Maybe it's not the database that's the problem, it's just
how you're trying to implement it on the tool you're using.
Like, yeah. Yeah.
What I watched a dumb idea save a company.
We had query that by the. At first it was fine and then
the company had been around for years in this this It was an
events table and they were trying to find an event that
happened closest to a given time.
So it could be before it could be after it could be the exact
time and they had a pretty complex query to do it.
And the answer came up to be why not just two queries like find
limit where you're ascending from that date, limit where your
D limit one where you're where you're sorted.
What did I say? Ascending descending from that
date. And so now you have two
different numbers and then in the actual program code compare
them. But it was because the query was
doing some complex. Why would you want to write 2
queries when you can write 1? Well the one query was taken
like a minute and the two queries together and the code
was under 20 milliseconds. Your table joins are just in the
wrong order. You have to fix the one query
now. Yeah, yeah, there is like the
that's like kind of leads back to the performance problems you
don't run into on smaller systems sometimes that you do at
scale and it's like sometimes it's better to have two queries
instead of 1 query that gets it back.
Yeah. Yeah.
And like we're programmed like the one queries the only way,
because that's the cleanest way. Yeah, there's a I'm only calling
it once. It's got to be faster.
Yeah, exactly. And we I think we put too much
on our databases. We definitely do.
They they feel magical until they're not.
Yeah, I think that every developer should work on an
embedded system at least once, because they will never.
Because then you're like resource limited.
Just get a bigger server because you can't, right?
You can't get more RAM. I remember I was doing nerves
work and somebody, I asked a question and they were like, Oh
yeah, just grab some more RAM. I'm like, no, like I can't.
You don't understand. No option.
There is no more RAM. Yeah, that's a good point.
Like we get so used to just throwing RAM at the problem or,
you know, increasing size and speed, and you don't always have
that. That's why programmers of the
past are so much better 'cause they had to deal with the
limitations. Creativity is born out of
constraint, I've heard. I don't remember who said it.
I. Like that, yeah.
Yeah, I like that. Well, like I was thinking about
like the first like like mass multiplayer games like Tribes
and things like that. And like World of Warcraft when
it first came out, they have just these power gaming PCs.
They had to make it work and we had dial up.
Right, right. Like we didn't have fast
Internet and they didn't. They couldn't have lag issues or
any of that and they had to deal with it and make it seem feel
seamless. I remember playing early first
person shooters on dial up and like getting ready to shoot at
somebody and suddenly they're. And then they like moved, yeah,
'cause. There was a lag.
Oh, man. Over here now, yeah.
I remember like tribes and Counter strike and like such
good games but yeah lag could get you man.
Yeah, I don't play games any anymore.
I don't. Know I don't either.
Once I started programming it, almost when I did play games
when I was in college, I would feel really guilty about it
afterwards. But then also like a lot of
times, if I wasn't playing a multiplayer game especially, I
was like, I'm just fighting somebody's algorithm.
It became really disheartening for me, but.
I just like, I don't want to, I just think of it as a huge waste
of time now and I get at some people's outlets and way to like
relax. Mine is getting away from my
monitor so I just have to do something else.
Yeah, that's, that's me too. I got to.
I have to step away from looking at the screen.
Yeah, I stare at it all day, so I don't want to just relax and
stare at it more after work. Right, I don't even really watch
this TV right here that I have on the wall has never been
plugged in. Oh, that's been out there.
For like 7 years I actually. Did that.
Yeah, it was. It's the only TV in my house
too, and I was going to put in something to like monitor a
build system or Jira or whatever and just be able to have that
there. And then I was like, why?
So you don't have TV's in your house?
No. Nice, I like that.
In College, in 99, aging myself again at least.
You're older than me. It makes me feel good.
Perfect. I had ATV and a surround sound
system and I didn't watch a lot of TV like once in a while.
But I I had a friend who used to like just come into my room and
turn on the TV history channel when it still had history and
not aliens. And he would turn it on and I
didn't care anything about it, but it would draw my attention.
And then finally I was like, I got, I got rid of cable and was
like, OK, I'll just have like a DVD player in here.
And then when I got out of college, I, I actually lived 100
miles from where I worked. So I drove back and forth 100
miles each way for seven years. And so there was no time to
really watch TV. So we had AI, had AI, had a flat
screen TV that is smaller than any, it's smaller than my laptop
screen. And we used to rent movies from
Blockbuster and Netflix when Netflix still sent you movies in
the mail. I remember that, yeah.
And we would watch those and then I don't know when we
finally stopped. My wife was an English teacher
and like would rather read a book anyway most of the time.
And I was like, why should we pay?
We lived in the middle of the woods, so it was like, why
should I pay for satellite TV when I it's been, it's been 10
years, I don't care. So that's awesome.
I love. It we have a DVD player and a
projector and it's usually put away.
So if you want to watch something, you have to take the
time to pull the projector out and.
It's an event, so at least you're putting you're, you're,
you're not just watching it out of boredom to fill space.
You're actually like, yeah, we're going to watch this movie.
Yep, and every once in a while we'll be like, we'll buy videos
online, but normally only after people have told me that I
should watch it over and over and over till I'm like, OK fine,
fine. I'll go look and then it's also
something my wife would like or I'm not I, I just.
Yeah, I I've got into this habit.
I really enjoy watching the show alone before before I go to bed.
It's it's like a like a group of like 10 people get dumped in the
middle of nowhere and they're only allowed so many items and
they have to like hunt and survive on their own.
And it's whoever lasts the longest wins.
And it's just like a cool survivalist show.
It's pretty sweet. Is it?
Is it like a fiction or? No, it's real.
It's like a reality TV show. Yeah, interesting.
But like, say, and all these people are by themselves, like
they're in the same area but not near each other.
So like they're either fishing, hunting or starving and they,
they decide to drop out or they make it all the way.
It's pretty, it's cool. Like I, I think I like that
because like my spare time, I want to go camping, rock
climbing, something outdoors, you know?
So I enjoy that. Well, you're in the right place
for doing some outdoors. Utah's amazing.
I I accidentally found Utah and I I don't think I'll ever leave.
I I have not been yet, but I'd like to go to Zion.
Yes, that's fun. You should.
If you're ever in town, I could take you on some adventures.
We can do some canineering if you want, if you're brand.
New. Sounds good to me.
All right, fine. Last time I was in, well, I was
at AI, was at an Elixir conference in Salt Lake, but
before that I was in out there in the military, out in the salt
flats. What's cool about Utah is the
diversity of nature. Like you have, you know, your
typical mountain pine trees, right?
And then like you go South and you have all these crazy slot
canyons and rock formations and desert.
Like we have everything. It's kind of, it's kind of wild.
That is, that is really neat. Yeah, I remember leaving.
Fun, fun. Sorry.
Go ahead. I was going to say, I just
remember leaving Salt Lake and seeing all the mountains and
then we get out and then there was snow on them and then we get
out in the salt flats and it's just like pure, like as flat as
can be. It was wild.
And like, fun little fact, like slot canyons only exist in like
4 places in the world, and really two of them it's Utah and
Arizona. And then like, I think Australia
and like Pakistan, like it's so like, we're really lucky to have
things like that, yeah. That's pretty.
Yeah. I I mean, I'll bring a pocket
knife in case I have to cut my arm off.
It's fine. Dude, yeah, that that freaks me
out. That that guy, could you
imagine, like he had, he broke his, he broke his own arm and
then had to cut through his flesh with a pocket knife
because he couldn't cut his bone, so he had to break it.
Yeah, that's nuts. That's.
Nuts and like what a freak accident.
He just like fell just right and got wedged between rocks.
Yeah, if that if that happened to me, I'd probably just die.
I would like probably think less about cutting my arm off and
like be like maybe I'll just slit my throat.
Right, exactly. I'm kind of glad that movie's
out there, so now I know the path to make it home.
Yeah, just cut your own arm off, dude.
Right. There's this podcast that I love
to listen to. I don't know why it doesn't.
They don't make any new episodes, and I wish they
started it back up, but it's called Out Alive, Out Alive.
Yeah. And it's all these like Freak.
Podcasts you might be able to get me 'cause I can listen to
them in the car. I can't watch them in the car.
Look, look up, out, alive. Out alive.
I'm writing it down. And it is so good because it's
like, it's just like these crazy circumstances, like these people
will have done this like they've rock climbed or repelled like
hundreds of times. And then just like a freak
accident happens. And it's always about like, you
know, sometimes people die, but it's usually like they're
interviewing the person that survived.
And it's just like the craziest stories, like it's.
Cool. I mean, yeah, yeah, I'm
listening. To it, it's a good one.
It's like it's, it's impressive what people are capable of
doing. When you're pressured, yeah.
Yeah, when you. It's the only option, right?
Like your body could be broken and you can still pull yourself
over a boulder field for five miles and survive like it's wild
stuff or like you got mauled by a grizzly.
Yeah. Yeah.
Well, on that note, I think we can wrap this up.
It was a lot of fun chatting with you.
I really appreciate you coming on.
I don't know if we said a whole lot useful to anybody else, but
I appreciate getting to know you.
Yeah, yeah. Sorry guys, we might not have
hit a lot of elixir talk, but sometimes that happens.
But I appreciate you coming on, Amos.
And yeah, this was fun. And for everyone that tuned in,
thanks for tuning in. Hope you have a good weekend.
And yeah, I'll see you guys. Not next week, I'm out of town,
but I'm doing 2 podcasts the following week so got to play
catch up. But all right, thanks a lot man.
It was a good, it was a good conversation.
You too. Thanks.
Testing.