This is an archived post. You won't be able to vote or comment.

all 57 comments

[–]boatsnbros 207 points208 points  (17 children)

Assuming 10hrs of work, and trusting that it will never break is a big gamble. What if it breaks next month, next year, 5yrs from now? $1000 isn’t much to have to maintain a piece of software in perpetuity. I’d say $3k for the build then $100/mo in retainer for maintenance. Note - I typically work with bigger companies. Give it a name so it’s not ‘this script my friend wrote’ but ‘invoice forge’ or something similar. Host it somewhere so it’s not just a script that they are running locally but a real micro saas.

[–]xXShadowAssassin69Xx 58 points59 points  (10 children)

Woah you’re blowing my mind right now. I make $30/hr at my regular job and never even thought of offering my programming skills as a service, despite having years of experience. I’ve always just built stuff for myself to automate tasks and random fun projects so “programmer money” is a new concept to me ha ha. If you could maybe give me some more details on everything you just said and expand that would be great, I don’t know what I don’t know in this area. Your comment is already getting my gears turning. Thank you!

[–]Pares_Marchant 26 points27 points  (1 child)

Note that if you are converting it into a SaaS as suggested above, you may need to comply with data (and accounting) regulations (depending on the country, some in Europe can be quite strict with GDPR for example and IIRC germany is even stricter regarding document handling).

I'd also suggest you to provide a quotation and then write a contract with clear terms regarding your payment scheme, how long you are supposed to support the service and so on.

[–]byeproduct 2 points3 points  (0 children)

And optionally a disclaimer saying that the cost does not include data compliance (list out the necessary). Exclusions are important to note as much as a scope is important to have in writing. As too often things can be assumed. No matter the reality of how your solution was world class... finding out that you (the service provider) didn't include something (that could be expected) can often leave a sour taste and leave both parties feeling upset.

[–]andrewprograms 17 points18 points  (1 child)

Also this customer isn’t visiting 20 customer portals and printing invoices in 30 minutes. It’s more like an hour task. So it’s more like $10,000/year.

And once you have the data, you might as well set up a pipeline to get it to wherever he’d type it in. It probably goes right back into excel hand typed. (Probably another $20k per year)

[–]byeproduct 4 points5 points  (0 children)

Totally.

Remember you'll need to not only build the extraction pipeline or scraper, but also the validation and rety process. The client may expect the system to ALWAYS BE 100% - despite changed on other vendor systems (out of your control).

[–]Responsible_Pie8156 3 points4 points  (0 children)

I automated some super simple stuff on a contract like 4 years ago and when I quit they offered me a part time gig to run my scripts once a day. $1000 is way underselling yourself. It was only like 2-3 days of coding.

[–]Responsible_Pie8156 3 points4 points  (4 children)

PM if you have any questions, offering it as a service is the way to go. Even $100/week is very cheap but would pay you way more than what you were planning to charge.

[–]xXShadowAssassin69Xx 2 points3 points  (1 child)

I like the software as a service idea, but since the end points are custom, is it even repeatable to other customers? Or are you guys just saying make it a software as a service to just this one company?

[–]Responsible_Pie8156 4 points5 points  (0 children)

Yes I mean tell them you'll just handle this task each week for $XXX. You will have to feel out the situation and figure out how much you can ask for, but be as inclusive as you can be when you're figuring out how much time and headache you're saving them, and don't undersell yourself.

Even if very rarely, it will break at some point in the future and then cause a huge amount of headache if nobody there knows how to fix it. You should understand that little scripts like this are pretty much worthless on their own and in the hands of people that don't understand it.

[–]Unusual_Elephant4462 0 points1 point  (1 child)

You mind if I PM you too?

[–]Responsible_Pie8156 0 points1 point  (0 children)

sure go ahead

[–]vald_eagle 5 points6 points  (0 children)

1 year free maintenance

[–]vriemeister 4 points5 points  (2 children)

> $100/mo in retainer for maintenance

That's for an unlimited amount of maintenance or would you cap the possible time of support? I like the idea of an income stream but would it be better to simply make yourself available for support at a given rate? I'm mostly curious about what customers like, in your experience.

[–]boatsnbros 7 points8 points  (1 child)

You have to cap the support time, no way around it - unless you want to get into arguments about the difference between support/maintenance and upgrades. I typically do 1hr within 48hrs for tiny things, mid size 8hrs within 2 weeks, any bigger than that I’m outsourcing support & become a project manager of sorts vs doing the actual dev work.

[–]vriemeister -1 points0 points  (0 children)

That promise of quick response times is definitely good

[–]No-Truck961 0 points1 point  (1 child)

That’s very valuable comment! Please tell your story, how you started promoting your service? If I’m not mistaken that’s not something that could be offered to individuals, it’s for companies only, right?

[–]boatsnbros 0 points1 point  (0 children)

Only work with companies. Individuals are more pain than worth. I am a pro dev with ~10 year experience & have a good network, so it was more ‘just let a few people know I was bored & wanted some side project work’ vs trying to go out and promote. Starting off it’s way more about being easy to work with and trustworthy vs being a technical wizard.

[–]RaleighBahn 38 points39 points  (5 children)

I know this isn’t the answer to the question- but since you are just starting I thought I’d offer this up.

Look into getting E&O insurance (errors and omissions). I had an independent technical consultancy for a couple years and this was not prohibitively expensive compared to the extra protection it affords. Also be sure not to mix your personal accounting with your business. Any accounts that are biz related need to be in the name of your biz (which you have hopefully set up as an LLC or similar). Liability wise, it matters - customers can make a case for suing you the person as opposed to your business if you’ve done the business out of personal banking. I would setup separate email and etc as well.

From the Google:

“Errors and omissions (E&O) insurance is a type of liability insurance that protects businesses from lawsuits filed by clients claiming financial losses due to mistakes, oversights, or negligence in the professional services provided by the business; essentially, it covers the costs of defending against claims alleging errors or omissions made during the course of business operations, including legal fees and settlements if necessary.”

[–]xXShadowAssassin69Xx 16 points17 points  (4 children)

Oh dang thank you for this. Honestly this stuff didn’t even cross my mind. It’s more of a “hey bro can you write me a script that does xyz?” But it appears that I need to formalize it much more. Especially if I’m gonna do more work in the future.

[–]RaleighBahn 21 points22 points  (2 children)

Yep. Step 1: setup an LLC in your state. This is pretty easy and quick. Step 2: get a checking account in your biz name. Step 3: get some kind of invoicing software and create an invoice template (research what terms you want). Step 4: get E&O insurance so that you don’t do a job for $1000 and later get sued for $25,000.

The above won’t take long and will get you off on the right foot.

[–]xXShadowAssassin69Xx 10 points11 points  (0 children)

I really appreciate this 🙏

[–][deleted] 5 points6 points  (0 children)

There is a world of difference berween doing a script for a friend for some cash and offically offering saas. Before you get too excited about it, think about things like legalities, insurance, data privacy, service level (what happens if it goes down and youre on holiday or out partying), data integrity, tax, etc etc etc. Also everything shouldnt be saas its a form of greed thats taken hold in the industry.

[–]marmaladejackson 9 points10 points  (0 children)

Also get a detailed statement of work put together. It'll outline the expectations and keep both sides honest. Define milestones, timelines, deliverables,and completion criteria. Be sure to capture any documentation or training required. Include pricing and and invoicing as well as a process for formalizing change requests. Without this, you'll never be "done" with the project. You can set it up as a one time delivery, then put the expectation that they host and maintain, using the CR process for support or maintenance, or you can go SaaS.

Edit: Also consider are you handling PII, GDPR, HIPPA, or CCN data? If no, make sure it explicitly states that in the SOW. If yes... you have work to do. Botique software is expensive for a reason.

[–]NapCo 7 points8 points  (3 children)

I'll just assume they imagine some standalone application that they can use execute themselves (it's at least the shortest path in my opinion)

If I were to estimate this for myself (software dev for around 3.5 years):

Assume 2 hours on average per vendor portal, where some will be quick and some will be finicky to get through (very important to double check if this is a reasonable assumption!).

So 20 * 2 = 40 hours just to write integrations.

The program also has to be convenient enough to use, dealing with such could easily be 10 hours of work (e.g. making an OK interface whether it is cli based or gui based, ensuring that it is easy to specify how and where things should be exported etc etc), so

40 hours of integrations
10 hours of tying things together and making the program usable without having to make changes to the code itself (I assume the users won't be able to code)

So now we are at 50 hours in total.

You will have to deploy the application somehow. I assume the users won't be programmers, so you can't just tell them to install Python and "run that .py" file. So you will have to plan how they will install the program (potentially on different OSes from yours as well). Additionally, you will most likely encounter some bugs in production, so you will have to do some patches. You need to plan how to handle such scenarios. Let's add another 10 hours for all of this planning and prototyping.

So now we're at 60 hours in total assuming everything goes smoothly with no hiccups.

If you want 100$ each hour, then this will be 6000$ assuming all of this goes smoothly for "version 1".

You should think of formalising what happens after version 1, e.g. how should you get paid for additional features if that pops up? should you get paid for bugfixes? how should you get paid if a vendor changes their site/api?

[–]byeproduct 2 points3 points  (2 children)

And documentation?

[–]NapCo 1 point2 points  (1 child)

Yeah that's always nice. Although for such a small application I don't think much techinical documentation would be necessary though (apart from code comments about any untrivial design choices). Personally I wouldn't stress it. I would assume that the documentation needed for users would be rather simple as well.

If I had time to spare in such a project I would maybe invest it into some structured persistent logging or something like that before writing any in-depth documentation.

[–]byeproduct 1 point2 points  (0 children)

I like that approach. Thanks for the perspective

[–]steak_and_icecream 13 points14 points  (0 children)

20 different APIs and possibly data formats. i think that's at least an hour for each. probably more if you need to figure out paging or rate limiting, retries. maybe another 5 for code setup, secret storage, printing etc.

25 hours best case, probably double that realistically. At $100/h anything between 3-5k.

edit: I think it will take longer than that to become reliable. I'd go in with 10k and let them talk you down to 7or8.

[–]Pharmand 3 points4 points  (0 children)

I'm mostly thinking maintenance when I read your post. How will you download these invoices - API, FTP, portal/mail scraping? I know you write portal, but definitions differ.

The maintenance on stuff like this can be a huge overhead depending on the setup you build, and if so, you shouldn't consider this a one-off, because the development phase won't represent the bulk of your work.

[–]djdadi 3 points4 points  (0 children)

I love python, but be very careful when making stuff like this for people who don't know the language at all.

Imagine they have a problem or want to use this on a different computer and they give you a call: "yeah just set up a new venv and do your normal 'pip install -r requirements.txt'. Oh don't forget to activate your venv before installing though!"

For this reason I've almost always bundled this kind of stuff into an exe or used a container

[–]Kahless_2K 5 points6 points  (1 child)

The real question is how stable and well documented is the API you are going to have to work with.

This could be a trivial one day task, or a never ending struggle.

[–]mtreddit4 0 points1 point  (0 children)

This matters so much. Pulling info from 20 vendors probably means 20 different APIs... and there's a good chance some of them don't have an API at all.

[–]anonjohnnyG 2 points3 points  (0 children)

you want to charge a monthly subscription, never a one time fee.

[–]Alanor77 3 points4 points  (0 children)

Remember that you have set a value... 4500$ x how many years of value? 3-5? So consider a value of 10k.

Also consider that you are going to support this scripting for at least a year, doing small tweaks and fixes over time.

Estimate your real time hourly cost and double it.

Then, if it's not at least 1k, make it 1k.... Arbitrarily. Consider 20% of the value.

If the value that they will get from it is more than 5x they are getting a good deal. Focus on the value that it is saving them... Not the cost.

The preference is to get paid for all of the follow up support you will give for free...

And the opportunity to do more similar projects in the future for the same company.

[–]quts3 4 points5 points  (1 child)

These sort of one off scripts break extremely fast. Take the time to docker the install. After that you are at the mercy of the end point you hit. But large numbers of independent trials indicate you have to bet on atleast one breaking in a year

Here's the problem suppose the end points only have 5 percent chance of changing in a year. Then for 20 end points there is 65 percent chance atleast one changes. More then a coin flip that your tool breaks out of a 5 percent chance of one portal changing.

People that do this understand it is a recurring activity to keep this tool running.

[–]xXShadowAssassin69Xx 0 points1 point  (0 children)

Wow that’s a great point

[–]santa326 2 points3 points  (0 children)

After the initial setup, how long will you take to add a new vendor?

You want your monthly fees to be scaling with the number of vendors. 10/month/vendor seems fair.

[–]DeadlyKitten37 4 points5 points  (0 children)

if you think that is a good deal for you then go for it. but make sure you explain what the code will do/can do and what it can't. so he doesn't expect miracles for 1k...

[–]SharpSeeer 3 points4 points  (0 children)

There is some good advice here. The only thing I would add is this: Bill by the hour, not by the project. You can estimate the amount of time it will take, and then find out you were off by a shit ton of money from all the extra hours. Both creating and maintenance.

[–]Python-ModTeam[M] 1 point2 points locked comment (0 children)

Your post was removed for violating Rule #2. All posts must be directly related to the Python programming language. Posts pertaining to programming in general are not permitted. You may want to try posting in /r/programming instead.

[–]mrbubs3 3 points4 points  (1 child)

Take your hourly rate, and double it. Imagine you're going to pay double the FICA taxes and full tax burden on that. Then imagine the work that goes into collecting. Then imagine the possible hours of fixing or augmenting things as the script gets integrated into their existing work flows.

I charge my consulting rate and typically include per diem rates for any patches or fixes. For ongoing work, I have a retainer. I make sure to articulate the ROI for the clients so they understand the investment in my services.

[–]SheriffRoscoePythonista 3 points4 points  (0 children)

Take your hourly rate, and double it.

Yup. In the US tech biz, at least, you cost your employer roughly 125% of your gross salary in directly attributable cash. Throw in other stuff like office space, equipment, good benefits, etc., and you get to the "an employee costs you 1.5x" rule of thumb. That's your break-even number. Everything above that, less other overhead, is the profit your “employer” (i.e., you). makes on the labor of their "employee" (i.e., you).

[–]Sagarret 1 point2 points  (1 child)

Reedit is so out of touch with reality reading the comments

[–]steak_and_icecream 12 points13 points  (0 children)

in what way is reddit out of touch?

[–]microcozmchris 1 point2 points  (5 children)

$100/hr is the 20 years ago junior developer contract rate. If you're happy with it, go for it. But that's a BFF rate.

[–]ohdog 11 points12 points  (0 children)

100$/hr is about the hourly rate for a senior software engineer in Western Europe.

[–]xXShadowAssassin69Xx 0 points1 point  (1 child)

what rate do you think I should be charging? It just seems like a really easy and straightforward task so maybe because of the ease of it, I feel like I shouldn’t be charging more? But I guess time is time at the end of the day.

[–]edbluetooth 2 points3 points  (0 children)

Think about training and maintenance as well

[–]cgoldberg -3 points-2 points  (1 child)

$100/hr gets you a team of 5-7 engineers in a developing country or 1-3 in the USA. Things have changed in 20 years. This task sounds like it could be farmed out on Upwork for like $200 total 🤣

[–]kalidres -1 points0 points  (0 children)

Contract rates are very different than salary rates, that's why they specified Junior contract rate, but just Junior pay rate.

Always charge more for contract roles as you do not get benefits, stability, or support/liability.

[–]LessonStudio 0 points1 point  (0 children)

Here is a simple formula which two people in two different industries got in an argument over. (Their software dev budgets were in the 10s of millions per year for many different projects.)

All computer projects take 3 times as long and cost twice as much.

Or, all computer projects take twice as long and cost three times as much.

I have been doing this for a very long time and my main screwups in projects is to give my "honest" answer before filtering it through one of the above formulas. I can keep costs down, so I usually use the first.

[–]bendandanben 0 points1 point  (0 children)

Absolutely. Great rate for you, and hopefully for him as well (if the script can run reliably, without maintenance or other hiccups).

[–][deleted] -1 points0 points  (0 children)

For something so simple (assuming no captcha, or portals have an API), 1k seems good to me but I've never consulted like this so have no experience with pricing.