Otter Thoughts
A Guide to the Software Industry
Menu

Lies You Will Get Told In Interviews August 26, 2017

1. You will get a raise after 90 days, pending review. This is just a way to get you to agree to a lower salary. After 90 days, if they get around to it at all, your raise will be smaller than could have been negotiated up front. You’ve already declined other offers and closed other lines of inquiry. Nobody wants to go looking for a different job over $10k or $20k. You may even have moved. The company knows that and will use it against you.

How to combat this? Call their lie by bringing up past lies. “They said that at my last job.” Demand appropriate compensation up front. Flip it on them if you have to. “Pay me the asking rate now, then lower my pay if I fail to meet concrete performance metrics. After all, you can always just fire me.”

2. If things go well, you can work from home sometimes. In the best case scenario, you might be able to strong-arm them into working at home one day a week after entrenching yourself into some vital business process. They will still resent you and find every excuse for you to be in the office by 8am. If you can’t work from home starting the second week you never will.

3. We will fix X, Y, and Z after our next round of funding. Why didn’t they fix it last round? Or the round before that? The truth is they have bad management. Wrong priorities, incompetent developers, rampant scope creep, religious wars, crippling bureaucracy, indecisiveness, or complete lack of vision. Most likely several. All of those things are management problems. They will not go away after the next bag of helicopter money any more than a yard full of broken cars after someone wins the lottery.

4. Our next round of funding is right around the corner. If the next round was a sure-thing, why try to sell me on it? Is the company profitable? Break even? …Does it at least have users? Those are some good questions to ask in the event a company keeps hyping up its impending next round.

5. Your stock will be worth thousands of dollars after we IPO/sell to Microsoft. Stock has no value unless you can sell it. SEC regulations require potential buyers to have a shit-ton of money for you to legally be able to sell to them. In reality, you don’t even own stock. You will get options, not real stock. Your options will be “non-transferable”, which means that even if you could find a buyer, you can’t sell them. But you won’t even actually get the options. See, they need to “vest” over time, and you lose any unvested options if you are fired, laid off, or quit before then. Or if you get Zuckerberged. In the mean time the company will hold the unvested stock hostage to force you to put up with whatever BS they want. Oh, and don’t even think about asking for a raise or rocking the boat.

Not that the stock would ever be worth anything. Don’t forget that 99% of startups fail miserably.

6. It’s an industry standard employment contract. No need to read it. Except the part where they own your side projects. Oh, and the part where they can sue you if you dare to get a job for 3 years after they outsource your job to India. And that other part where you waive your right to a trial in any lawsuit. And the fact that violating a single line in the completely arbitrary “Employee Handbook” is considered breaching this contract. READ AND UNDERSTAND EVERY SINGLE LINE. DO YOUR OWN RESEARCH ON THE LEGAL MEANING OF WHAT YOU DON”T UNDERSTAND. DON’T SIGN A CONTRACT YOU FIND UNREASONABLE. You can always demand they change it. I have and they did. Usually managers don’t understand anything in the contract themselves.

 

No Comments on Lies You Will Get Told In Interviews
Categories: Uncategorized

Getting In To the Software Industry August 19, 2017

Don’t go to school. DON’T GO TO SCHOOL. You will go many thousands of dollars into debt. Worse, you will not be taught how to program. Worst, you will pick up the bad habits and foolish ideologies of your washed up professors.

Don’t waste your time on “code schools” or “bootcamps” or any such nonsense. You learn a few dozen buzzwords and not much else. The “job guarantee” is a lie. You will end up as a glorified intern at a sweatshop. I know. I was a manager (by attrition) at one of them. The code school graduates couldn’t even write a for loop unsupervised (no kidding). Applicants fresh out of these bootcamps didn’t even know basic terminology.

The primary skill of a programmer is learning. If you can’t learn under your own direction you won’t make it in the industry. The internet is full of tutorials and documentation for every programming language and framework ever made. For free. Study and code for several hours every night and at least one whole day per weekend. Do this diligently for six months and you might be ready to apply to the lowest entry level job. Don’t do internships. If you work, get paid. If nobody is willing to pay you, study harder on your own.

Your Github profile is everything. Your resume might as well be a description of your interesting Github repos. Nobody cares if you have a degree or a certificate or a participation award. All they care about is whether you can finish their projects and make them money. Why would a company hire you except to make money? Show them you can handle projects through your Github profile.

(As a side note, don’t use BitBucket. It makes you look like a weirdo, like you have no roots in the larger culture or community.)

Make sure those green activity squares look nice. I’m skeptical of self-taught applicants when I see a handful of squares over the past year. Do they not know to “commit early, commit often”? Do they understand the point and purpose of revision control? Of remote backups? Or do they lack the innate interest in programming? Perhaps they’re lazy. Perhaps the code is just lifted off some old site somewhere. It doesn’t look good from any angle. You don’t have to commit every day. You can have a few weeks empty. But the sprints of activity should be natural looking and frequent. The commit comments should be concise. Show them you have work ethic.

The last part is that you should run Linux. Natively. Preferably Ubuntu. Know how to use it and how to configure it. Know how to solve problems and set up application stacks. Most of the web is running on Linux and Ubuntu is most common. Startups can’t afford dedicated system administrators. Several of my development jobs were attained in no small part to being able to administrate the Linux servers when needed.

No Comments on Getting In To the Software Industry
Categories: Uncategorized

AI and Captchas August 12, 2017

The entire point of a captcha is to determine if the user is human by requiring a task that is difficult for automated systems to do quickly and reliably. Spammers are sophisticated and well funded. At very least they have a couple high end gaming rigs. (What else would you do with all that spam money?)

As of the writing of this post, Google’s image captcha asks users to identify photos of cars. This means that a dude sitting on top of four TITAN XP’s and three standard deviations of IQ can’t make a program to identify photos of cars faster than a six year old trying to play some cheesy Android game.

So what then of Google’s “autonomous” cars? They are powered, effectively, by just one of those TITAN’s. Maybe a bit more. Definitely not four of them. Safe driving requires you to identify cars, above all things, nearly immediately. Compared to driving, captchas allow veritable eternities to identify a photo. Never mind the car needs to do other things with that chip too.

Still want to take a ride in one of those things?

1 Comment on AI and Captchas
Categories: Uncategorized

The End of Iron August 5, 2017

There is a phrase in the industry, “Kill it with Iron”. It means to throw more hardware at a performance problem rather than trying to improve efficiency in the application. Usually it’s cheaper. Much cheaper. This will not always be the case.

Many people seem to forget that the rapid advancement of computing power in the late 20th and early 21st centuries is an artifact of one specific technology, semiconductor photolithography. This technology has an inherent end and becomes increasingly difficult with decreasing returns as that end is approached.

CPU Speed Release Date Increase
Pentium 100 100 Mhz 1994
Pentium 3 1 Ghz 2000 150%/yr
Pentium 4 3 Ghz 2002 100%/yr
Core i7 4 Ghz 2014 2.7%/yr

Node size follows a similar curve lagged by a few years.

In the early days cpu power advanced rapidly. Smaller processes meant faster chips. One could draw an exponential curve, but it only fits over a short span. Semiconductors hit a wall a few years after 2000. Progress has been slow. It will stop soon. There is no similar replacement in the tech pipeline. For all the talk of carbon nanotubes, they are still only slightly better than semiconductors. Not to mention severely underdeveloped from a manufacturing standpoint. Alternate semiconductor formulas have been around for years and have been overshadowed by silicon for good reason. The much lauded Indium-Gallium chips can achieve very high clock speeds and survive extremely high temperatures. They have been used extensively in spacecraft. Unfortunately the crystal structure limits process size to that of decades old silicon chips. Chips are going vertical but power dissipation will limit that.

Soon, exactly depending on who you ask and the phase of the moon, there will be no smaller silicon processes. Even now only certain components are being shrunk because others have hit their absolute limit. In a few years there will no longer be any significant improvement in processor power or memory capacity per cubic centimeter. Put more simply, power, price, and size are about to be tied directly. Want twice the power? Buy twice as many chips.

Kill it with Iron is about to die.

No Comments on The End of Iron
Categories: Uncategorized