WEBVTT

00:00:00.001 --> 00:00:04.140
Have you ever wanted to get into consulting? Maybe you're seeking the freedom to work on

00:00:04.140 --> 00:00:09.200
whatever project you'd like or gain more control of your time. Many folks see consulting and

00:00:09.200 --> 00:00:13.740
freelancing as the next step in their career, but what do they need to put in place first?

00:00:13.740 --> 00:00:18.400
What are the challenges they might not see coming? Join me as I speak with Reuven Lerner and Casey

00:00:18.400 --> 00:00:24.100
Kinsey, two successful software freelancers, about their journey and their advice. This is

00:00:24.100 --> 00:00:28.240
Talk Python To Me, episode 231, recorded September 11th, 2019.

00:00:28.240 --> 00:00:46.700
Welcome to Talk Python To Me, a weekly podcast on Python, the language, the libraries, the ecosystem,

00:00:46.700 --> 00:00:51.800
and the personalities. This is your host, Michael Kennedy. Follow me on Twitter where I'm @mkennedy.

00:00:51.800 --> 00:00:57.160
Keep up with the show and listen to past episodes at talkpython.fm and follow the show on Twitter via

00:00:57.160 --> 00:01:03.560
at talkpython. This episode is brought to you by Linode and Brighter AI. Please check out what

00:01:03.560 --> 00:01:07.880
they're offering during their segments. It really helps support the show. Reuven, Casey, welcome to

00:01:07.880 --> 00:01:12.000
Talk Python To Me. Thank you. Great to be here. Hey, how's it going? Hey guys, it's super to have

00:01:12.000 --> 00:01:19.140
you here. This is the topic I'm really excited to cover because it touches on these things that you

00:01:19.140 --> 00:01:23.140
can do to sort of take your career to the next level, which is always something I'm really,

00:01:23.140 --> 00:01:28.080
really excited about. We're going to talk about freelancing, getting into consulting, some of the

00:01:28.080 --> 00:01:33.180
things that you want to do, some of the things you want to avoid, all that kind of stuff. But before we

00:01:33.180 --> 00:01:37.860
get into those, I want to ask you two questions, but not the two questions I normally ask folks because

00:01:37.860 --> 00:01:44.520
there's a different commonality here. So let's start with both of you talking about your podcast

00:01:44.520 --> 00:01:49.320
that you run. I think they're pretty relevant to the conversation. So Reuven, you want to kick us off?

00:01:49.380 --> 00:01:54.060
Tell us about the Freelancer Show. Sure. I'm one of the panelists, I guess I could say the lead host,

00:01:54.060 --> 00:01:57.080
lead panelist on the Freelancer Show. I've been doing it for about four or five years.

00:01:57.080 --> 00:02:02.100
And it's basically a weekly panel discussion, plus occasional guests talking to people about

00:02:02.100 --> 00:02:06.600
how do you create a freelancing career? That's to say, a lot of people are, especially people listening

00:02:06.600 --> 00:02:11.380
to this podcast right now, are excellent at programming. But in order to be a successful

00:02:11.380 --> 00:02:15.860
freelancer, you need to actually have a lot of business skills too. And so we try to talk to people

00:02:15.860 --> 00:02:22.580
about everything from marketing to support to good clients to bad clients to finding a niche and so

00:02:22.580 --> 00:02:26.500
on and so forth so that you can have a successful business, not just be good at technology.

00:02:26.500 --> 00:02:30.240
That's really cool. And I've listened to some of the episodes. I do enjoy it and I'm subscribed to it.

00:02:30.240 --> 00:02:36.060
It's a good one. Now, just to set the stage for us to set the perspective here, maybe just quickly

00:02:36.060 --> 00:02:38.260
define what freelancing means to you guys.

00:02:38.260 --> 00:02:39.040
Oh, wow.

00:02:39.120 --> 00:02:45.040
Is it just straight consulting? Is it like if I worked for a consulting firm, am I a freelancer?

00:02:45.040 --> 00:02:49.440
Like what is the, am I personally a freelancer running my own software business? Probably not,

00:02:49.440 --> 00:02:52.160
right? If I'm an employee, I'm probably not. Where would you put that?

00:02:52.160 --> 00:02:53.000
I would say yes.

00:02:53.000 --> 00:02:54.120
You'd say yes? You think I am?

00:02:54.120 --> 00:03:00.260
Yeah. I mean, I'd say if you are a business owner, that's a small enough business and yours is,

00:03:00.260 --> 00:03:03.880
as is mine, then I'd definitely call you a freelancer. I mean,

00:03:04.000 --> 00:03:09.580
there's so many different terms like freelancer, consultant, contractor, and I tend not to quibble

00:03:09.580 --> 00:03:14.160
over the differences too much. I think if at the end of the day, you get to decide what projects

00:03:14.160 --> 00:03:19.280
you're working on and you're not reporting to a boss who tells you what to do, I'd put that roughly in

00:03:19.280 --> 00:03:20.540
the freelancing camp.

00:03:20.540 --> 00:03:25.120
Awesome. Nobody can tell me what time to be somewhere or what to wear. It probably puts me in there.

00:03:25.120 --> 00:03:29.480
And I'm still employed. Casey, how about you? Tell us about your show.

00:03:29.660 --> 00:03:34.480
Yeah. Well, first, thanks for the special treatment, getting questions differently for us.

00:03:34.480 --> 00:03:37.620
Yeah. I don't make this up for everyone. I just wanted to let you know this is special.

00:03:37.620 --> 00:03:42.440
We run a show. So I run a consulting firm, software development consulting firm,

00:03:42.440 --> 00:03:47.560
and our engineering team produces a podcast called Friday Afternoon Deploy,

00:03:47.560 --> 00:03:52.260
which is tongue in cheek for the thing that we should never do, but often find ourselves doing,

00:03:52.260 --> 00:03:53.780
the point code on a Friday.

00:03:53.780 --> 00:03:55.900
Push deploy, go get a beer, what could go wrong?

00:03:56.120 --> 00:04:03.020
Exactly. Many things, it turns out, which is often a topic of the show, but it's aimed at developers.

00:04:03.020 --> 00:04:08.860
We talk a lot about Python on that show because that's our main backend language here at our company.

00:04:08.860 --> 00:04:11.880
What's your company name? Just so people know what it is. Can you say?

00:04:11.880 --> 00:04:18.980
Lofty. Lofty Labs. And yeah, so we talk about how we build apps, web development, and mobile app development,

00:04:18.980 --> 00:04:26.920
and really just kind of capture what you would maybe call the water cooler type conversations that happen around our office.

00:04:26.920 --> 00:04:34.180
So it's aimed at other developers. It's a point of catharsis for us where we can lament the terrible things that we shipped to production that week

00:04:34.180 --> 00:04:38.000
and the joys of client services and all those sort of things.

00:04:38.000 --> 00:04:40.400
It's a lot of fun. We've been doing it for almost a year now.

00:04:40.400 --> 00:04:42.060
Yeah, that's a good show as well. Very cool.

00:04:42.800 --> 00:04:47.420
And maybe each of you could just tell me what you do day to day so folks know where you're coming from.

00:04:47.420 --> 00:04:48.300
Casey, you want to start with you?

00:04:48.300 --> 00:04:52.800
Sure. So I'm the CEO here at Lofty, which means a lot of different things.

00:04:52.800 --> 00:04:55.340
We're still a pretty small company. We've got about eight people.

00:04:55.340 --> 00:04:57.980
And so my job changes every day.

00:04:57.980 --> 00:05:02.600
But ultimately, this company is the incorporation of my freelance business.

00:05:02.600 --> 00:05:11.160
So I incorporated as a freelancer and then just naively stumbled into accidentally overbooking myself and hiring people.

00:05:11.160 --> 00:05:12.540
That's kind of how we got here.

00:05:12.540 --> 00:05:15.060
And so today, I still write code occasionally.

00:05:15.060 --> 00:05:19.280
I try and keep myself out of the project work to build a more sustainable business.

00:05:19.280 --> 00:05:25.940
I do a lot of work on sales, marketing, vision, going out and promoting the company and those sort of things.

00:05:25.940 --> 00:05:28.380
But I don't know. I wear a dozen different hats.

00:05:28.380 --> 00:05:29.840
Sounds like a super cool job. Yeah.

00:05:29.840 --> 00:05:32.660
It can be for sure. There's a lot of stuff going on.

00:05:32.660 --> 00:05:35.460
So I find a hat and go, oh, this is a full-time job now.

00:05:35.460 --> 00:05:37.540
I'm going to hire someone to do that and I'll have less work to do.

00:05:37.540 --> 00:05:39.740
And then I just find that there's a new job that I have to do.

00:05:39.740 --> 00:05:44.140
So that's my job. I hire people and then find out that I have 10 new jobs every time I do it.

00:05:44.140 --> 00:05:47.100
Yeah, I know how that goes. Super cool.

00:05:47.100 --> 00:05:48.160
Ruben, how about you?

00:05:48.160 --> 00:05:51.860
I've had my freelancing business for about 25 years now since 95.

00:05:51.860 --> 00:05:56.040
And I started off doing coding and projects, a little bit of consulting.

00:05:56.040 --> 00:05:59.000
And I was always doing some training as well.

00:05:59.000 --> 00:06:00.820
And I was in a variety of different languages and technologies.

00:06:00.820 --> 00:06:05.740
And it was probably about 10 years ago that I said, you know, I really should concentrate on one thing.

00:06:05.740 --> 00:06:07.840
And I really love the training most of all.

00:06:07.840 --> 00:06:10.140
And there's tons of demand for Python training.

00:06:10.140 --> 00:06:11.560
Why don't I just do that?

00:06:11.560 --> 00:06:19.060
And so nowadays, most days, most weeks, most months, I'm in a different city, different country, different company doing Python training.

00:06:19.060 --> 00:06:22.880
Everything from Python for non-programmers to advanced workshops.

00:06:22.880 --> 00:06:24.420
And that's most of my time.

00:06:24.420 --> 00:06:28.400
But I also have a bunch of online courses that I'm increasingly selling, including some video courses.

00:06:28.400 --> 00:06:34.720
And then weekly Python exercise, which you'll be surprised to hear involves a weekly Python exercise.

00:06:34.940 --> 00:06:36.060
Man, you named that so well.

00:06:36.060 --> 00:06:39.220
Truth in advertising and or lack of creativity.

00:06:39.220 --> 00:06:40.360
They go ahead and hand.

00:06:40.360 --> 00:06:44.280
And the idea is like to keep people fluent and improve their practices.

00:06:44.280 --> 00:06:44.880
Cool.

00:06:44.880 --> 00:06:47.780
So you both have a lot of experience in this.

00:06:47.780 --> 00:06:49.320
And you've walked the walk.

00:06:49.380 --> 00:06:55.420
And I think one of the interesting themes here is like, so I want to quit my job so I can go write all the code I want.

00:06:55.420 --> 00:06:59.700
And it turns out there's all these other things that have nothing to do with code that you have to figure out.

00:06:59.700 --> 00:07:02.540
So we're going to have a fun time digging into those, right?

00:07:02.540 --> 00:07:04.780
That's the great irony of it.

00:07:04.780 --> 00:07:08.280
So we talked a little bit about what is freelancing.

00:07:08.280 --> 00:07:10.660
You know, I'll throw this out to both of you.

00:07:10.660 --> 00:07:17.040
We've seen on the TOB indexes and we've seen the Stack Overflow article, the incredible growth of Python.

00:07:17.700 --> 00:07:22.640
And we know that Python is growing in very large ways at large.

00:07:22.640 --> 00:07:28.720
But if I have some Python skills, how does that translate over to freelancing?

00:07:28.720 --> 00:07:31.060
Is Python a good space to be in?

00:07:31.060 --> 00:07:37.860
I know like if I did say .NET, I could walk up to like an enterprise customer and say, hey, I want to do consulting with you.

00:07:37.860 --> 00:07:47.180
And they would probably take that because those are both places that use that technology and they're willing to pay tons of money to solve problems because they have like large businesses.

00:07:47.620 --> 00:07:48.580
What about Python?

00:07:48.580 --> 00:07:51.020
I definitely think it is a good space.

00:07:51.020 --> 00:07:52.480
And it's part of that.

00:07:52.480 --> 00:07:53.740
Part of that's that growth, right?

00:07:53.740 --> 00:07:55.940
That Python's been taking off.

00:07:55.940 --> 00:08:00.360
And a lot of that growth comes from it's taking off in a lot of different industries.

00:08:00.360 --> 00:08:03.540
I think that makes it a pretty marketable skill set, right?

00:08:03.540 --> 00:08:13.820
Because being a quality Python developer is applicable in the work that we do in web-based software, cloud platforms, those sort of things.

00:08:14.000 --> 00:08:21.480
But this huge shift in data science and AI towards Python has opened up.

00:08:21.480 --> 00:08:29.440
There's a ton of opportunities on that side, whether that's predictive analytics or business intelligence or just a lot of things like that.

00:08:29.560 --> 00:08:33.420
There's a lot of great DevOps tools built on or working with Python.

00:08:33.420 --> 00:08:37.240
And so because of that, I think that it's a pretty broad market.

00:08:37.240 --> 00:08:45.280
And I think that may be different from specifically some other programming languages that are a little more purpose-built to singular purposes.

00:08:45.280 --> 00:08:46.160
Say PHP.

00:08:46.160 --> 00:08:47.460
Like Swift, for example.

00:08:47.460 --> 00:08:49.540
Or PHP, right?

00:08:49.540 --> 00:08:52.340
Where you're definitely building for the web with that.

00:08:52.340 --> 00:08:53.360
Python's applicable.

00:08:53.360 --> 00:08:57.700
And so you won't find an enterprise company out there that's not doing some Python work too.

00:08:57.700 --> 00:08:59.460
True, they've got big .NET teams.

00:08:59.460 --> 00:09:02.160
But they've got business intelligence teams and analytics teams.

00:09:02.160 --> 00:09:04.920
And not necessarily in their software product development.

00:09:04.920 --> 00:09:06.520
But there's Python going on everywhere.

00:09:06.520 --> 00:09:15.980
You know, one of the things that struck me as you were speaking, and I totally agree with what you were saying there, is if I'm doing C++ or if I'm doing Java, let's say,

00:09:16.500 --> 00:09:23.060
what it means for me to be an expert in that technology probably is hard to achieve.

00:09:23.060 --> 00:09:28.100
There's probably people that have been doing that for 15 years, and they're just really good at it.

00:09:28.100 --> 00:09:30.720
And how am I going to go, well, I've been doing this for three.

00:09:30.720 --> 00:09:32.020
You should hire me instead.

00:09:32.020 --> 00:09:32.240
Sure.

00:09:32.240 --> 00:09:32.940
Right.

00:09:32.940 --> 00:09:34.000
Like, that's a hard sell.

00:09:34.000 --> 00:09:40.620
But there's so many new things in Python that nobody has been an expert for 10 years in TensorFlow.

00:09:40.620 --> 00:09:44.820
In the web space, there's so many new modern web frameworks.

00:09:45.540 --> 00:09:47.640
Jason Knight, Jopranto, et cetera, et cetera.

00:09:47.640 --> 00:09:50.120
These are a handful of years old, maybe.

00:09:50.120 --> 00:09:52.780
No one has been an expert for many, many years on these things.

00:09:52.780 --> 00:09:58.500
And so I feel like you can maybe break in as a specialist in some area easier because of that.

00:09:58.640 --> 00:10:06.460
So just to go back to something that you had said before, Michael, like, you know, if you're a .NET developer, you can go to these enterprises and, you know, they're looking for people to solve their problems.

00:10:06.460 --> 00:10:08.760
The key thing is they're looking to solve problems.

00:10:08.760 --> 00:10:13.120
And increasingly, these companies are increasingly like they're using Python to solve those problems.

00:10:13.280 --> 00:10:14.980
They're saying, well, we could use .NET.

00:10:14.980 --> 00:10:15.680
We could use Java.

00:10:15.680 --> 00:10:18.280
But we want to use Python for a whole variety of reasons.

00:10:19.000 --> 00:10:21.420
And so, yeah, I mean, Python is a great space to be in.

00:10:21.640 --> 00:10:27.200
But I don't think you're going to get that far just being a Python expert or a technology expert.

00:10:27.200 --> 00:10:29.800
You want to be an expert in solving some kind of problem.

00:10:29.800 --> 00:10:31.560
That just happens to use Python.

00:10:31.560 --> 00:10:34.820
That's a really hard mindset for a lot of programmers to adopt.

00:10:35.220 --> 00:10:39.780
Like, I'm going to go, I'm going to use Python really well to analyze log files.

00:10:39.780 --> 00:10:44.780
I'm going to use Python to do the DevOps and make the servers run more smoothly.

00:10:44.780 --> 00:10:50.940
And when you're solving these problems and you're saving these companies money, truth be told, they often couldn't care what technology you're using.

00:10:50.940 --> 00:10:55.980
And you'll be able to find a company that wants to use Python to solve them and will be delighted to have you come do it.

00:10:55.980 --> 00:10:57.120
That's a really good point.

00:10:57.120 --> 00:10:57.440
Yeah.

00:10:57.440 --> 00:10:58.940
They might not even care, right?

00:10:58.940 --> 00:11:02.720
I guess it depends on how much they integrate into their larger systems.

00:11:03.360 --> 00:11:12.300
You know, but knowing how to scale websites or how to create proper databases with indexes so it doesn't take five seconds to load your stupid web page, right?

00:11:12.300 --> 00:11:13.340
Like, why does that ever happen?

00:11:13.340 --> 00:11:20.200
So, you know, those are skills that don't necessarily have to do specifically with Python, but you have to learn them.

00:11:20.200 --> 00:11:22.540
And then you don't even get started on the web, right?

00:11:22.540 --> 00:11:24.360
There's like five other languages you got to know.

00:11:24.360 --> 00:11:24.680
Right.

00:11:24.680 --> 00:11:29.400
HTML, CSS, JavaScript, some variant, maybe TypeScript.

00:11:29.400 --> 00:11:30.160
I don't know, right?

00:11:30.160 --> 00:11:30.640
Yes.

00:11:30.680 --> 00:11:41.340
And I agree with what Ruben's saying because the more that you align yourself with a label like that, and Michael, you mentioned, you know, you can specialize in a framework and be a specialist there.

00:11:41.340 --> 00:11:44.520
And that can definitely work and work well for your business.

00:11:44.520 --> 00:11:52.780
However, the more you position yourself as specifically that, you are putting a shelf life, right?

00:11:52.820 --> 00:11:55.880
Because you're like you mentioned, like these new frameworks are coming out rapidly.

00:11:55.880 --> 00:12:10.860
And so the more that you can differentiate yourself as a problem solver or a solver of a particular type of problem, rather than a person who wields a specific tool, you're no longer bound to the shelf life of that tool.

00:12:10.860 --> 00:12:14.260
And particularly in like front end web development is a great example.

00:12:14.260 --> 00:12:20.720
Like those tools don't have that long a shelf life and you'll be constantly reinventing your positioning to keep yourself in business.

00:12:20.720 --> 00:12:20.980
Right.

00:12:20.980 --> 00:12:25.560
We just changed our domain name from consultings for Angular to consultants for Vue.

00:12:25.560 --> 00:12:25.620
Exactly.

00:12:25.620 --> 00:12:28.680
We lost all of our SEO and all of our customers.

00:12:28.680 --> 00:12:34.100
Something you talked about that I think is really interesting and I want to dig into a little bit is mindset.

00:12:34.100 --> 00:12:43.840
You can definitely go the freelancing route as an expert in some technology, like the world's expert in CSS, the world's expert in caching, the world's expert in something like that.

00:12:43.840 --> 00:12:52.420
But even unless you are the world's expert in one of them, you're going to be seen by your potential clients as like what's sometimes called staff augmentation.

00:12:52.420 --> 00:13:00.540
You are doing a technical job and they could hire someone to do it, but they're going to hire you and they give you decent consulting rates for it.

00:13:00.540 --> 00:13:03.900
But that's because you're working with the technical team and you're seen as an addition to that.

00:13:03.900 --> 00:13:13.900
But if you're solving high level business problems, saving them lots of money, helping them to achieve their goals, then you're going to be dealing with people at a higher level at the company and they will pay you appropriately.

00:13:13.900 --> 00:13:14.400
Yeah.

00:13:14.400 --> 00:13:19.120
And you probably get the type of outcome that you were looking for in the beginning.

00:13:19.120 --> 00:13:19.380
Right.

00:13:19.380 --> 00:13:27.240
If your outcome is I want more freedom, I want more autonomy, I want to choose my projects, I want to sort of be my own boss.

00:13:27.240 --> 00:13:31.160
You're not going to get that by just being like staff augmentation, as you pointed out.

00:13:31.160 --> 00:13:31.340
Right.

00:13:31.340 --> 00:13:31.780
That's right.

00:13:31.780 --> 00:13:32.920
And I mean, I'll go even further.

00:13:32.920 --> 00:13:37.500
Like, so when I do training, I'm not dealing with the technical teams and their budgets.

00:13:37.500 --> 00:13:44.960
I'm dealing with the HR department or that sort of department, the training department and their budgets, which are wildly different.

00:13:44.960 --> 00:13:47.760
And I might add different in like better for me.

00:13:47.760 --> 00:13:59.020
And then like the two don't have anything to do with each other because they see the training as a strategic advantage for the company and for the employees as opposed to, okay, we'll just get this website out faster.

00:13:59.220 --> 00:13:59.300
Right.

00:13:59.300 --> 00:14:06.280
Well, and if you're talking about training and consulting, you know, maybe you sell one week course to that one team and then they're good for years.

00:14:06.720 --> 00:14:10.180
On the other hand, if you are in the organization, you're taught the levels you're talking about.

00:14:10.180 --> 00:14:14.540
It's like, we have a plan to move our entire company over to Python in the next two years.

00:14:14.540 --> 00:14:15.920
We have 20,000 employees.

00:14:15.920 --> 00:14:16.920
How do we do this?

00:14:16.920 --> 00:14:18.520
These are not even similar.

00:14:18.520 --> 00:14:19.400
That's exactly right.

00:14:19.400 --> 00:14:21.300
Totally different scopes of problems.

00:14:21.300 --> 00:14:26.160
And I don't want to dog on staff augmentation because that's like half of our business here.

00:14:26.160 --> 00:14:27.000
So don't get me wrong.

00:14:27.000 --> 00:14:30.460
It's a really interesting way to have a job that still gives you more flexibility.

00:14:30.460 --> 00:14:37.940
And you probably can charge better rates than, you know, if you're just working locally at a small, I don't know, government agency in a small town.

00:14:37.940 --> 00:14:39.100
I don't know, making stuff up, right?

00:14:39.100 --> 00:14:40.260
There are certain benefits there.

00:14:40.260 --> 00:14:44.680
I mean, staff augmentation type work can be a little less risky, right?

00:14:44.700 --> 00:14:46.820
It can be a little longer term, a little safer.

00:14:46.820 --> 00:14:50.920
When you go into that role, I mean, you kind of are a butt in a chair, right?

00:14:50.920 --> 00:14:54.800
And that makes you a commodity, whether you like it or not.

00:14:54.800 --> 00:15:00.520
I mean, you really are like, you're going to feel a lot more market forces on the rates that you can charge.

00:15:00.520 --> 00:15:11.740
You're going to be, often cases in staff augmentation, you know, for like US-based freelancers, you might be in pretty strict rate competition with offshore models and things like that.

00:15:12.120 --> 00:15:15.460
That's different when you're not doing that kind of augmentation work.

00:15:15.460 --> 00:15:20.940
When you're working at the higher levels of the business, you don't necessarily have those same market forces that you're competing with.

00:15:20.940 --> 00:15:25.220
This portion of Talk Python To Me is brought to you by Linode.

00:15:25.220 --> 00:15:28.960
Are you looking for hosting that's fast, simple, and incredibly affordable?

00:15:28.960 --> 00:15:34.060
Well, look past that bookstore and check out Linode at talkpython.fm/Linode.

00:15:34.060 --> 00:15:35.960
That's L-I-N-O-D-E.

00:15:35.960 --> 00:15:40.380
Plans start at just $5 a month for a dedicated server with a gig of RAM.

00:15:40.380 --> 00:15:46.420
They have 10 data centers across the globe, so no matter where you are or where your users are, there's a data center for you.

00:15:46.420 --> 00:15:53.420
Whether you want to run a Python web app, host a private Git server, or just a file server, you'll get native SSDs on all the machines,

00:15:53.420 --> 00:16:00.840
a newly upgraded 200 gigabit network, 24-7 friendly support even on holidays, and a seven-day money-back guarantee.

00:16:00.840 --> 00:16:02.440
Need a little help with your infrastructure?

00:16:02.440 --> 00:16:07.200
They even offer professional services to help you with architecture, migrations, and more.

00:16:07.200 --> 00:16:10.160
Do you want a dedicated server for free for the next four months?

00:16:10.160 --> 00:16:13.200
Just visit talkpython.fm/Linode.

00:16:13.200 --> 00:16:21.160
One thing I do want to dive into is this mindset change that you have to make in order to be a good consultant.

00:16:21.160 --> 00:16:26.820
Now, let me try to start this topic off by way of an analogy from training.

00:16:26.820 --> 00:16:29.240
Maybe you'll connect with it, Ruben.

00:16:30.240 --> 00:16:39.160
If you're an employee and you have some project and you have to figure out, let's say, I need to talk to a database to do something or something like that, right?

00:16:39.160 --> 00:16:41.160
Well, in Python, we have lots of ways.

00:16:41.160 --> 00:16:45.520
You could talk to it through DBAPI2, just direct SQL queries.

00:16:45.520 --> 00:16:48.340
You could use SQLAlchemy or one of the other ORMs.

00:16:48.340 --> 00:16:52.880
You could say, I'm going to use a different database like Mongo and then use an ODM or talk directly to it.

00:16:53.200 --> 00:16:55.880
So there's all these ways in which you could solve your database problem, right?

00:16:55.880 --> 00:17:00.000
As an employee, if you find one way that works, you're good, right?

00:17:00.000 --> 00:17:02.100
Your project is now beyond that step.

00:17:02.100 --> 00:17:02.740
You're talking database.

00:17:02.740 --> 00:17:04.820
The next thing you need to do is add the next feature.

00:17:05.600 --> 00:17:16.060
As a trainer, if there's a way to talk to it directly with SQL, use an RM and all these other things, you need to know all the ways, the trade-offs of them.

00:17:16.060 --> 00:17:29.840
And you just have to have this mindset of like, it's not enough to just know how to solve this problem, but I need to know how to dive into the lower level and consider the trade-offs and consider all the things at a level deeper, I think, than if you're just an employee.

00:17:29.840 --> 00:17:34.560
I feel like there's a lot of stuff like that in the consulting world as well.

00:17:34.560 --> 00:17:37.500
I mean, obviously training is some flavor of consulting, right?

00:17:37.500 --> 00:17:48.340
So what do you think some of the mindset challenges are of, say, being just a standard employee where, you know, you just go to work, you work for eight hours, and, you know, hopefully something gets accomplished?

00:17:48.340 --> 00:17:52.960
I think there's a lot there, mindset difference, and I touch on maybe a couple of them.

00:17:52.960 --> 00:17:58.760
I mean, you know, one thing that stands out there is, for me, common tooling was always important, right?

00:17:58.760 --> 00:18:04.900
So solving a problem in a one-off way would work well within the confines of that project.

00:18:04.900 --> 00:18:17.140
But if I wanted to, and this maybe is getting a little ahead and thinking more about how you market and position yourself, but if you're coming in as a consultant, you're probably from an economic basis more expensive than an employee.

00:18:17.660 --> 00:18:19.420
And so you really need to be proving that value.

00:18:19.420 --> 00:18:23.760
And a lot of times that rolls down in this field into time, right?

00:18:23.760 --> 00:18:26.800
So how can I get in and solve this problem quickly?

00:18:26.800 --> 00:18:30.960
And that's the value that I'm providing is I can get in quickly and do it.

00:18:31.360 --> 00:18:33.320
And, you know, that may mean common tooling.

00:18:33.320 --> 00:18:44.040
So understanding kind of how to generally abstract a problem in the particular example you gave and say, you know, what's one really great tool that I know very well that I can go tackle these kind of database problems?

00:18:44.040 --> 00:18:52.760
This is my ORM I work with, or this is how I do these kind of things that maybe gives you a speed advantage that gives your customer margin, right?

00:18:52.760 --> 00:18:54.060
Is maybe one example.

00:18:54.060 --> 00:19:04.700
So I'm sure that most programmers know, like have had this experience of a non-technical friend or family member saying, I can't figure out how to do X.

00:19:04.700 --> 00:19:08.100
And you as a technical person are like, well, I really don't know anything about X.

00:19:08.100 --> 00:19:08.820
I can't help you.

00:19:08.820 --> 00:19:09.840
And they say, well, just try.

00:19:09.840 --> 00:19:15.140
And you walk up to the search screen and you type something to Google and bam, you have found the answer.

00:19:15.140 --> 00:19:17.960
And they're like, see, you did know about it.

00:19:17.960 --> 00:19:19.360
And you're like, no, no, I really didn't.

00:19:19.360 --> 00:19:21.780
And everyone might be right there.

00:19:21.780 --> 00:19:28.480
The thing is, because you have a background steeped in the right way of phrasing questions, you can find the answers more quickly.

00:19:28.480 --> 00:19:42.000
And so I always, when I was doing consulting projects, I would say to my clients, I'm probably going to have to spend some time, a third of the time, a quarter of the time learning new stuff to know how to do what you need or learning new technologies or finding the best way to do it.

00:19:42.000 --> 00:19:48.300
But I'm still going to be able to do that faster than someone who doesn't have experience because I have this accumulated knowledge.

00:19:48.300 --> 00:19:51.040
And I know what questions to ask and how to parse the answers quickly.

00:19:51.300 --> 00:19:53.200
And the same is also true in my training, right?

00:19:53.200 --> 00:19:55.840
So very often people ask me questions I don't know the answer to.

00:19:55.840 --> 00:20:02.160
And I then use it as an opportunity to learn new stuff, explain it back to them, and then I incorporate it the next time around.

00:20:02.160 --> 00:20:09.140
And so I'll never claim that I know everything, but I'll claim that I can like figure it out because of the experience faster than sort of the average person.

00:20:09.220 --> 00:20:09.740
Yeah, it's true.

00:20:09.740 --> 00:20:15.940
as a consultant and as a trainer, you spend a lot of time getting up to speed on something that you

00:20:15.940 --> 00:20:22.380
maybe are not an expert at. And so you have this polished skill of just how do I just learn this

00:20:22.380 --> 00:20:27.400
thing and make it work, right? And it's, you know, everyone in technology has to do that, but you do

00:20:27.400 --> 00:20:33.460
that on a weekly basis, probably, right? And Casey, you know, it's like people come to you guys and

00:20:33.460 --> 00:20:36.460
like, Hey, we have this project. It's kind of like stuff you've done before, but there's this whole

00:20:36.460 --> 00:20:40.620
different angle that you maybe have never touched. And so it's probably similar, right?

00:20:40.620 --> 00:20:45.580
Totally. I mean, we have clients come in and bring us a project and we know exactly what

00:20:45.580 --> 00:20:51.620
kinds of technology we might use, but we don't necessarily have any domain knowledge of their

00:20:51.620 --> 00:20:56.720
business or industry, right? And so that's the part that we have to get up to speed and apply it.

00:20:56.720 --> 00:21:00.820
And to go back to what Ruben just said, you know, the engineers in our team are sitting in that

00:21:00.820 --> 00:21:06.020
consultant role for our clients. And I remember in the early days going through some of our

00:21:06.020 --> 00:21:10.080
our billing logs and going to some of our consultant engineers and saying, Hey, why didn't

00:21:10.080 --> 00:21:15.260
you bill for that time? And they said, well, I didn't really know the answer to the problem.

00:21:15.260 --> 00:21:19.740
So I had to do some research and I said, Whoa, here's, and this is something we tell everybody

00:21:19.740 --> 00:21:25.780
when they start here. Now we're not necessarily getting paid to know the answer right off the

00:21:25.780 --> 00:21:30.640
top of our heads. We're getting paid to solve the problem. And part of the solving problem is

00:21:30.640 --> 00:21:34.660
knowing how to find the answers to questions. We don't know that bookends really nicely.

00:21:34.660 --> 00:21:39.600
And what Ruben just said, because we actually see that. And that is a good example of that

00:21:39.600 --> 00:21:45.180
mentality, not sort of intrinsically being there for people that go into consulting of like, well,

00:21:45.180 --> 00:21:49.440
I wasn't actually writing code. Therefore that time wasn't billable. Like, no, no, no. But the

00:21:49.440 --> 00:21:54.460
process of working that out and working through it and crafting that beautiful Google search query

00:21:54.460 --> 00:21:59.520
that dug up the result on the first page is a skill. And that's, that's precisely what we're

00:21:59.520 --> 00:22:02.760
being paid to do. So I think that's another great example of the mentality.

00:22:02.760 --> 00:22:07.360
That's a core foundation of problem solving. Let me tell you a really quick story. I just

00:22:07.360 --> 00:22:14.640
recently hired somebody in a halftime consultant role for doing some integration, single sign on,

00:22:14.640 --> 00:22:19.300
that kind of stuff with my courses. Guys doing a great job. And I interviewed a couple of people.

00:22:19.300 --> 00:22:24.280
One of the things when we were talking that was really nice was, I was like, Oh, maybe we could do

00:22:24.280 --> 00:22:28.100
this. What do you think about working that? And I kind of described the problem or I kind of thought

00:22:28.100 --> 00:22:32.660
some of the solutions might be. And the guy's like, that's probably not the right way. Like we can think

00:22:32.660 --> 00:22:38.200
about it, but I actually think that's not best. Here are the problems and you should think about it this

00:22:38.200 --> 00:22:42.780
other way. And I was just like, Oh, this guy's, he's got the job, right? If he's willing to say,

00:22:42.780 --> 00:22:48.040
no, you're not doing it right. Like, actually, I know, know you're pretty smart, but this situation,

00:22:48.040 --> 00:22:52.340
you should really think about this. And let me just try to guide you away a little bit. I'm like,

00:22:52.340 --> 00:22:57.640
oh, this is the type of guidance that this is the person I want that says, not just go,

00:22:57.640 --> 00:23:00.920
yeah, well, Michael told me to do this. So I did it right. Like, no, no, they have some

00:23:00.920 --> 00:23:04.320
expertise that's that I need them to come help me with. Right.

00:23:04.320 --> 00:23:09.960
Clear demonstration there of the difference in mindset of, you know, I'm here to solve the problem

00:23:09.960 --> 00:23:14.040
and provide expertise, not necessarily to implement a task list.

00:23:14.040 --> 00:23:18.380
Exactly. And you know, that was an interview to be hired. It wasn't like he was already hired and

00:23:18.380 --> 00:23:22.120
then talking, he was, I could have got upset and said, no, you've got to do it my way. Right.

00:23:22.120 --> 00:23:23.700
But of course, that's not my reaction.

00:23:23.700 --> 00:23:27.440
There are two things that come out of that story, by the way, which I think are important for people

00:23:27.440 --> 00:23:32.640
to realize. First of all, a lot of people who are new to consulting are afraid at that initial meeting

00:23:32.640 --> 00:23:37.940
of giving away the store. Well, I'm not going to give away any advice because like, that's what I'm

00:23:37.940 --> 00:23:41.420
going to be charging for. And if I give away the advice, they'll think I'm a sucker and they'll like,

00:23:41.420 --> 00:23:46.100
not pay me for it. No, no, no. They will be appreciative of you seeing knowledge and they'll want more of it

00:23:46.100 --> 00:23:49.000
because it can't possibly be that everything, you know, came out of that meeting.

00:23:49.000 --> 00:23:55.300
The second thing is, if you're a consultant, you want to be working for a client who is appreciative

00:23:55.300 --> 00:24:00.160
of that pushback. If you go to that initial meeting and you give pushback and the client or potential

00:24:00.160 --> 00:24:04.900
client is like, actually, I'm going to tell you what to write and how to write it. Like, you don't want

00:24:04.900 --> 00:24:07.380
to work for that person, right? You're not in the stenography business.

00:24:07.380 --> 00:24:14.100
That's a really good point. So maybe we could talk about choosing clients. You touched on that a

00:24:14.100 --> 00:24:19.540
little bit and even turning down work or firing clients where you feel like it's not working.

00:24:19.540 --> 00:24:25.240
So what are some of maybe some of the red flags or the green flags? Like when you see somebody like,

00:24:25.240 --> 00:24:30.760
I want to work with this team or that person, or I know to stay away from this time bomb.

00:24:30.980 --> 00:24:38.720
We've got a lot of those. Red flags are a long and ever evolving list for us. But I mean,

00:24:38.720 --> 00:24:43.260
there are some definite ones. And unfortunately, some of them may not come up until you're in the

00:24:43.260 --> 00:24:47.060
engagement. You're actually in and doing the work. There's some red flags that come in the production,

00:24:47.060 --> 00:24:51.980
but try and suss a lot of that out when I'm initially talking to a potential client.

00:24:51.980 --> 00:24:58.260
I think that when you start feeling very early on in the conversation, price pressure,

00:24:58.260 --> 00:25:03.760
it's a pretty good indication that someone's not really aligned in the value that you're providing.

00:25:03.760 --> 00:25:07.960
Right. And if you're constantly having to defend like, yes, that's going to take some time and it's

00:25:07.960 --> 00:25:12.820
going to take some money. You can expect that. I think if that's how the conversation is going

00:25:12.820 --> 00:25:17.920
before you've been written a check, that pressure is only going to get stronger after the check comes.

00:25:17.920 --> 00:25:23.000
That's kind of my mentality is like, okay, take everything that the client just told us in this

00:25:23.000 --> 00:25:29.780
kind of initial prospecting meeting and anything that was kind of felt like pressure or prickly or

00:25:29.780 --> 00:25:34.720
something we didn't like, expect that to be cranked up about 10x after they've actually paid you money

00:25:34.720 --> 00:25:35.720
because it will.

00:25:35.720 --> 00:25:37.460
Because now you're on the hook.

00:25:37.460 --> 00:25:37.800
Yeah.

00:25:37.800 --> 00:25:38.060
Yeah.

00:25:38.060 --> 00:25:39.400
And they've got skin in the game.

00:25:39.400 --> 00:25:42.740
It's not going to get better, right? They're not going to get nicer. They're not going to get

00:25:42.740 --> 00:25:46.820
nicer and give you less pressure after you start working for them, after they start paying you.

00:25:46.920 --> 00:25:47.360
Right.

00:25:47.360 --> 00:25:52.980
So that's one thing we look out for is that sort of stuff. And the other thing is, I mean,

00:25:52.980 --> 00:25:57.460
pricing comes a lot into this. And anytime that there's friction on pricing, I feel like that's

00:25:57.460 --> 00:26:03.340
the time to walk away. If you're really having to negotiate your upfront value, right? If you're in

00:26:03.340 --> 00:26:07.200
that conversation, you're really having to push hard, like, no, it's worth it. It's worth the time.

00:26:07.200 --> 00:26:11.520
It's worth the money. There's probably a misalignment there on their understanding of the value that

00:26:11.520 --> 00:26:15.960
they're getting. And that usually gets worse. I think people that have a good understanding,

00:26:16.000 --> 00:26:20.300
you know, clients that know why they're hiring and know what that time's worth. And that's implicit,

00:26:20.300 --> 00:26:24.640
get it. They've done the research. They've, they, maybe they've engaged with a consultant before.

00:26:24.640 --> 00:26:26.900
I think those are good green flags as well.

00:26:26.900 --> 00:26:30.900
Okay, cool. Reuben, what about you? What are some of your various flag signals?

00:26:31.240 --> 00:26:35.520
Yeah, definitely the price pressure thing. Like whenever I talk to someone about doing,

00:26:35.520 --> 00:26:39.240
I mean, nowadays doing training and they asked me what I charge and they're like, really,

00:26:39.240 --> 00:26:44.160
really? Yeah. Can we get a special deal? You know, we're going to give you lots of work

00:26:44.160 --> 00:26:49.200
and we have lots of content, lots of contacts. We will recommend you to lots of people,

00:26:49.200 --> 00:26:53.280
right? At least I'm out of the business of being heard, like being told, well, we'll give you equity in

00:26:53.280 --> 00:26:59.680
the company, which like, oh, please, you know, all these things are just basically a big, big red

00:26:59.680 --> 00:27:06.020
flags. A good thing is, I mean, in the training business, if there is a training manager who knows

00:27:06.020 --> 00:27:10.260
what they're doing and like how the whole game is played and they're from a large organization,

00:27:10.260 --> 00:27:15.380
that's going to need a lot of training. Wow. That is like the best because I know that I'll be able

00:27:15.380 --> 00:27:18.060
to come back there, you know, once every month, once every two months, once every six months,

00:27:18.060 --> 00:27:21.640
it's like basically guaranteed income. So long as I do a good job and they're happy.

00:27:21.640 --> 00:27:25.920
You also want to know that they're sort of just going to be easy to deal with. And that's a very

00:27:25.920 --> 00:27:32.040
fuzzy sort of thing. Typically I'm very bad. And maybe because I'm male, maybe because I'm a programmer

00:27:32.040 --> 00:27:38.140
or whatever, I'm bad at like feeling the vibes from a client. But when I come home and I tell my wife

00:27:38.140 --> 00:27:44.060
about like the client I met with, she will very well instinctively be like, you do not want to work

00:27:44.060 --> 00:27:48.020
with these people. I'm like, but, but, but she said, no, no, no, no. Like, like, listen to what you're

00:27:48.020 --> 00:27:52.340
saying. Listen to yourself. And these do not sound like good people to work with. Also,

00:27:52.340 --> 00:27:57.580
once someone has given you trouble, don't go back to them. Now it's very like the worst advice,

00:27:57.580 --> 00:28:02.460
the worst advice I ever got in my consulting career was in like the first month or two of it,

00:28:02.460 --> 00:28:06.260
where there's this lawyer I met. He said, okay, I've been in business for myself for many years.

00:28:06.260 --> 00:28:12.900
I'm going to give you great advice. Never say no to work. Always take work. This was literally the

00:28:12.900 --> 00:28:17.000
worst advice I've ever gotten because there's so many bad clients out there. And I actually believe this

00:28:17.000 --> 00:28:21.480
for a while. I would just like take everything unless you like are desperate for the money.

00:28:21.480 --> 00:28:22.400
And it does happen.

00:28:22.660 --> 00:28:26.220
I can imagine when you're getting started though, especially if you're getting started because you

00:28:26.220 --> 00:28:31.400
lost your job. It wasn't your, you couldn't plan ahead and build up towards it. Right. It's a tough

00:28:31.400 --> 00:28:31.760
trade-off.

00:28:31.760 --> 00:28:36.900
It's very hard to say no. And I'm not saying, you know, be principled and homeless, right? That is not

00:28:36.900 --> 00:28:43.780
my, my, my plan of action here. But if you have the option of like waiting a little bit and getting a

00:28:43.780 --> 00:28:49.400
better job and saying no to people who are clearly just going to cause you trouble, the trouble is not worth it.

00:28:49.400 --> 00:28:54.580
You're absolutely right on that. And, and you can say that, and I'm speaking from personal

00:28:54.580 --> 00:28:59.040
experience here. I think a lot of people have to make that mistake because people told me that over

00:28:59.040 --> 00:29:03.200
and over and over and over. Not worth it, you know? And it's like, but when you're hungry, you have a far

00:29:03.200 --> 00:29:07.520
less discerning palate and the best saltine I've ever eaten.

00:29:07.520 --> 00:29:14.720
Exactly. But, but ultimately, I mean, you learn those lessons the hard way and it's hard to be trying to get your

00:29:14.720 --> 00:29:20.960
personal business off the ground or your business and need the money, need the revenue and just like let an

00:29:20.960 --> 00:29:26.760
opportunity pass by. You just want to get your arms around everything. But hopefully someone out there is, is less

00:29:26.760 --> 00:29:31.440
stubborn than me and like takes that advice to heart because it really helps. But otherwise it'll

00:29:31.440 --> 00:29:35.940
probably happen once and you'll go, Oh man, that's what everyone told me. And that box gets kind of

00:29:35.940 --> 00:29:38.880
permanently. I get it now. Yeah. That's why they said this.

00:29:38.880 --> 00:29:45.540
Yeah. All right. So that's kind of the red flags for getting started a lot. Although Reuben, you just

00:29:45.540 --> 00:29:50.480
say if they give you trouble, don't necessarily come back asking for more of it. But what about firing

00:29:50.480 --> 00:29:54.420
clients? If you find yourself in a negative situation, how do you extract yourself?

00:29:54.420 --> 00:29:59.840
I'm very blunt about it. Like, I mean, I'll, I'll call them and I'll say, but it usually happens if

00:29:59.840 --> 00:30:03.740
they don't pay. That makes it pretty easy. That's a pretty big red flag there. Yeah. That's easy. Right.

00:30:03.740 --> 00:30:08.620
They don't pay. And then they say, but I'll pay you soon. And I really need more work. Ha ha. I don't

00:30:08.620 --> 00:30:13.280
believe you. And I'm not going to do more work. And I say, sometimes I'll be blunt and say, I'm sorry,

00:30:13.280 --> 00:30:18.240
I need clients who will pay me. Sometimes I'll say, I've got other opportunities going on and I'm going to work

00:30:18.240 --> 00:30:23.920
with those. And sometimes like, I just, you know, won't call them back. You know, that's very rare,

00:30:23.920 --> 00:30:29.580
but you got to fire clients. You've got incentive clients. And by the way, good clients who are not

00:30:29.580 --> 00:30:34.240
willing to pay you as much as other clients, you have to fire them too. Not because they're bad people,

00:30:34.240 --> 00:30:38.840
but because if I've got client A who's going to pay me, you know, something and client B is going to pay

00:30:38.840 --> 00:30:43.160
me twice something. Client B is worth more. Nothing, no way about, you know, two ways about it.

00:30:43.160 --> 00:30:48.080
I was personally, I'm too empathetic, maybe too empathetic to be doing what I do,

00:30:48.080 --> 00:30:52.860
but like I let myself be a doormat in a lot of like early situations like that.

00:30:52.860 --> 00:30:57.400
And I think that goes back to mindset. I mean, you really have to, even if you're not thinking,

00:30:57.400 --> 00:31:01.800
oh, I'm building a business, right? It's still business, right? You still have to make sure

00:31:01.800 --> 00:31:06.940
that you're capturing value, right? And every customer that's not paying or paying a little bit too

00:31:06.940 --> 00:31:12.600
little is even if you like them, there's a lost opportunity cost of having someone that pays you

00:31:12.600 --> 00:31:17.640
appropriately or on time or, you know, like there's intangible things. It's not just monetary compensation,

00:31:17.640 --> 00:31:23.540
it's stress. I really don't like being up at night stressed about an invoice. We don't let people do

00:31:23.540 --> 00:31:28.160
that to us very often. It's one thing when you have a great customer and it's a short-term problem,

00:31:28.160 --> 00:31:32.940
like those things come up, but definitely firing clients for us and for me when I was freelancing,

00:31:32.940 --> 00:31:37.980
being direct is really good. I really have to psych myself up for that phone call, you know,

00:31:37.980 --> 00:31:42.940
like I spend some time in front of the mirror, you know? Oh, yes. Yeah. I feel like there's a lot of people who,

00:31:42.940 --> 00:31:48.760
you know, they're programmers, they love code, they love solving problems, but they don't love confrontation.

00:31:48.760 --> 00:31:54.640
You know what I mean? And it just seems like there's probably some thick skin that has to be grown

00:31:54.640 --> 00:31:58.860
and some assertiveness maybe that you have to like build in yourself for some of these,

00:31:58.860 --> 00:32:02.580
some of these conversations are just hard, right? You have to fabricate it almost. I mean,

00:32:02.620 --> 00:32:05.860
not for everyone. I can't speak for everyone's personality. Yeah. For me, I think I would.

00:32:05.860 --> 00:32:09.500
I'm a programmer. Like I like working with machines. I don't like working with people.

00:32:09.500 --> 00:32:15.600
And so like definitely there's like some psych up to that, but I just, you know, make sure and kind

00:32:15.600 --> 00:32:21.480
of tell myself and reassert to myself that I don't necessarily owe anyone an explanation, right? If it's

00:32:21.480 --> 00:32:25.640
not good for business, it's not good for business. And particularly when you're out of the employee

00:32:25.640 --> 00:32:30.360
mindset and you're in the consultant mindset, no one else is looking out for your best interests anymore.

00:32:31.100 --> 00:32:34.380
Maybe they, you didn't have that many people necessarily looking out for your best interests

00:32:34.380 --> 00:32:38.560
as an employee, but you, you surely have less now. So that's your job.

00:32:38.560 --> 00:32:42.280
At least you had a shared interest with the people at the company, right?

00:32:42.280 --> 00:32:43.300
Exactly. Yeah.

00:32:43.300 --> 00:32:43.700
Yes.

00:32:43.700 --> 00:32:47.540
At least when the company survived, it probably you should survive because you seem to be

00:32:47.540 --> 00:32:49.220
contributing somehow or something like that.

00:32:49.220 --> 00:32:54.080
You no longer have an advocate beyond yourself with a client. And so that's kind of my mantra

00:32:54.080 --> 00:32:57.000
when I do that. I was like, I don't necessarily own an explanation. This isn't good for business.

00:32:57.000 --> 00:32:59.580
We're out. And that's how I kind of handle those conversations.

00:32:59.580 --> 00:32:59.820
Yeah.

00:32:59.820 --> 00:33:05.620
This portion of Talk Python To Me is brought to you by Brighter AI, named Europe's hottest

00:33:05.620 --> 00:33:10.900
AI startup by NVIDIA. They're leveraging AI to tackle the challenge of anonymizing video

00:33:10.900 --> 00:33:16.260
streams to seamlessly replace things like faces and license plates. And I'll let them tell you

00:33:16.260 --> 00:33:17.860
all about those in their own words.

00:33:18.100 --> 00:33:23.260
As a member of our team, you will take an integral part in shaping what anonymization means in a digital

00:33:23.260 --> 00:33:29.740
society. Alongside a highly dedicated international team, you will apply your industry proven Python

00:33:29.740 --> 00:33:35.260
skills and deep understanding of algorithms to design and implement data processing microservices

00:33:35.260 --> 00:33:40.940
in a high performance video pipeline. If you're up for the challenge, apply at brighter.ai

00:33:40.940 --> 00:33:47.640
slash jobs. We are looking for software and streaming engineers, DevOps, AI researchers,

00:33:47.640 --> 00:33:53.060
and team leads. Just visit talkpython.fm/bright to get started.

00:33:54.460 --> 00:33:58.780
There are times also when bad things happen and I've still decided to keep working with

00:33:58.780 --> 00:34:03.460
a client. I just changed my, like how I work with them. So I had one training client. The

00:34:03.460 --> 00:34:07.920
way it works is I say it's a daily price for the training for up to a certain number of people.

00:34:07.920 --> 00:34:11.640
And beyond that, you pay per person, trying to dissuade them from doing that. And the first

00:34:11.640 --> 00:34:15.660
time I did a training for this company, they said to me, okay, we didn't have anything over

00:34:15.660 --> 00:34:20.140
that number. So we don't have to pay anything extra. I said, no, but there were more people than that

00:34:20.140 --> 00:34:25.380
there. And they said, oh no, that couldn't possibly be. And I said, okay, look at the invite you sent

00:34:25.380 --> 00:34:29.660
out on the calendar, right? There were 25 people on the invite. You have to pay for the five extra

00:34:29.660 --> 00:34:34.000
people above 20. And so we went round and round and finally they agreed. They were like, oh, okay,

00:34:34.000 --> 00:34:38.840
well maybe if we invited that may fine. So I decided to do more training with them. And on the first day,

00:34:38.840 --> 00:34:43.860
like before we even started, I took a photo of the roster of the people who are going to be there.

00:34:43.860 --> 00:34:49.420
Training ends and they say, we didn't have above the number. And I send them the photo. I say,

00:34:49.420 --> 00:34:53.980
but these are all the people who are in the room and signed in. That couldn't possibly be,

00:34:53.980 --> 00:34:58.960
we can't fit that many people in the room. As you said, I didn't want to have this confrontation,

00:34:58.960 --> 00:35:03.120
but I was like, here's like the photographic evidence. So I wanted to keep working with them

00:35:03.120 --> 00:35:08.080
because not that often I do training for them and they did pay on time. But now I know like how to

00:35:08.080 --> 00:35:13.620
steel myself for working with them again. And they get lowest priority, right? When I have other

00:35:13.620 --> 00:35:16.740
companies that are willing to work with me because I just don't have that sort of agitation.

00:35:17.380 --> 00:35:20.700
You know, I'll do training for you, but we're setting up a time-lapse camera.

00:35:20.700 --> 00:35:20.900
Yeah.

00:35:21.400 --> 00:35:29.200
I like to think about the idea of, and this may sound kind of brutal, but that you should always be

00:35:29.200 --> 00:35:35.400
kind of working to fire your bottom 20% of your clients because that definitely leads, I mean,

00:35:35.400 --> 00:35:40.160
that is going to force you to improve your client base, but that may mean that your bottom 20%

00:35:40.160 --> 00:35:44.580
might not be clients that you hate. And obviously there's discretion to be shown there. Relationships

00:35:44.580 --> 00:35:49.680
are important. Don't get me wrong. But like, that's the sort of mentality that I like to keep is that

00:35:49.680 --> 00:35:56.020
someone's the lowest priority, someone's at the bottom. And the next opportunity that comes up

00:35:56.020 --> 00:36:01.680
that is optically looking better than that, we're going to bump them off. And I think that that may

00:36:01.680 --> 00:36:06.700
seem a little cold, but honestly, it's healthy for business. It keeps you on a progressing,

00:36:06.700 --> 00:36:08.960
improving trajectory with your client fit.

00:36:08.960 --> 00:36:10.120
Yeah, I can definitely agree.

00:36:10.200 --> 00:36:15.600
I have a fortune 100 company that I do a lot of training for, and they send me a question once

00:36:15.600 --> 00:36:22.020
for six to eight months. Are we paying you above average, average, or below average of your other

00:36:22.020 --> 00:36:27.320
clients? And basically they want to make sure that they're not in that bottom 20%. And indeed,

00:36:27.320 --> 00:36:32.100
like when I raised my rates, I waited, they were the last ones I told I was raising my rates. I raised

00:36:32.100 --> 00:36:35.720
them over the course of a year for new clients and other existing clients. Then I went to them and I said,

00:36:35.780 --> 00:36:39.460
you're now paying the least of anyone else. If I'm going to justify working with you, you've got to

00:36:39.460 --> 00:36:44.540
raise their rates. And that combined with their survey, they were like, okay, done. They want to

00:36:44.540 --> 00:36:48.240
preserve the relationship. And they realized they can't be the cheapskates.

00:36:48.380 --> 00:36:53.000
Yeah. Yeah. One of the things that's really, really, I think undervalued when you're an employee,

00:36:53.000 --> 00:36:57.040
but when you, when you build these relationships with these large companies, like the one you

00:36:57.040 --> 00:37:02.280
acknowledged are extremely slow and hard to build. But if you look at it from their perspective,

00:37:02.280 --> 00:37:07.400
they have so many people they could reach out to, but they want to just know who can I call? Who can

00:37:07.400 --> 00:37:12.980
I trust? I've got this problem. I need it. So I need some training Python. Ruben's been great. I'm not

00:37:12.980 --> 00:37:17.820
going to go shopping for more because I don't need to start that over and have a failed class for 20

00:37:17.820 --> 00:37:22.380
engineers. Let's just stick. Right. So once you build these relationships, they're pretty sticky.

00:37:22.380 --> 00:37:26.160
Moreover, when you said they're slow to build, everyone always told me that working with big

00:37:26.160 --> 00:37:32.440
companies took a long time. So twice, twice in the last year, twice in last year, like fortune 100,

00:37:32.440 --> 00:37:37.580
500 companies reached out to me and said, we want you to do training for us. So like I didn't have to

00:37:37.580 --> 00:37:42.440
market to them at all. They reached out to me. It took six months before each course happened.

00:37:42.440 --> 00:37:45.320
Just getting through like procurement and stuff like that.

00:37:45.320 --> 00:37:50.380
Everything. And let's talk about it and dates and content and on, on, on. And that's because

00:37:50.380 --> 00:37:56.120
they were really excited to work with me. Imagine a cold calling someone trying to convince them to

00:37:56.120 --> 00:38:01.320
work with you. It's going to take way longer than six months, way, way, way longer. But once those

00:38:01.320 --> 00:38:05.400
relationships happen, right, then you're in and you're in for a long time unless you really mess it

00:38:05.400 --> 00:38:06.320
up. Got at least six months.

00:38:06.320 --> 00:38:11.900
Those long sales cycles are challenging for obvious reasons. But like when it does drag out

00:38:11.900 --> 00:38:14.940
longer than that, you have this like whole different risk when you're working with big

00:38:14.940 --> 00:38:19.540
businesses like that and you're, you're trying to build that relationship, which is like you're 14

00:38:19.540 --> 00:38:25.480
months into like getting something put together. And then your advocate like restructured, moves away,

00:38:25.480 --> 00:38:28.120
different department fired, and it's just gone.

00:38:28.120 --> 00:38:28.420
Yeah.

00:38:28.540 --> 00:38:32.860
And it happens all the time with those long sales cycles because just the window for something like

00:38:32.860 --> 00:38:35.280
that to happen is that much bigger. That's always fun.

00:38:35.380 --> 00:38:40.260
Yeah. That's happened to me and that's, that's been bad. So let's touch on just a couple of other

00:38:40.260 --> 00:38:47.020
topics here that I think are really interesting. Reuven, you said you charged daily and you charge

00:38:47.020 --> 00:38:53.320
kind of a flat rate up to a point. Let's just talk about what should we charge and then, you know,

00:38:53.320 --> 00:38:56.440
what is the structure? There's, there's all sorts of interesting things like there's hourly,

00:38:56.640 --> 00:39:03.260
daily, weekly, there's flat fixed rate for a project. And then there's this whole concept of

00:39:03.260 --> 00:39:09.980
like creating like productized consulting where somebody might pay like a thousand dollars every

00:39:09.980 --> 00:39:14.540
month and then they can call on you for a certain amount of effort or things like this. Right. So

00:39:14.540 --> 00:39:20.820
what are your thoughts on how you should charge maybe early in your career of this freelancing story?

00:39:20.820 --> 00:39:25.600
And then as you get established, look, the easiest thing when you start off is to do hourly rates,

00:39:25.600 --> 00:39:29.540
right? And everyone talks about it. Everyone thinks about it. And when I do project work,

00:39:29.540 --> 00:39:36.100
I still do largely hourly rates because everyone just sort of goes like, it's the easy, it's the path

00:39:36.100 --> 00:39:43.820
of least resistance. It's not the path of greatest income. And it leads to all sorts of sort of friction

00:39:43.820 --> 00:39:47.620
because no matter what you do, the client's going to assume that you're padding it.

00:39:48.240 --> 00:39:51.560
So one of the nice things about me doing training now is indeed, and there are different ways to

00:39:51.560 --> 00:39:55.840
charge for training also, but I just charge, as you said, like a daily rate for up to X people,

00:39:55.840 --> 00:39:59.820
where X by the way, differs per country because they ask different numbers of questions are

00:39:59.820 --> 00:40:06.180
differently aggressive. And then basically a sort of penalty on top of that. And that has freed me from

00:40:06.180 --> 00:40:10.340
all this business of the hourly stuff. And it is one of the reasons why I enjoy the training so much.

00:40:10.340 --> 00:40:14.420
Yeah. It's pretty clearly bounded and there's not a lot of scope creep, right? It's not like,

00:40:14.420 --> 00:40:18.120
well, that feature was super hard to implement. Actually, we didn't realize it, right? Like,

00:40:18.120 --> 00:40:22.500
it was super hard to tell them about ORMs today. I don't know, right? It doesn't make any sense.

00:40:22.500 --> 00:40:26.800
In theory, like they could complain, well, you didn't touch on such and such a subject that was

00:40:26.800 --> 00:40:31.380
in the syllabus as much as you promised, but that has literally never happened. Like no one cares to

00:40:31.380 --> 00:40:31.740
that degree.

00:40:31.740 --> 00:40:34.680
I was too busy taking photos to prove the attendance in the room.

00:40:34.680 --> 00:40:34.960
Yeah.

00:40:37.020 --> 00:40:40.940
I definitely started with hourly rates. I think most people do. Like you said, Ruben,

00:40:40.940 --> 00:40:46.880
it's, it's path of least resistance. It's kind of old as sand, right? Customers are used to

00:40:46.880 --> 00:40:51.200
transacting in that way of, I mean, people all the time come and sit down with us for initial

00:40:51.200 --> 00:40:54.960
conversation and say, what are your hourly rates? Cause that's just what their expectation is.

00:40:54.960 --> 00:41:01.400
I did that. I agree. Not the path to building the most income, but it definitely the way to get

00:41:01.400 --> 00:41:02.160
started easily.

00:41:02.160 --> 00:41:04.820
I was going to say, before we move off of that, like, you know, what I'm thinking,

00:41:04.820 --> 00:41:11.920
let's suppose I make $40 an hour as an employee. I don't know. Like what would my consulting

00:41:11.920 --> 00:41:17.240
equivalent be? Because as we'll touch on in a minute, there are other fees, other taxes,

00:41:17.240 --> 00:41:22.300
other sort of friction and charges in your life when you're a consultant that doesn't happen when

00:41:22.300 --> 00:41:27.480
you're an employee. So what is like a good starter multiplier that you might like throw out there?

00:41:27.480 --> 00:41:28.500
Is that possible?

00:41:28.500 --> 00:41:34.580
I don't know that I have a multiplier like off the top of head because over time I've

00:41:34.580 --> 00:41:39.140
gotten to where that's probably, I'm an engineer, so it's probably overcomplicated, but here's my

00:41:39.140 --> 00:41:39.480
advice.

00:41:39.480 --> 00:41:40.840
We have a machine learning model for it.

00:41:40.840 --> 00:41:44.880
What I tell people when they ask that kind of question is whatever you do, don't take the

00:41:44.880 --> 00:41:48.820
income you want to make and divide that by 40 hours a week and set your rate there. Cause

00:41:48.820 --> 00:41:52.360
you're wrong. Cause what's going to happen is you're going to take a vacation, you're going

00:41:52.360 --> 00:41:53.600
to get sick, so on and so forth.

00:41:53.600 --> 00:41:58.100
There's going to be latency between a project starting or something like that as well. Yeah,

00:41:58.100 --> 00:42:04.280
exactly. And so what my advice always is, is to figure out what the constituent pieces of overhead

00:42:04.280 --> 00:42:10.060
would be. All of the stuff that costs you time at the very least start there on top of that,

00:42:10.060 --> 00:42:14.400
take the income that you think you're worth it. That I think, I think objectively you could go get on

00:42:14.400 --> 00:42:19.700
the open market and that's a good starting point as your basis, but then take 52 weeks,

00:42:19.700 --> 00:42:25.820
40 hours a week. You got 2,080 hours and then start deducting from those hours, right? Change

00:42:25.820 --> 00:42:29.420
that denominator and say, okay, I'm going to take two weeks of vacation. So now it's 2,000 hours.

00:42:29.420 --> 00:42:34.900
And I think everyone needs to factor vacancy into their rates. You're just not going to have projects

00:42:34.900 --> 00:42:40.240
cleanly lining up to one another. And it may feel kind of icky, this idea that you're charging people

00:42:40.240 --> 00:42:45.560
for time that you weren't working, but that's business. And you have to do that. Like every time

00:42:45.560 --> 00:42:50.380
you rent a hotel room, this'll help. Every time you rent a hotel room, know that you are paying for

00:42:50.380 --> 00:42:54.440
that hotel room and you're paying for a little piece of every other empty room in that hotel,

00:42:54.440 --> 00:42:59.560
because they're not running their business model under the assumption that every room is 100% booked

00:42:59.560 --> 00:43:03.860
all the time. They'd go broke. And it helps me, right? When I see that, and I know that as a consumer,

00:43:03.860 --> 00:43:08.280
I'm actually paying for it that like, okay, this is legitimate. So, you know, I factor in a vacancy

00:43:08.280 --> 00:43:14.620
percentage, like of some expected time, maybe it's 10 to 15, maybe 20% of your time might be vacant.

00:43:14.620 --> 00:43:19.180
You know, you need to find what works there and use that to start deducting from that denominator of

00:43:19.180 --> 00:43:25.060
hours and then take that income you're worth. And maybe now you're dividing that by 1,900 hours

00:43:25.060 --> 00:43:30.520
instead of 2,000, or you're dividing it by 1,500 hours, whatever it is, you know, you need to be honest

00:43:30.520 --> 00:43:36.120
with yourself about it and set your hourly rate from that. And then from there, you've got overhead in

00:43:36.120 --> 00:43:41.800
your pricing. Every time you line up two projects cleanly together, sweet, more profits, right?

00:43:41.800 --> 00:43:43.840
And that's kind of where I would start.

00:43:43.840 --> 00:43:48.460
And that aligns the incentives to have you do that kind of stuff, right? Like it encourages you to do

00:43:48.460 --> 00:43:53.800
those things. But yeah, it sets you up to not die if it doesn't happen. That's a great mindset thing.

00:43:53.800 --> 00:43:56.440
So I cut you off. You're talking about hourly and then some other options.

00:43:56.440 --> 00:44:02.900
Well, I definitely started hourly. We still have one legacy client here at our business that's on an

00:44:02.900 --> 00:44:10.700
hourly rate. But we moved to daily and eventually now we're at a place where weekly rates are what

00:44:10.700 --> 00:44:15.520
fit for us. And that kind of factors into how we package and sell our services. We, you know,

00:44:15.520 --> 00:44:21.960
we're doing a lot of R&D work. We're selling, we use Agile and the Scrum methodology. And so we're

00:44:21.960 --> 00:44:28.860
actually selling sprints. And when we work really hard to get customers mentally in a place where they

00:44:28.860 --> 00:44:33.500
understand that what we're doing is we're not committing to individual line items of scope.

00:44:33.500 --> 00:44:39.080
We're committing to some high level business objectives and we're setting a realistic plan

00:44:39.080 --> 00:44:43.720
for how we're going to work on this for the next 12 weeks. And we price it from there. And they

00:44:43.720 --> 00:44:47.720
understand that the budget controls are in their hand. Every time they come into a sprint planning

00:44:47.720 --> 00:44:51.960
session and say, hey, we'd like to prioritize this. We say, fantastic. This is what fell off the bottom.

00:44:51.960 --> 00:44:54.300
And if you still want to do that, we're going to need to do another sprint.

00:44:54.560 --> 00:44:59.180
That's relatively new for us, admittedly, but it's worked really well. We work on that kind

00:44:59.180 --> 00:45:05.660
of concept of weekly rates and it's gotten us out of the haggle of nitpicking individual hours,

00:45:05.660 --> 00:45:11.720
of shipping someone a timesheet of like, okay, I see you spent 42 hours. Tell me what those two hours

00:45:11.720 --> 00:45:17.080
were specifically for, right? You know, that's no fun. That's kind of where we've gotten because the

00:45:17.080 --> 00:45:22.920
hourly model, you are, to some extent, you're kind of diametrically opposed to the interests of your

00:45:22.920 --> 00:45:27.680
customer, whether you like it or not. It is in the customer's best interest for you to spend the least

00:45:27.680 --> 00:45:32.620
amount of time as possible from a financial perspective. And it's in your best interest from a financial

00:45:32.620 --> 00:45:37.360
perspective purely to spend the most amount of time as possible. Like if you look at it purely as economics,

00:45:37.360 --> 00:45:43.680
you have that tension. And when you move away from the hourly model, that tension can be resolved.

00:45:43.680 --> 00:45:48.920
But that doesn't make it easy. And a lot of times that involves customer education and finding that right

00:45:48.920 --> 00:45:54.000
client fit. So another red flag for me, client says, no, you got to build by the hour. You're not a fit

00:45:54.000 --> 00:45:55.560
for how we engage here. We won't do our best.

00:45:55.560 --> 00:46:00.900
That's interesting. I love the selling the sprints because that sells business value. And that speaks

00:46:00.900 --> 00:46:07.260
to the people paying the bills and making the decisions. And it's short enough that you deliver

00:46:07.260 --> 00:46:11.540
something that they can evaluate and decide how it's going, right?

00:46:11.680 --> 00:46:16.760
And I think that's really important when I talked about like starting out, figuring out what your rate is

00:46:16.760 --> 00:46:22.640
by looking at what your open market rate might be as a basis. If you want to charge above market,

00:46:22.640 --> 00:46:28.540
I think you can go and do that. And I think you should. But you got to figure out what value you're adding

00:46:28.540 --> 00:46:35.060
in order to be worth above market rate. And there are plenty of ways to add value of being more than just a coder.

00:46:35.700 --> 00:46:42.760
And, and, and, you know, for my business, that process of bringing that methodology and allowing

00:46:42.760 --> 00:46:47.960
the customers to have budget controls and ways to check in and good defined scopes along the way

00:46:47.960 --> 00:46:53.480
is the value that we're adding that justifies the premium that they pay for our services rather than

00:46:53.480 --> 00:46:57.100
building it in house or using a, you know, a cheaper firm or something like that.

00:46:57.100 --> 00:47:02.700
Yeah. Super cool. And for what it's worth, the guy that I hired, it's a weekly halftime.

00:47:02.700 --> 00:47:07.580
So it's nice and clear. It's just like, Hey, you know, what do you work on this week? And it's, it's not,

00:47:07.580 --> 00:47:11.960
I already know what next week's going to cost. Right. So it's, it's pretty straightforward. I like that.

00:47:11.960 --> 00:47:18.440
Let's wrap this up with some of the conversation around kind of where we started. Like I'm a programmer.

00:47:18.440 --> 00:47:26.340
I love coding. I love working on software. I want to go freelance. And it turns out I need to find clients.

00:47:26.340 --> 00:47:32.440
I need to do marketing. Oh my gosh, there's extra taxes in accounting. Do I need insurance?

00:47:32.440 --> 00:47:37.860
Do I need an LLC? Should it be an S corp? Do I need, I don't know, whatever. There's all these other

00:47:37.860 --> 00:47:43.620
things. So what are the things that people don't know that they just didn't realize they signed up

00:47:43.620 --> 00:47:47.120
for a self-education in when they go down the freelancing route?

00:47:47.120 --> 00:47:52.720
I mentioned a little bit before, but you know, people who are technical and want to become consultants,

00:47:52.720 --> 00:47:59.740
there's nothing wrong with that. But now you are running a business and that means you're dealing

00:47:59.740 --> 00:48:03.820
with all these other things. And so you need to at the very least make a list of all.

00:48:03.820 --> 00:48:05.440
Even as a business of one, right?

00:48:05.440 --> 00:48:05.820
Right.

00:48:05.820 --> 00:48:10.580
You don't have to be like Casey with a whole bunch of employees. You get a big chunk of this right away.

00:48:10.580 --> 00:48:17.000
Absolutely. Absolutely. You've got to like figure out the tax thing. Very, very important. In the US,

00:48:17.000 --> 00:48:20.980
you've got to deal with health insurance stuff, right? Like there are all these things that your

00:48:20.980 --> 00:48:25.760
employer previously dealt with that you probably didn't even think about very much.

00:48:25.960 --> 00:48:26.400
retirement.

00:48:26.400 --> 00:48:31.600
Oh, yes, yes, yes, yes. That's super, super important, right? All these different things

00:48:31.600 --> 00:48:35.860
that like you never even thought about or you saw it on your paycheck stub and now you have to actually

00:48:35.860 --> 00:48:39.660
deal with it. You're also taking on all the risk, right? One of the reasons, right? In case it was

00:48:39.660 --> 00:48:44.300
mentioning this earlier, one of the reasons why consultants charge much more per hour than employees

00:48:44.300 --> 00:48:50.040
in the end is because now you're taking on the risk of not having work or things not getting done or

00:48:50.040 --> 00:48:54.260
they're not paying you and on, on and on. So I would say if you're going to start consulting,

00:48:54.420 --> 00:48:59.700
have a cushion of some cash. People talk about different amounts of time. Let's say six months,

00:48:59.700 --> 00:49:03.880
right? Longer would be even better. It doesn't have to be a lot, but that's to be enough that if,

00:49:03.880 --> 00:49:07.680
as you know, with my clients, it took six months for them to actually do something and pay,

00:49:07.680 --> 00:49:11.960
you can survive that because you're going to have a lot of meetings. You're going to talk to people.

00:49:11.960 --> 00:49:17.720
You talked about the long spin-up cycle to get started, but there's also, we pay you when

00:49:17.720 --> 00:49:23.360
maybe you ship a sprint. And oh, by the way, that's net 30 or net 45. Did you know? So you got to

00:49:23.360 --> 00:49:27.400
wait till the next month and then another 30 days, like, wait, that's like nine months. What just

00:49:27.400 --> 00:49:28.340
happened here? Right?

00:49:28.340 --> 00:49:32.860
I remember the shock that I had when I discovered in Israel, it's pretty typical to play net plus 60.

00:49:32.860 --> 00:49:37.520
And I was like, wait, I just finished the work. What do you mean you're going to pay me in another

00:49:37.520 --> 00:49:43.600
like two and a half months? How can that possibly be? And then of course, you know, one of my favorite

00:49:43.600 --> 00:49:50.560
lines, that's our standard policy, right? And you've got to get used to it. So right. Even if

00:49:50.560 --> 00:49:54.540
you find a client right away and start working with them right away, it's probably going to be at a

00:49:54.540 --> 00:49:55.740
three, four months until you see any money.

00:49:55.740 --> 00:50:01.980
That is exactly what I am. I'm my first freelancing client. I just dove right into it. I did have some

00:50:01.980 --> 00:50:07.020
money put back and I'll add to that, like of having a cushion, have both a cushion and a willingness

00:50:07.020 --> 00:50:11.620
to cut back your lifestyle to extend the duration of that cushion. Cause I think I went in with like

00:50:11.620 --> 00:50:17.840
three months of cushion and then I got into a project and I got net 60 and it like, I ate ramen

00:50:17.840 --> 00:50:23.620
for many weeks waiting for this check to come. And then this check came and I was like, Oh my God,

00:50:23.620 --> 00:50:27.180
you know, it was three months worth of work in one check. And it was like, it was like the biggest

00:50:27.180 --> 00:50:31.120
check I had ever cached, but it was, I was so hungry. You know, I thought about eating it.

00:50:31.120 --> 00:50:38.080
And so I wasn't as, as prepared from, from a financial standpoint to jump into it. And so,

00:50:38.080 --> 00:50:45.480
but fortunately I guess like my mentality, I was willing to shut off all of my bills and like,

00:50:45.480 --> 00:50:50.360
I haven't had cable since. So that was kind of freeing and just like cut back on a lot of things

00:50:50.360 --> 00:50:55.420
and basically go into financial hibernation waiting for that first check to come. You know,

00:50:55.420 --> 00:50:59.380
so cashflow is a tricky thing that you don't, I never thought about before getting into the

00:50:59.380 --> 00:51:02.820
business. And now, now we look, cashflow is a constant thing. I'm always looking at

00:51:02.820 --> 00:51:07.560
because you can do the work and you know, from day one of the first day you wrote some code,

00:51:07.560 --> 00:51:10.200
it could be 60, 90 days before you ever get any money.

00:51:10.200 --> 00:51:14.260
Yeah. I also go through that. Obviously like with sponsors of the show, right? They maybe

00:51:14.260 --> 00:51:20.080
book stuff far ahead, but then, right. There's like you said, net 30, net 45, and there's just a lot of

00:51:20.080 --> 00:51:26.240
delays. Luckily on the course side of things, it's all wired straight up to Stripe. So somebody puts

00:51:26.240 --> 00:51:31.160
their credit card in the money's in the bank. Two days later, there's sort of these two parts and they

00:51:31.160 --> 00:51:33.300
counterbalance each other pretty well in my world.

00:51:33.300 --> 00:51:38.180
I agree. Like I definitely, I know. So I typically run like two big sales a year. Like I do a birthday

00:51:38.180 --> 00:51:44.360
sale. I do a black Friday sale. And I know that if my clients in those, at those periods, again,

00:51:44.360 --> 00:51:49.000
that's for my online courses. If my consulting, my training clients during those periods are

00:51:49.000 --> 00:51:54.020
paying slowly or, you know, it's another 30 days until I see it, those sales can actually help to fill

00:51:54.020 --> 00:51:54.920
in the blanks. Exactly.

00:51:54.920 --> 00:51:59.040
And I'll throw a tip out there. When you're negotiating those payment terms,

00:51:59.500 --> 00:52:04.860
we had a lot of success in, I say we, I mean, this was, this is something I did when I was still

00:52:04.860 --> 00:52:11.000
individually freelancing, man, throw a 1% discount on due on receipt. And you'll be surprised at how

00:52:11.000 --> 00:52:14.780
many companies go for that. Because I mean, when you're dealing with a large organization,

00:52:14.780 --> 00:52:20.600
like unless it just causes an absolute burden in their process, they'll take 1% discount any day.

00:52:20.740 --> 00:52:26.020
And so offering some little things like that can really help in speeding up your cash flow.

00:52:26.020 --> 00:52:30.680
And that saved me a couple times of like, I shouldn't even admit, but I think there've been

00:52:30.680 --> 00:52:34.380
times where we offered a 10% discount. It's like, it's cheaper than factoring an invoice

00:52:34.380 --> 00:52:39.280
to get some cash through. And so that's something else that I didn't realize. And I think is a,

00:52:39.280 --> 00:52:42.900
this is something that you'll learn that is a really good thing. Not necessarily like,

00:52:42.900 --> 00:52:46.680
oh, I didn't know that. And this is awful. Is that everything is negotiable.

00:52:47.020 --> 00:52:52.000
It's not like walking into the AT&T store to buy a phone. You can negotiate every term of a contract

00:52:52.000 --> 00:52:52.920
and you should.

00:52:52.920 --> 00:52:57.160
It's really hard though, to get that, you know, for a lot of people to have that negotiation.

00:52:57.160 --> 00:53:03.220
Cause again, like conflict adverse, just want to please and get this job and whatnot.

00:53:03.220 --> 00:53:06.760
Well, I would say maybe this helps is as a business, when we present a contract,

00:53:06.760 --> 00:53:10.340
I'll tell you right now, we present the contract and the terms in the contract are like,

00:53:10.340 --> 00:53:15.620
this is what we're offering up with the expectation that they're going to negotiate with us.

00:53:15.620 --> 00:53:19.100
And like, we present a contract with, that doesn't have our best terms.

00:53:19.100 --> 00:53:23.680
We're expecting people negotiate and we factor that into it. So know that other businesses are

00:53:23.680 --> 00:53:26.920
doing that. They're giving you, they may not be giving you their best terms. There actually

00:53:26.920 --> 00:53:32.000
probably is some flexibility because savvy companies kind of know that that's going to happen. So

00:53:32.000 --> 00:53:35.520
negotiate, like, don't be afraid of it. Often it's being expected.

00:53:35.520 --> 00:53:38.420
I love those tips. I love those tips. I may take some of them.

00:53:38.420 --> 00:53:42.420
I'll take a royalty on those. Yeah. 1% of the 1%.

00:53:42.840 --> 00:53:46.360
I had a big company contact me. It was probably like a year, year and a half ago

00:53:46.360 --> 00:53:51.100
and everything sounded great. And they said, Oh, and by the way, you're going to have to send us

00:53:51.100 --> 00:53:56.120
what's called in Israel, like a tax receipt in order to get paid. Now tax receipt basically says,

00:53:56.120 --> 00:54:00.560
I have received the money and thus I owe the taxes on it. And they said, and then we'll pay you net plus

00:54:00.560 --> 00:54:05.920
60. I was like, wait, you're telling me that to pay the taxes before I paid. I said, you realize

00:54:05.920 --> 00:54:09.120
it's not legal anymore in Israel that I can just send you sort of a general invoice.

00:54:09.120 --> 00:54:14.440
And this company basically said, well, tough luck. This is what we've been told by our like

00:54:14.440 --> 00:54:19.160
masters in California who don't care about Israeli law. And I said, all right, I'm not going to do

00:54:19.160 --> 00:54:22.980
this. Oh, wait, wait, wait, wait, wait. Actually, we found a way that we can funnel.

00:54:22.980 --> 00:54:24.840
I just remembered. Yeah.

00:54:26.160 --> 00:54:28.500
Right. We can funnel it through a third party.

00:54:28.500 --> 00:54:32.660
There was that other contract in my pocket.

00:54:32.660 --> 00:54:37.640
And I said, am I going to have to pay for funneling through this third company? Oh no,

00:54:37.640 --> 00:54:42.600
we'll pay for that. Don't worry about it. So if you just show a bit of backbone, very often,

00:54:42.600 --> 00:54:46.320
they will be willing to back down. I mean, at the end of the day, these are just people doing their

00:54:46.320 --> 00:54:50.300
jobs, right? Like at the end of the day, it's just people. And if you are giving a good product or

00:54:50.300 --> 00:54:54.820
service, they want to look good to their bosses. And so they want to show they brought a good supplier

00:54:54.820 --> 00:54:58.860
that makes them look good. So, you know, a little bit of money is not going to affect it.

00:54:58.860 --> 00:55:02.580
And I think that there's a delicate balance there on when we talked about red flags earlier.

00:55:02.580 --> 00:55:06.300
I think that, you know, if you have to push a little bit to get your best deal, that's okay.

00:55:06.300 --> 00:55:10.640
But if you have to push too much, that can take you into the territory of, do I really want to work

00:55:10.640 --> 00:55:15.280
with this group? Like if they really brought me an awful deal, like that's one of the worst things is

00:55:15.280 --> 00:55:20.360
like you turn down a deal and then like you're so far off on price or something that you're,

00:55:20.360 --> 00:55:24.340
you know, they say, well, we're willing to pay this rate and it's 25% less than your rate.

00:55:24.480 --> 00:55:27.960
And you say, nah, no, thanks. And they go, okay, nevermind. We'll pay your rate. It's like, okay,

00:55:27.960 --> 00:55:33.380
well, like that doesn't give me a lot of confidence that you're not trying to work me over here. You

00:55:33.380 --> 00:55:37.020
know, like if you were comfortable with that rate in the first place, why'd you make this offer? So

00:55:37.020 --> 00:55:41.940
you got to balance that. Definitely. Someone brings you a bad deal and you have to negotiate to survive.

00:55:41.940 --> 00:55:44.220
That's probably a bad, bad customer.

00:55:44.220 --> 00:55:49.820
That's good advice. You know, I want to come back really quickly to this hourly versus weekly

00:55:49.820 --> 00:55:58.080
and net 30 and getting paid after and all this stuff. So when I started this whole thing that I'm

00:55:58.080 --> 00:56:02.900
doing with the podcast and the courses and stuff, there would be times where maybe I would sell six

00:56:02.900 --> 00:56:08.840
months worth of ads or like you said, Ruben, there'd be some like a new course launch and that would bring

00:56:08.840 --> 00:56:13.740
in a lot of revenue, but then it would take two weeks or sorry, two months for me to write the next

00:56:13.740 --> 00:56:19.520
course or for those ad slots to be used up before I can do it again. So I would get these big checks

00:56:19.520 --> 00:56:25.180
like Casey talked about. They're like, sweet, look at this. But then I would have to go a really long

00:56:25.180 --> 00:56:30.620
time without getting, it was no longer every two weeks, my direct deposit shows up. It could be months

00:56:30.620 --> 00:56:37.080
and it's unknown what the next destination is going to be. And obviously preparing as you all spoke

00:56:37.080 --> 00:56:41.160
about, it makes a lot of sense. But the other part I want to talk about, just get your thoughts on what,

00:56:41.160 --> 00:56:47.400
you know, sort of helping my family adjust to this world that they didn't necessarily, they were

00:56:47.400 --> 00:56:52.380
supportive of, but didn't necessarily buy into. Like I know my wife and I, we would be financially

00:56:52.380 --> 00:56:56.700
planning and like, oh, we got to pay these bills or this too much coming up for the kids or whatever.

00:56:57.360 --> 00:57:02.680
And all of a sudden all that had to get reworked. Like what are y'all thought on, on this? I think

00:57:02.680 --> 00:57:08.200
that's maybe something you have to adjust to. Even when the money is good, it's still like way more

00:57:08.200 --> 00:57:12.600
erratic. I definitely had some personal adjustment, but I'll defer to Reuven. Maybe he has insight.

00:57:12.600 --> 00:57:19.900
I was fortunately had the disposition of being single when I made that jump. And so when I, when I met my

00:57:19.900 --> 00:57:25.220
partner, I was already in freelancing. And so she just sort of, she kind of knew what she was getting

00:57:25.220 --> 00:57:29.860
into jumping into it. And so that, that sort of self-selected. So I don't have any advice there.

00:57:29.860 --> 00:57:32.660
That may not be helpful. I had to work that over for myself.

00:57:32.660 --> 00:57:34.220
But you had the ebb and float.

00:57:34.220 --> 00:57:39.120
Yeah. And I had to manage my own cash for those long periods of time and being conservative

00:57:39.120 --> 00:57:44.620
financially is really smart there. But outside of, I had the luxury of not having to adapt.

00:57:44.620 --> 00:57:49.440
It wasn't affecting anyone else's lifestyle, but my own. So I was fortunate in that regard.

00:57:49.440 --> 00:57:51.380
That's cool. You kind of got to be a financial camel.

00:57:51.600 --> 00:57:54.300
Yeah, exactly. Yeah. Retain, retain money.

00:57:54.300 --> 00:57:55.680
Reuven, go for it.

00:57:55.680 --> 00:57:57.040
Exactly.

00:57:57.040 --> 00:58:02.280
My wife and I met when I'd already been freelancing for about four years. And for her, it was kind of

00:58:02.280 --> 00:58:05.560
weird that I didn't know exactly how much I was going to make each month. And like, it went up and

00:58:05.560 --> 00:58:10.920
down. She would definitely say to me, okay, like, you know, how's next month looking? So that we'd know

00:58:10.920 --> 00:58:15.120
if we could buy something or if we couldn't buy something. And, you know, one of the nice things about

00:58:15.120 --> 00:58:20.520
training is that I now sort of schedule things way far in advance. So I know what a month is going to

00:58:20.520 --> 00:58:24.280
look like pretty much, you know, even three, four, five months in advance where I'm going to be and

00:58:24.280 --> 00:58:28.140
what it's going to be looking like, which has definitely helped with our stability and our good

00:58:28.140 --> 00:58:32.540
things. I should add, by the way, my kids were all born. I have three kids. They were all born like

00:58:32.540 --> 00:58:37.400
years after I started freelancing. And I remember saying to them a few years ago, you know, most adults

00:58:37.400 --> 00:58:42.720
go to the same place each day and work with the same other people each day. And they were like,

00:58:42.720 --> 00:58:44.580
no way. That sounds crazy.

00:58:44.580 --> 00:58:47.380
That's awesome.

00:58:47.380 --> 00:58:53.060
I would say the biggest sort of the two things that my wife and I should have done years ago when we got

00:58:53.060 --> 00:58:58.680
married, which sounds like Casey was smart enough to do, was we started finally a few years ago budgeting.

00:58:58.680 --> 00:59:04.020
Like, let's figure out how much we're going to be like spending. And that took off a lot of pressure

00:59:04.020 --> 00:59:09.300
for me for earning as much as I possibly can every month. As long as I can earn my salary,

00:59:09.300 --> 00:59:13.920
I'm calm. And anything above that is gravy, but I don't have to be killing myself to earn,

00:59:13.920 --> 00:59:17.740
you know, as much as possible 24 hours a day. The other thing we started doing as part of this

00:59:17.740 --> 00:59:23.480
whole budgeting thing was, as Michael said before, we started saving for retirement years too late.

00:59:23.480 --> 00:59:27.480
I mean, we'll still have something for retirement and everything. You cannot start putting away money

00:59:27.480 --> 00:59:32.040
for retirement early enough. I cannot stress this enough, especially to young people thinking about

00:59:32.040 --> 00:59:35.660
freelancing. Start ASAP and don't look back.

00:59:35.660 --> 00:59:39.700
And also a latecomer to that. I mean, like, I think that overall goes into,

00:59:39.700 --> 00:59:43.920
if I could do it all over again, I wish I could, before jumping into this world,

00:59:43.920 --> 00:59:49.720
really train myself up on just some financial literacy that I was lacking, because that would

00:59:49.720 --> 00:59:54.120
have been helpful in the beginning. And it pays off dividends long run on the retirement side.

00:59:54.120 --> 00:59:58.680
And I was well out of freelancing and into running a company before I even started thinking about

00:59:58.680 --> 01:00:02.500
that, which is unfortunate. But definitely, if you can factor that into your model,

01:00:02.500 --> 01:00:03.900
you'll be that much more successful.

01:00:03.900 --> 01:00:08.020
Absolutely. The retirement stuff does feel like something like, I can just kick that down the

01:00:08.020 --> 01:00:13.840
road. You know, I cannot put off taxes because I might go to jail. So we got to do that. And I

01:00:13.840 --> 01:00:19.620
got to have clients. So I better learn marketing. But I could probably kick retirement down until I've

01:00:19.620 --> 01:00:22.780
got a handle on the other stuff. And you know, maybe that is the right thing to do, but

01:00:22.780 --> 01:00:23.920
shouldn't kick it very far.

01:00:23.920 --> 01:00:27.740
It's one of those things that I think we can lie to ourselves pretty easily, especially if you're

01:00:27.740 --> 01:00:33.380
going into consulting or freelancing, under the pretense of entrepreneurship, right? It's really

01:00:33.380 --> 01:00:38.500
easy when you're excited, and you're motivated, and things are going well to be like, hey, you know

01:00:38.500 --> 01:00:42.400
what, I don't need to think about retirement, I got to grow this business. I'm going to be charging

01:00:42.400 --> 01:00:47.600
$1,000 an hour in five years. And I'll, you know, I'll just work for a year and retire on that, or,

01:00:47.600 --> 01:00:51.860
you know, and maybe you will, right? I don't think there's anything wrong with having those sort of

01:00:51.860 --> 01:00:57.420
aspirations. But the pressure is a lot less when you know that you don't have to, right?

01:00:57.420 --> 01:01:03.580
Financial pressure sucks. That's my advice. And so I do everything I can to not have any.

01:01:03.580 --> 01:01:07.900
Yeah, let me like wrap that back around. We talked about like getting clients, we talked about

01:01:07.900 --> 01:01:13.660
the right clients, the red flags. If you don't have that financial pressure as much, you can make better

01:01:13.660 --> 01:01:17.640
choices at the beginning of projects and the beginning of engagements that keep you happier.

01:01:18.240 --> 01:01:22.480
Right, you're not forced into like, I'm really in the corner here, I got to just take it.

01:01:22.480 --> 01:01:27.640
Sales solves everything. And one of the biggest problems it solves is it is simply, it's not about

01:01:27.640 --> 01:01:31.080
selling, closing every deal that comes in front of you and making a bunch of money.

01:01:31.080 --> 01:01:38.180
One of the greatest luxuries of having a good pipeline of clients is the flexibility to be

01:01:38.180 --> 01:01:42.580
choosy with which ones you work with. I mean, that's a beautiful luxury that you don't have when

01:01:42.580 --> 01:01:48.340
you're hungry. But if you can get there, ultimately, you're always picking for better client fit. So

01:01:48.340 --> 01:01:53.840
aim to be choosy. That's a great goal to have more than any other financial goal. Like I would tell

01:01:53.840 --> 01:01:59.420
people, don't be focused on how much money I can make. Be focused on the idea of I will get to pick

01:01:59.420 --> 01:02:05.060
the projects I work on. Because for me, that's a much healthier life to live, like from a stress

01:02:05.060 --> 01:02:05.580
perspective.

01:02:05.580 --> 01:02:10.600
I'm gonna go even further than that. I agree with everything you say. But the fact that I now

01:02:10.600 --> 01:02:16.380
have some like choosiness and financial stability has also helped my emotional health and my marriage,

01:02:16.380 --> 01:02:22.440
right? It means that I can actually concentrate on these relationships. And I'm not constantly stressed

01:02:22.440 --> 01:02:26.020
over Oh, my God, Oh, my God, Oh, my God, I don't have enough days of consulting work next month.

01:02:26.020 --> 01:02:28.520
What are we going to do to pay for XYZ?

01:02:28.520 --> 01:02:32.760
Absolutely. Yeah, it's good all around. All right, there's so many more things we could talk about.

01:02:32.760 --> 01:02:37.120
We might have to do a follow up show at some point. But I wouldn't be respectful of your time. So

01:02:37.120 --> 01:02:42.140
probably gonna have to wrap it up there. Now I'm gonna ask the two regular questions at the end and

01:02:42.140 --> 01:02:46.740
give you all a chance for a final call to action. So if you're gonna write some Python code, what editor

01:02:46.740 --> 01:02:47.960
do you use? Reuben, start with you.

01:02:47.960 --> 01:02:50.840
The only editor that exists, as far as I know, GNU Emacs.

01:02:50.840 --> 01:02:55.040
I've heard vicious rumors that other editors exist.

01:02:55.040 --> 01:02:56.700
Another list.

01:02:56.700 --> 01:03:00.480
It's both an editor. Yeah, it's an editor and an operating system. It's all good.

01:03:01.900 --> 01:03:11.280
Yeah, definitely call. I was hardcore PyCharm for a long time. But I made the shift to pure evil. And I use Visual

01:03:11.280 --> 01:03:14.200
Studio code. That's cool. I still go back to PyCharm every once in a while.

01:03:14.200 --> 01:03:27.280
Yeah, I like both of those. And I definitely think the momentum around PyCharm is growing. It's doing some cool stuff. So also nice. All right. And then notable PyPI package, maybe not the most popular one, but something you came across like, oh, man, this is super cool. People should know about

01:03:27.280 --> 01:03:28.280
this. Casey?

01:03:28.280 --> 01:03:33.960
Casey? No, let Reuben go first, because I got to look one up because it's awesome, but I can't remember the name of it. All right. Go, Reuben.

01:03:34.120 --> 01:03:51.340
Okay, I'm just going to go like a super ridiculously easy default, the one I use every day for my teaching, which is Jupyter Notebook. You know, Jupyter Notebook, Jupyter Lab. I know it's like boring and everyone uses it. But oh my God, it has changed my teaching dramatically. Because not only can I show them what I'm doing, but I can then send them the document and they can play with it themselves at home.

01:03:51.500 --> 01:03:52.940
Super cool. Casey, you find yours yet?

01:03:52.940 --> 01:04:11.220
I'm going to put a little addendum in there because I just found something. Actually, you're right. I just found something this week called Git Auto Push. Git Auto Push takes your Jupyter Notebook, commits it to Git, and pushes it to GitHub. And then you can share when you're doing live lectures. Has changed my life in three days of using it.

01:04:11.220 --> 01:04:11.840
That's pretty sweet.

01:04:11.840 --> 01:04:12.580
Oh, that's awesome.

01:04:12.580 --> 01:04:20.620
We could use that on a client project. We do a lot of Jupyter stuff. Very cool. Jupyter Labs and Jupyter Hub are also really neat. Mine is AsciiMatics.

01:04:20.620 --> 01:04:21.520
AsciiMatics.

01:04:21.520 --> 01:04:35.340
Yeah, you got to check this out and maybe find an example of it implemented somewhere. But it's a, I'm reading from the description, a package to help people create full screen text UIs from interactive forms to Ascii animations on any platform.

01:04:35.440 --> 01:04:49.980
So it's like build a console UI that is animated like the Matrix, and it is awesome. It serves no actual practical purpose whatsoever that I know of, but it is so cool. It's like building UIs from the movie Hackers.

01:04:50.120 --> 01:05:07.800
Yeah, yeah, that's a great one. I'll go ahead and throw one out as well. I just ran across something called HTTPX, which is a library that is 100% compatible with requests, but adds on HTTP2, as well as several levels of async integration and some other cool stuff.

01:05:07.800 --> 01:05:11.500
So very cool if you're looking to do a little more than just straight requests.

01:05:12.340 --> 01:05:23.520
All right. Final call to action, guys. Someone out there listening, they're excited. They're like, okay, I think I've got all these lined up. That was great advice. I want to get started. What do they do? What are the first steps? What's first month look like?

01:05:23.660 --> 01:05:35.940
Maybe this isn't helpful advice, but it's the advice that I give all the time, which is you want to jump into freelancing. If your first question is, how am I going to find my first client? My advice is don't do it.

01:05:36.440 --> 01:05:53.320
I don't mean don't ever do it, but I do think that you should know who your first couple of clients are before you make the jump. It's going to take the pressure down quite a bit. And that may mean either taking a position in the consulting world to get a taste of that business if you hadn't had it, or just bootstrapping your network.

01:05:53.320 --> 01:06:18.400
Call on people that you've worked with. At least get that lined up before you quit your day job. And like for me, I was able to make a few phone calls. I had some good contacts. And from the day I decided I was going to quit my day job to go on into freelancing, it took me like three weeks. I had a couple potential projects lined up, and then I pulled the trigger. So it doesn't necessarily mean like stay in your career for another year, but definitely know who those first couple of projects might be and try and stagger them.

01:06:18.400 --> 01:06:23.780
Good advice. Do the legwork to not land in an empty pool when you jump.

01:06:23.780 --> 01:06:25.920
Totally. Yeah. That hurts your legs.

01:06:25.920 --> 01:06:45.880
All right. So I'm going to extend the swimming and pool metaphor here. So it's a very common to think that if you're going to succeed in freelancing or in business in general, you want to be all things to all people. And this turns out to be not the case. You want to be, as it were, the big fish in the small pond.

01:06:45.880 --> 01:06:56.740
You want to be really well known for something. The analogy that I've heard numerous times is if your sink is clogged and you open the yellow pages and you see lots of plumbers and one plumber says, I unclog sinks.

01:06:56.740 --> 01:07:01.760
Well, maybe there aren't a lot of people who need that particular service, but the people who need it are going to jump to that ad.

01:07:01.760 --> 01:07:16.660
You want to be the person who solves one particular problem really, really well. And I would say before or while you're starting up, Philip Morgan's book, The Positioning Manual, is fantastic, both in helping you to figure out what do you want to work on?

01:07:16.740 --> 01:07:29.720
What is your niche? And does a great job of getting rid of your fear at doing this. They're like, wait, I'm going to be turning away 90% of my clients. Isn't that the most idiotic thing I've ever done? And no, it's actually the thing that's going to save you and make you stand out.

01:07:29.720 --> 01:07:42.500
Yeah, that's really good advice. It's a great analogy, right? If you get sick, if you have a heart attack, you don't want somebody who's a general practitioner. You're going to go find the doctor who is a heart specialist.

01:07:42.860 --> 01:07:55.800
If you get accused of murder, you're not going to get the general attorney. You're going to get the criminal murder defendant, right? Like, yeah, you kind of want to be in that place. That helps you definitely get first reached out to and also maybe have higher rates, justify higher rates.

01:07:55.800 --> 01:07:56.260
For sure.

01:07:56.260 --> 01:08:02.060
All right. You guys, this was a really fun conversation. Hopefully it helps some folks out there and keep doing what you're doing. It's pretty awesome.

01:08:02.060 --> 01:08:03.120
Thanks so much. It was great.

01:08:03.120 --> 01:08:03.980
Awesome. Thanks, Mike.

01:08:03.980 --> 01:08:04.780
Yep. Bye, guys.

01:08:04.780 --> 01:08:08.480
This has been another episode of Talk Python To Me.

01:08:09.160 --> 01:08:15.680
Our guests on this episode were Reuven Lerner and Casey Kinsey, and it's been brought to you by Linode and Brighter AI.

01:08:15.680 --> 01:08:19.860
Linode is your go-to hosting for whatever you're building with Python.

01:08:19.860 --> 01:08:25.320
Get four months free at talkpython.fm/linode. That's L-I-N-O-D-E.

01:08:25.320 --> 01:08:32.680
Work in the hottest new area of Python, machine learning, with Europe's hottest AI startup, Brighter AI.

01:08:32.680 --> 01:08:37.380
Visit talkpython.fm/bright to apply today.

01:08:38.140 --> 01:08:39.380
Want to level up your Python?

01:08:39.380 --> 01:08:44.240
If you're just getting started, try my Python Jumpstart by Building 10 Apps course.

01:08:44.240 --> 01:08:52.400
Or if you're looking for something more advanced, check out our new async course that digs into all the different types of async programming you can do in Python.

01:08:52.400 --> 01:08:57.060
And of course, if you're interested in more than one of these, be sure to check out our Everything Bundle.

01:08:57.060 --> 01:08:58.940
It's like a subscription that never expires.

01:08:59.500 --> 01:09:01.240
Be sure to subscribe to the show.

01:09:01.240 --> 01:09:03.740
Open your favorite podcatcher and search for Python.

01:09:03.740 --> 01:09:04.880
We should be right at the top.

01:09:04.880 --> 01:09:13.860
You can also find the iTunes feed at /itunes, the Google Play feed at /play, and the direct RSS feed at /rss on talkpython.fm.

01:09:13.860 --> 01:09:15.960
This is your host, Michael Kennedy.

01:09:15.960 --> 01:09:17.460
Thanks so much for listening.

01:09:17.460 --> 01:09:18.520
I really appreciate it.

01:09:18.760 --> 01:09:20.280
Now get out there and write some Python code.

01:09:20.280 --> 01:09:40.280
I'll see you next time.

01:09:40.280 --> 01:10:10.260
Thank you.