I haven't done any research on this, but off the top of my head I would expect the distro upgrade process to handle this and I wouldn't remove python2 manually.
The technical reason to use a CDN with aws s3 is so that you can have a custom domain name with https. s3 will do http custom domains, but to get https you proxy it. In this case, you can think of Cloudfront as the proxy.
- Never do a fixed bid. Not even when the job looks small or you are desperate for work. Any time a fixed bid goes wrong, not only do you lose money and time, but it's unbelievably demoralizing.
- Hire people. If you do it all by yourself, you'll end up doing all the jobs. Fun for about 1 month and then exhausting.
- Be honest. This is the one thing I feel like I got right. When I didn't know how hard something was, I would just tell the prospect or customer that while simultaneously telling them how we were going to figure it out. This approach always got me customers that I could work with and who were patient with me when I was consulting.
- Net 30 or better terms. Cashflow on Net 60 or Net 90 is brutal.
The advice against fixed bids is a bit more nuanced - there are two problems at play.
1. You do not fully understand the scope of the project, or think you do but actually don’t. In these cases a fixed bid will be catastrophic.
2. The client themselves do not fully understand the scope of the project, or think they do but actually don’t. This is even more of a disaster for a fixed bid, because even if you give them exactly what they asked for it isn’t going to be what they needed, and that’s what they’ll measure success against.
The advice for fixed bids deals more with the question of value capture. If by hard work, study, and practice, you have a way to deliver $1,000,000 of value to a client, it makes sense to charge (at least) $100,000 for it, even it takes only an hour. This is technically a fixed bid, but not in the traditional sense. Here you understand exactly what it is your client needs, how you’re going to do it, and what value they will derive from it, and so charge a percentage of that value instead of an hourly rate.
Fixed price is fine if:
Not only you understand the scope, but the client does too. Make sure you write down exactly what you're going to deliver in your statement of work, and ANY DEVIATION, CHANGE, or ALTERATION is a change in scope and subject to a change request in writing with added cost.
Also write down in your SOW that anything you send to client for review or as a deliverable, is considered accepted by client if they don't say anything about it for 2 days.
A little more nuanced view of this: if you know the client, their business and their systems well, there can be nothing more profitable than fixed bids. I have quadrupled my normal rate this way and ended up with happy clients. If you don't know them well, then, yes, fixed bids can be very, very risky unless you figure out a way to corner the risk.
I got burned by this as well. A very well known silicon valley company found me here, on HN (I solved one of their puzzles for fun). We agreed on a fixed-priced project. The project wasn't specced well, just a bunch of screen designs without describing exactly how they work. I kept asking for the specs, they always replied "yeah, coming soon, nothing to worry about!". I trusted them. Most of the screens were trivial, a few were complex. At first glance it all made sense. Started working, went through about a third of the project, till I got to one screen with some convoluted UI. It wouldn't work they thought it would, would require a massive redesign, lots of extra work affecting other parts of the app. I told them about it. At first they didn't believe. Then they agreed. Then they wanted me to do all the extra work as "in scope". I declined. Lost two weeks of pay.
Again, this was not some cheap and poor startup, a major company that just raised a ton of money with lots of tech media coverage.
In the end, it's my fault for not going through the exact UI logic on each of the designs, but it's easy to miss when there are 100 designs.
I wouldn't say it's your fault for not going through the exact UI logic, but more for not scoping the project properly from the beginning.
If there is a clear scope laid out in the initial contract it's more clear who is on the hook for anything outside the scope, and easier to recoup losses when the client fails to deliver the requirements properly.
I once onboarded as a vendor for a large, inflexible client and had to choose between two possible payment terms.
something like: EITHER Net 90 OR a schedule of discounts for any payment earlier than that (e.g 1.5% for 30 days and 3% for 15 days). and I wondered how many of their vendors simply jacked up their rates or fees to compensate, thus saving the inflexible client nothing. I guess this is very common.
I automatically increase my bids by at least 30% if I learn there's a purchasing department involved.
Invoicing an engineering manager who needs things to happen tends to be the least friction from my side.
Even if it costs more on the purchase, inflexibility does help streamline business operations. Any business who can just mandate "this is how this process is going to work" and make it stick is going to benefit from not needing to make bespoke agreements with every little vendor they co-operate with. I believe WalMart is the classic example for this case.
Came here to say this, although in a slightly different way. No matter what your bill rate is, if your commit is for xx hours per week/month, you're always going to feel like you're losing. Especially when you _inevitably_ encounter the customer who gets irate when you could only manage yy hours of brainpower in a week, even if those hours were superhumanly productive (and they probably were, amirite, or you wouldn't have burned out early for the week). In an age where so many people are seeing past the lie of butts in seats for 40 hours a week, don't be the one to subject your own self to the same.
this is a very good point. It's like handling dynamite but for an individual or very small team fixed bid is the only way to real revenue.
Think of it this way, you have 40 hours * sizeof(yourteam) to sell per week. There's a ceiling on $/hr or you price yourself out of the market and you don't have a time machine to create more hours. You can either add people to the team or detach the price from time with a fixed bid.
If you don't want hundreds, if not thousands, of consultants in your company then fixed bid is your only path forward.
I mean when you're getting started that's pretty much the only option. No one is going to believe that you're going to be able to deliver an entire app or whatever until you have a couple on your resume. But you certainly shouldn't aspire to be billing by hour.
Adding to the fixed bid thing, sometimes it’s far easier to hire a consultant at all if you convince your management that the price is fixed with crystal clear acceptance criteria. “Let’s hire a contractor for an indeterminate time at a high rate” is often a tougher swing.
Another thing higher-ups like is having several options presented:
a) I can do this in 4-6 weeks, but we can also hire a consultant who can probably do this in 6-8 weeks and it is going to cost roughly this much (in this particular example I had intimate knowledge of the system and was proficient with the framework/tools).
b) Look, we don't have anyone on the team particularly suited for this project. We can either train ourselves, but the project will take about two months, or we can hire an expert who can probably do that in a month, and this is going to cost roughly this much.
Of course, be very conservative with your estimates and think hard, if someone from outside of the company can do the project faster (green-field project with unknown tech) or slower (upgrading internal system, for which the original developer is still around, but busy earning money for the company)
Chattanooga has operated electric buses since the 1990s. I would be surprised if this wasn't known by many municipalities in the US, but still it hasn't taken off. Numbers from late 90s indicate that fuel and maintenance costs would be about 1/4 the cost of diesel( https://afdc.energy.gov/files/pdfs/chatt_cs.pdf). I guess range has been the problem stopping adoption.
Buses seemed to me to be a rare case where they are so big and heavy anyway, that low energy density from a cheap and old-fashioned lead acid battery could still work. But you're right, I started searching, and found a 2005 US DOT analysis that said otherwise: https://www.transit.dot.gov/sites/fta.dot.gov/files/Electric...
> Consequently, powering a full-size bus would require a battery pack that is unacceptably large and heavy, as well as too costly to make a battery-electric bus commercially competitive.
There's only a few places where lead acid batteries have really proven viable for transportation and it's in forklifts where their weight is a benefit instead of a detriment and the actual ranges being traveled are extremely short. Everywhere else they're just way too heavy to get workable ranges at reasonable weights.
Yeah the problem is that there are few opportunities for the bus to recharge, they generally don't stop long.
An interesting alternative is modern In-Motion Charging (IMC) buses: stick reasonably big batteries on a trolleybus, when overhead wires are available the trolley uses them and recharges the batteries; and it can run for some time on batteries so it's not as bound to OHL as traditional trolleys.
Almost every property you purchase in the United States will have setbacks and easements on it which make a large portion of the land unbuildable. For example, a typical suburban lot in my area will have a 5 foot utility easement along the sides and back, then a 20 foot front building setback. It seems to me that you're decreasing the effectiveness of your mortgage payment by not doing something with that area like gardening on it.
Just be careful where your property lines are when you plant your trees. Whether a tree is on one property or another seems to be a common dispute. However, if you're giving your neighbor several pounds of free fruit, they may be more amicable to a tree growing a foot or two on their side.
Also, if there are binary build steps, you may want to consider using an ec2 instance for the build. (https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes...)