186 karma · joined February 17, 2015
Grammar. It's magic.
By the way, I failed my very first interview just like the guy you talked about. Complete brain freeze. Luckily, I got an internship and here I am with 7 years of software development under my belt. You probably might not care. But it really makes me wonder about all that wasted potential. Not everybody is as lucky as me.
Why I don't do code tests:
- Artificial problems with artificial constraints. I have to understand some weird context you dreamed up and figure out a solution that matches your expectations. Give me real world problems. I don't work in la la land.
- Solving your test takes at least a couple of hours. I can send three more resumes in that time. Or I can start hacking together a side project to compete with your company. I don't waste my time and neither should you.
- Skewed expectations. Your test is prepared in advance. And because you already know the solution, it seems easy. But it's not. Want a real test? Let's try one you haven't seen before side by side. We'll see then if I'm good and if you are as competent as you think you are. But if I figure it out before you do, I expect a salary higher than yours. Not so fun anymore, is it.
- Skilled people don't need tests to determine skill. They assume it's there and look for potential problems. If I built at least one side-project and you can see it, don't treat me like someone that can't code. If I have 7 years experience, don't test my coding skills like I'm a graduate. Because the 3-5 guys that hired me before you did that already. And they found me good enough to hire.
Show respect to your candidates. Treat them like they are as good as they claim, and look for discrepancies subtly. Don't assume everyone is an incompetent liar. And definitely don't test the living shit out of them just to prove yourself right or wrong.
Pay peanuts, get monkeys.
If you want better quality, offer something better in return. Offer an amazing salary. Double the market. Triple. Fuck it, a truckload of money and 72 new virgins every day. Something that justifies your increased demands and expectations. Until then, the traditional route works better for me too. Because I get the exact same "competitive offer", but employer expectations are normal instead of stupid.
Sugar demolishes me. I'm useless on a sugar high. I compensate with fiber and fat so I can use the energy.
Alcohol, I hate how it makes me feel. Angry and uninterested in actual work. I only drink a beer or two when forced to socialize with drinkers.
I feel that the best code comes out when I'm mellow, but with just enough energy. Too much or too little usually leads to not wanting to do anything related to programming. I guess it's just about keeping things balanced.
Currently if you discover or understand something new, there are no easy ways you can benefit from it. You can't build a product because you don't have the money. You can't sell it to someone because nobody is buying. So all you can do is charge money however you can.
And with information, offering "consulting" services is the most profitable approach. Make the docs as cryptic as possible then charge a fee for helping people understand it. If you want to fix this problem, create a way to make research profitable. Until then, people will always protect their best asset: information.
Flat hierarchy. Great because you're in the middle of things. Easily talk with the CEO/CTO, make decisions that matter and change the company direction. And it sucks because you can't advance in any way. You're a developer for life and once you get good enough, the salary stops rising too. You're hitting a boring plateau pretty fast and there is no way to escape it.
Very little politics. Great because who likes being a politician when you can write awesome code. Find a problem, just point it out and solve it. No boring meetings and no artificial stopping blocks. But with few politics you don't feel appreciated. No perks, because "we're small, we work with passion". No promotions. No company events, or very boring ones. And pretty much no respect. Think of it like having a lot of brothers and sisters. You can be the best at what you do, but still get shit just because it's funny.
Work with the latest technologies. Who wouldn't want that. Always on the bleeding edge. Always in the front row. But when everybody in the company is doing it, it's pretty hard to maintain standards or even a stable system. Each week there's a discussion about switching to this awesome new thing and dump the old crappy thing that brought us where we are.
Both small and big companies have good parts and bad parts. If you want structure, perks and a ladder to climb, go with a big company. If you want to play in the mud and build a castle out of it, go with a small company. And if you're just starting out in the field and want to learn the ropes, definitely go with a small business. Everybody will help you learn because there don't have reasons not to.
Finding a cofounder is harder than finding a girlfriend. And once you commit, you're married for the lifetime of your company. So don't try to actively search for a cofounder. Because the odds are against you. Instead, start by yourself and see if interest builds up in time. It's much easier to find partners after things start rolling into place.
Real capitalistic business deals are made on the golf course or at an expensive dinner paid by somebody else. Why target the users when you can target their bosses. Convince a corporate CEO to switch to Slack and you suddenly have thousands of users.
As much as we like to dream about it, the world does not run on merit. And politics can bury amazing products while proliferating shit. Read about Tesla, Turing and all the other guys that pulled us out of the mud. Innovation doesn't bring success. Being a ruthless greedy salesman does.
Websites that use cookies in any way must prompt the user about it.
The first statement is indeed nice and elegant. A small work of art from a coding perspective. However, maintaining in the future will be a pain in the ass. Because art is the eye of the beholder. And future beholders won't appreciate it as much.
On the other hand, the second statement is structured. You know exactly with what you're dealing with. It's ugly. But it's a building block. Anybody can understand it and use it immediately.
So tell your colleague to make a screenshot of the first one and frame it on his wall. Then use the second statement in production. Code must always be generic. Personalization only leads to technical debt.
Empty promises are usually a sign of deep trouble. And people that make them create very toxic environments. Hoping people change is just wishful thinking. It's who they are. You can't change them with words. And usually not even with actions.
Pack your stuff and prepare for the inevitable downfall. Because it really is inevitable at this point. And keep in mind that some bridges are worth burning.
There are dozens of screen configurations and at least four different browsers you need to prepare for. If it would be easy, people would do it. But when you factor in the time and effort, it's just not worth it. Unless, of course, you're a big company with hundreds of employees.
Don't forget the project management triangle. Quality, cheap and fast. Pick any two.
> I'll just parrot what people have been saying to people with visual impairment for very many years: learn to zoom.
You can't zoom out on mobile. You can only zoom in.
If you use photos, you need a professional photographer with a studio. You can't just snap pictures in the kitchen because the food won't look appetizing. In the end, it's all about effort vs gain. And a text menu takes the least effort and provides the most gain.
My guess is that those developers saw the clusterfuck in your company. And instantly decided "Fuck this bullshit. I don't get paid enough to care.".
1. Skin in the game. Equity, profit sharing, guaranteed monthly bonus based on performance. Doesn't really matter as long as we share. Because if I'm good and work hard, I want to enjoy the results too. A fixed salary is not going to cut it anymore.
2. Freedom over actual implementation and veto power. You may be good at running a company. But I'm great at building things. So when you give me a task, don't tell me how to do it. Yes, we can talk about it and make decisions together. But I must always have the last word. Because, more often than not, I understand things better than everybody else. Including you.
If your lead developer does leave, expect a major slowdown, morale decrease and even further resignations. On paper he might look like a replaceable asset. But your development team doesn't see it that way. We're all humans. And relationships matter.
To answer your question, some of them take equity and others take cash. Either way, you're getting screwed. Unless, of course, you just keep finding investors to pour money into it. If that's your objective, the price is usually worth it.
But seriously, things are fucked and it's only getting worse. I'm in the same shoes and I'm trying a startup in my spare time. Plus, the guy running our project decided to quit and leave me alone with a monster made out of spaghetti code. Just finished updating my resume, hoping I won't need to use it.
Don't have any advice that could help. Because the problem is pure greed. Everybody is acting like a vicious greedy fuck, chasing money like there's no tomorrow. Life is now a river of shit and we're all just floating on the surface, waiting for an island or something. People don't seem to care about it either. Complacency is everywhere. Can't say I blame them.
Anyway, the west is crumbling. Go to a cheaper country. With an IT job you will have enough.