50-60% of my revenue is sub-contracting. I have a few firms that often take on projects that they are not suited for or do not want to increase staff to cover and they often sub out all or parts of the project to me. These relationships were built through networking with other developers who worked for these companies - never the bosses per se. Meet other devs and when the company needs help, they remember and recommend. In my experience this kind of introduction is about 5x as fertile as a cold intro.
Roughly 30% of my revenue is from direct relationships between myself and another company. These tend to merit a higher rate but also increased risk.
Very few of my direct relationships start from cold calling/intro (not sure if any ever did actually); most came via word of mouth recommendations of other people. Networking at the right kinds of events can also increase your profile and help you meet the right people.
ProTip: Networking at networking events is a terrible idea.
Lacking a sales force the best pseudo sales force you can create are acquaintances who understand your skill set and respect you as a person. They don't need to see your work, they don't need to have hired you before - to drop your name to someone who asks. They need to know your name, what you do and have a generally good feeling about you. If you pay them back for this, even with a simple thank you or lunch - they will continue to be an advocate for you.
Another tip which probably falls into the anecdotal evidence category - get off of ODesk and ELance. You are right about the price war. Your name and value to people also gets damaged because you seem to be just another guy among thousands who need to find work that way - it is a 'dime a dozen' mentality and they will always see you as that.
* My website. I rank reasonably well in Google for search phrases such as "Freelance Developer in $mycity". Probably if I blogged I would get more traffic. But it doesn't hurt to get a website going, and see if you can get ranked in Google for a particular geographic area. I suppose it's only really useful if you live in a city large enough that businesses are trying to find developers in via Google.
Also I've found that the people who do search Google for developers in a geographic area, are generally doing this because they want someone local, and have often previously tried offshore developers and not liked the results.
* LinkedIn / Github / Stackoverflow - occasionally I get leads from these sites. LinkedIn is easily the best of the three. I don't think you even need many connections on LinkedIn (I've only got 60). I think I just show up in the search results. Usually LinkedIn you will get recruiters looking to fill a contract job. Github/Stackoverflow are usually other developers from a company looking for someone to help out on a project.
I'm a bit disappointed in Stackoveflow Careers - I've never had a lead from there, which is odd.
* Referrals. This is probably the best way to get work - it would be hard if you were young and just starting out I guess. I've found that now and then clients will mention you to other potential clients, and it does kind of snowball a bit once you've worked for enough people.
Also, don't expect much from cold emails. It's way too impersonal. Telephone calls are only slightly better, but in-person events are by far the best. Your goal should be to MEET as many people in-person as possible.
Actionable tip #1: whenever you do work for someone, be sure to get a testimonial. If possible, do a full case-study on your engagement. Feature these prominently on your site. Then, just keep in touch with everyone you do business with. DON'T directly ask for referrals. Just ask how their business is doing. Make it about them. They'll remember this and like you for it, and you'll be at the front of their mind when the topic of consultants comes up.
Actionable tip #2: read this blog post by Patrick McKenzie, the man's advice is pure gold. http://www.kalzumeus.com/2011/10/28/dont-call-yourself-a-pro...
Normally you meet these people in unexpected ways. Just today I was offered a potential job from a girl I met while auditioning apartments. I've also gotten jobs from people I've met on dating websites, on the train at 2am coming home from a party, and on unrelated online forums.
Leave the house, keep an open mind, be friendly.
I find events and conferences to not be much use, unless they are very specific to your industry.
Selling software development services as an individual is extremely risky, especially if you are selling services to buyers who are not tech-savvy. It takes patience and energy, and software developers have a finite amount of these resources.
Serious consulting generally requires daytime availability. It's a slippery slope from "side hustle" to "leading a double life." If extra income is what you're after, is it an option to change jobs for better pay, or to get more income from your day job?
One bit of advice if you stick with this plan: you can make the sideline nature of the contract work a benefit in your clients' eyes if you set your rates at a level where they feel like they're getting a good deal compared to what you'd be charging if you worked full-time as a consultant. You can also mitigate the cost to your performance at your day job if you consult on a different technology than you use at work.
But if your day job is in professional services, I strongly recommend against contracting on the side. If it's all you do, work-for-hire will slowly kill you.
Front of my 2015 card:
I use Moo to print the cards, quality is great and service excellent. This is a referral link, just remove the /share... if you do not want to follow the referral.
I drum up work by:
* Posting myself on the Monthly HN Whois hiring Freelancers thread (1st of month)
* Attending and doing talks at meetups - got a recent retainer from doing this.
* Old contacts pinging me about projects (rare)
Odesk and Elance, IMHO, are not worth my time. It is a race to the bottom honestly.
I get at least 3 hits a month from my HN posting of which one is solid enough to move forward with in some fashion. Since its part time I dont need more than two clients at a time.
I never had to do cold-emails.
I live in the Bay Area though where there are a lot of companies looking for somebody to build their Android app.
What's great with the network though is that I never had to negotiate rates since there's already some trust established.
Those who found me through LinkedIn though seem to negotiate a lot with rates which can be a pain.
Lately I'm starting to think that both of these points apply to freelancing/contracting whether it's online or through some other channel.
Also, build a decent portfolio of your work.
As a side note: anyone doing freelancing that is struggling with the tax part of it, would love to get your feedback on http://painless1099.com - a smart bank account for your 1099 income that does automatic withholding and helps make your tax situation more like that of a W2's. Product is deep in development by some awesome folks (I'm advising) and they still need more sophisticated eyes on it to get the alpha right.
There really is no good 'job' site for Contracts. There are a lot of 'Work From Home/Work Remotely' sites; but there is not one for contracting exactly.
What I do:
I network through people I know; cold calling can work if you see the company has a problem and you tailor yourself as the fix. But often those are short term gigs unless they love you.
Other than that.
Don't be afraid to post yourself on the monthly who's hiring and who wants to get hired. Making yourself visible will net a few responses that maybe gold.
Lastly, Stackoverflow Careers job has bene helpful.
Really last comment: http://thenubbyadmin.com/2014/01/20/best-list-of-remote-sysa...
Try using the sites mentioned within the thread - pickcrew, gun.io, etc. - these sites generally have higher-priced contracts and more interesting work than the classic variants. Use these sites at first to discover what work you like and build long-terms relationships with a few key clients.
1. Remember that the comms overhead with freelance work can be really lumpy and unpredictable. Programming is the fun part - the phone calls and emails can get painful really quickly
2. Avoid hourly pricing whenever possible. Do value-based pricing. Just trust me on this one.
I think the general consensus here is right. Avoid finding jobs on contractor bidding sites like Elance/Odesk (they're devaluing your work/skills). Put yourself in positions where you can tell people about your skills/services, and where people might be looking for said skills. I'd start with tech meetups, co-working spaces, other places where people you might want to work with are. Good luck!
Also, I'm surprised that no one has mentioned this yet, post in the HN Freelance thread on the first of every month. I've hired a number of freelancers from there.
I don't use it much anymore since I found a full-time job, but it kept me in great shape for almost four years.
Below is an affiliate link if you're OK with it.
Some headhunters don't mind dealing with freelancers either. Currently I'm freelancing through Computer Futures.
(This is not to say it's not a question worth asking again! I look forward to today's responses.)
As a hiring manager, I currently have an availability to hire a freelancer. I just need someone responsible, mature and professional who's willing to roll up their sleeves and go from "receiving requirements" to shipping and thoroughly testing.
As others have mentioned, meeting people and letting them know what you do. Most of these will not be direct clients. Rather they will either know of someone who is seeking help, or will remember your name.
It can take some time to get your name out and get the ball rolling. When I started up again, it took about two months. When you talk to someone, you never know how long it will take to turn into something. I have had conversations with clients that took 6 months to come to fruition. Others in just a week. The moral of that story is to always be looking, not just when you need work. Get in the habit of always saying yes, and then just manage your availability.
There is a spectrum of the kind of work you can do. I don't mean which language/platform. I mean straight staff augmentation to managing projects. It is easier to find the staff augmentation gigs. These are easier since someone will just be telling you what to work on, and you do it. You will make less for these and this sort of work doesn't scale as well. I would only ever do this for straight a straight hourly rate.
Managing projects doesn't mean you will (necessarily) be managing people, just managing the project. With this, someone needs something built, but may not know how. It requires an additional skill set of knowing a bit of sales, knowing how to set/re-set expectations and how to negotiate. You can get a much higher rate for this, and it is possible to scale this a bit better because you can sub out some of the work.
Another thing you will run into very quickly is how to structure the relationship. There are people out there who are incompetent and others who are nefarious. It is important to know how to protect yourself legally and practically for both. For the legal aspect, find a local attorney who can look over contracts and help you craft a reusable template. Always have an attorney look over contracts before you sign. Most of the time someone gives you a contract to sign, it will be written to be in their best interests. Other times, they will just be poorly written.
For the practical aspect, understand there is a difference between working with someone in-state, out-of-state and out of country. You have the most legal recourse with someone in-state. If they are out-of-state, you may have to go there to pursue any legal action. (which is a massive pain) If they are out of country you may not have any legal recourse. So you will want to structure the business relationship to protect yourself, which might be as simple as half of the estimate up-front. The remainder on completion, and they get no code until it is complete.
A lot of times I structure it by milestone or iteration, with time limits, requiring permission to continue, but all billed hourly. Each iteration or milestone delivers something tangible. They get code on payment. This way I get paid for the work I do, and they won't get unexpected costs and they always have a pretty good idea where things are. Risk is mitigated in both directions. At any point, they can decide to pull the plug and they still have something for what they've paid so far.
It is not uncommon for potential clients to ask for fixed-bids. My advice is to steer away from them. They require you to be able to make good estimates then inflate them to cover your risk. That risk is all on you. They also require you to have tight definitions and manage scope changes mercilessly. If you don't, then you eat it. That said, some people like them because they're really easy.
Some other pieces of advice:
* You're not dedicated to a particular project until either they've given you a deposit, or something is set up legally so that if you start working, you'll get paid.
* Generally ask for a deposit from new clients.
* It is ok to drop bad clients. Sometimes they're not worth the trouble.
* Think about it in terms of collecting/building long term relationships rather than "work". Once you get an established base of good clients, the work will tend to come to you.
* Remember, you're not their friend and not their employee. You are in it because it is a business relationship that has mutual benefit.
* Keep good records of time, expenses and income.
Email me at curtis [at] saltydogtechnology [dot] com if you have more questions. What sort of work are you looking for?
-1.) It has nothing to do with your willpower or even yourskillsets.
0.) the key strategy is rule out - some big companies,even stingy and the case of CIO chef info officer is clueless - AVOID THEM like the plague. U get a great job.affter change of bosses - once every 9 months for 3 years;you get 'fired' and put on the blacklist.
IT IS A DEAD END.
1.) it's all about MBA work, screening and positioning.get to know the rankings of the S&P 500 rank listing well.this is ONLY a template and guide. oh by the way,over 51 + 7 years of experience; various fields, and someodd experiences.
4.) before I get to the GOOD SEXY FREE MILLIONAIRE STUFF,figure out how to crash the local conferences/convensions.Yes, pay off the low part time work who moved goods. I ama substitute.
get the business card. say NADADADA! research the hell outof them. then it is mano a mano. eyeball to eyeball.i know u need this. this is what your competitors knowhere a ANONYMOUS QUOTE.
oh, no i am not a journalist. media, lawyer, stranger,etc etc. U R DOING THEM A FAVOR.
5.) ask reasonable questions. no i dont need the moneybut i really love programming / s?redacted? x, etc etc
6.) remember the obscure system engineer who does unixor the assoc vp does not want a referral free. Grass isalways greener on the other side.
7.) it's just me but five dimensional programming code on an origama (YES I AM ASIAN) ORIGAMA ball /can be be fun.and a nice prop. wave it around like a big CIGAR.
8.) most of the workplace have the 'hacks'; unix engineerslike i former trying to become a database engineer consultetc. cold mail and cold call - is fine, but the wallstreet method rule applies - 250 dials a day. 4 days awekk on various times. wt ???? 250??? is a lot.note - this is dials and yes i have done freelance 'boilerroom similar looking like work' - i am not a stock brokerfilm db BOILER ROOM !! yeahhhh baaaabbyy
9.) the MEAT the millionaire the sexy the GOOD STUFF.please delete this comment. or the censors may take it out.ok with me.
here it is......the Rotary Club works on a non-compete, diversifiedP2P network. ROTARY CLUB. non-compete since onlyone real estate agent in any one circle.
THE SCENARIO:my good 'friend' and associate REAL ESTATE AGENT or fill inblank spends a lot of time in the WOMAN CLUB. So, thewife of the VP of the data center mentions how ASTOUNDINGis this person.
the VP, is a man married and will give you at least a courtesy interview. Provide value, turn down 20% of thejobs.. shadddde the truth???? but
i have read at least 20 of the top books. compiled linuxkernel,blah blah learn a new language Haskell with succkybooks so the problems are NEVER technical or delivery.
it has only to do with some clueless CIOsss who barelypassed certification Micosoft exams.sorry, no person offense meant.IT HAS ONLY at least in USA, to do with somesystem engineer who WANTS U DESPERATELY but has aoutsource contract with a guy who cannot understandcode comments in ENGLISH or deal with HR where talent TALENT talent is a priority.
and of course, U are DOOMED. sorry to say.the extra income and part time jobs / health benefits /DESTRUCTION OF THE USA MIDDLE CLASS continues!
PS. full time -?? been there, done tthat kinda.i always allocate at least 10% to make boss look good;frills and bells; make the code look pretty and beautiful;and othher WORTHLESS GARBAGE. this is called the hiddentax.
also, 20% for learning and at least finding HOLES IN THECOMPANY SOFTWARE. logic flaws, security flaws, bad code,bad process, bad procedures, bad SQL, bad db architecture,
warninggg! this can be dangerous. doing the job of the cluelesss CIO chief inof officer can lead to BLACKLIST.
does tthzyat help?
I kind of regret not making more of an effort to do this whilst I was in university; I had so much spare time!
"We are down to you. Your pain and sorrow is our great pleasure . All your base are belong to us.".
The title of the site is also set to "Mac Robbery".
Same thing is on their Twitter account.
I don't think this is a prank - they were in the middle of a bundle sale which should have been running for the rest of today.
The background and the picture of Kim don't appear to exist anywhere else on the web according to GIS.
You need to get past the "been told", and start communicating what you want to achieve. It might be too late at this company, but I would bet not, just because these roles are already filled doesn't mean they will stay filled, or that tasks won't outgrow the current holder. Think ahead, and aim for a goal, communicate with every means you have that your ready for that goal.
"Fortune favors the prepared mind." - Louis Pasteur
1. You shouldn't be afraid to ask for what you want. As a founder, it's tough to always know what goes on in everyone's mind. I try as much as I can but when I'm a part of the conversation I will be able to help much more than just being looped in after a conclusion is reached.
Every good developer wants to be challenged. Some want to stay on the technical side, others grow into managers, and some like to blend the two.Talk to the ceo/founders and let them know how you feel. I'm sure they appreciate what you've done so far and will be happy to figure out the future.
2. You're at a very unique position where not only do you know how the entire system works but you also know how it's supposed to work. This gives you the ability to contribute to any of the different roles you mentioned in a really meaningful capacity.
One of the comments said something about not being good at those. I mostly disagree with that on principle. Just because you don't have the training doesn't mean you won't be an awesome manager. Some companies actually don't hire managers but rather promote. I believe LinkedIn is one of those companies, and they do it because they want those the manager will oversee to really trust the manager. That's something that, as a developer, you can do when you've seen the person's work.
3. The skills needed to get something off the ground are somewhat different from those needed to take it to "the next level". It doesn't mean you can't have both, but it is a question you should ask yourself. Do you like the rush and the excitement of creating something new? Or do you like the joy of seeing a large system run smoothly at super scale with time to sleep? Or both.
But you should stick by the VP of Engineering and learn whatever you can from them. Be their right-hand person, and try to become someone that the entire company goes to for technical issues. It's not hard to be the de facto CTO, just make sure you are a part of all the technical decisions, and a positive guiding force for the company. As you become more and more the face of technical decisions, eventually you'll be recognized for it, or you can go to another company in that higher role.
Those skills you've developed don't have much value at your current company any longer. They are most likely keeping you around for historical value and once the systems you built get replaced its over pretty quick. Take those skills elsewhere and brand yourself as someone who takes a company from 2 to n employees.
Not everyone has your skill set so learn how to market them. I'm on my second company where I was an early hire. I learned that you're way more valuable in the beginning then you are at the end. Eventually I got pushed out by management types because I held on to the notion that I helped build this company and deserved something for it. Don't wait too long to realize it.
When companies are small the jobs are all blends because they have to be, you just don't have the resources to do more. But as the company gets bigger (presumably through growth and not just a funding bump :-) you can allow folks to focus full time on specific roles which, in theory, gets you better execution of those roles.
A friend of mine once said you often could figure out what role you liked "best" by the first thing you did when you got in, did you check the build? (developer) did you check email? (manager) did you check the web? (marketer) A bit simplistic but it does make for interesting introspection.
As employee #2 you're well connected with the CEO and the other founders, and you can talk about what you want in your future. You should sit down and have that talk with them.
From what you've written, it seems like you really don't have a lot of experience developing careers either, which is one reason to bring in an experienced engineering manager. It's not a knock on your skillset managing a 10 person team and delivering. Just a realization that management isn't something you can just quickly learn on the job.
My advice: have a discussion with whomever the new engineering manager is, and explain your career aspirations and the current dilemma you have.
If you want to wear a lot of hats, go join another early stage company (the items you mention make an awesome resume). If you want to grow at the current company, pick an area or two (development+strategy or management) and let the ceo know what you are interested in.
Be pragmatic: there will be other opportunities which are equally interesting and staying isn't helping. You could be CTO at a different startup. Further, you should be approximately at your zenith at the company and they should be able to provide a strong reference, if you stay dissatisfied your performance and appearance will suffer - along with your potential for future employment.
Also happiness is about the journey (career, parenting, etc). If you're not on a journey you won't be happy!
1. Your immediate job won't be as gratifying.
2. (And this is a bigger deal) You won't be in the room during the exit when the money is being handed out.
Re 1, as I saw it, given my equity stake, I should just put my head down and wait for the liquidity event. This worked well, though was a large blow to the ego. Given personalities and priorities of the founder, agitating would have put my equity stake at risk.
Re 2, despite the fact that you may have an iron clad equity stake, there is often money that is handed out in an exit which goes beyond equity. In my case it was about $90mil in retention money. If you're seen as one of the "important people", you'll be in the room when that is being divvied up and can get your hands in the cookie jar (at that point it's just a land grab.) If not, you're shit out of luck, since no one at that point will be looking out for your interests.
So, I would say I would take the long view and not worry too much about the ego/job satisfaction. If you end up set for life, the resentment will fade. (I'm 3 years post liquidity event and the resentment is for the most part gone. Both for the name on letterhead issue and being left out during retention.) I would, however, do all I could at this point to re-establish myself as one of the 'important people' so you can be in the room when the cookie jar is open. In my case, it was impossible since in my obviously biased view the founder was an ass and an idiot, but perhaps your situation is still salvageable.
You could be a repository-of-lore brilliant coder / guru. Sounds like this is roughly what the CEO has carved out for you right now.
You could be CTO/Head of Engineering. You may or may not want this job or be suited to it, based on what you've said so far.
You could sink down into the organization as a (hopefully) really rich mid-level engineer and enjoy the ride.
You could do it again as a founder rather than early employee somewhere else.
I think you should figure out what would be best for you, what you want, and then see if the CEO agrees and will make it happen. At some level, if you're a few years into vesting, and the company is successful, it may not significantly change your financial outcome to stay -- you have early stage stock in a successful startup. More could be nice, but it won't change your outcome 10 or 100x, like moving to a founder role would.
Lots of good options; just don't do the west coast thing and stew on it while you write increasingly bitter tweets and blog posts. :) Today is a great day to get some clarity!
You don't give us a clue to answer this. Your whole story is about things that happened. You haven't told us about what you wanted. You haven't told us anything that you did to get what you want. Did you know what you wanted? Did you do anything to try to get it for yourself?
> I should just "be happy."
I call bullshit. If you were happy to passively accept what's being handed you (money, responsibility, acclaim), you wouldn't have made this post. Honest mindful gratitude makes a person happier, but cloaking bitterness with false gratitude, which this sounds like to me, will make a person ever more bitter.
You have to start with what you want.
If you want to keep doing everything like you did before, then you should make a career as early stage CTO. If you want reward and acclaim for that, then you have to negotiate it up front, usually as a nice slice of equity. Be advised, there's risk in that.
If you want to grow with a company, then you won't be able to do everything you were doing before. You will have to focus. And you have to assert your case that you want the role and can be successful in it. To grow with the company in one of these roles, you'll need to cede the other roles to new teammates. You will probably have to mostly stop coding. You will have to embrace the thousand headaches that come with the new role as the company grows.
These are two possible career strategies. There are others. All start with knowing yourself. All depend on asserting yourself.
I would guess most people there don't even know who you are, right? They might even know, but they probably don't get it because what you did in the past doesn't matter. Your company is becoming more corporatized and in that environment all that matters is your title. Since now it's likely just "developer" or "senior dev" or something, you're just another scrub with a good backstory.
If I were you I'd update my CV to reflect the contributions you made then start working your network to find the next thing.
Early employees are basically jack-of-all-trade doing essentially the same job as the founders (minus the fund raising) in building up the company but with much less of the upside. If you could, be the founder. Don't be the early employee.
Seems like it is not too late; just talk to the CEO and VP of Engineering and say you want a new role created called Chief Architect or Principal Engineer. As employee #2, it seems perfectly fair that you should get some additional recognition above and beyond simply "developer". If they like you and want to keep you, then I think definitely they would not object.
Early on I was promised equity in the company, but never got anything in writing (I knew nothing about startups when taking this job).
I was actually treated pretty well as an employee, given good raises, position upgraded to Director level.. but that equity thing was always out of reach, and they kept pushing it off with various excuses. I trusted the CTO, but the CEO was a greedy type.
By the time I put my foot down, it was too late, and they had no problem letting me go. If I had made demands about 6 months earlier they would have been forced to do something or end up REALLY hurting. But I had knew that I had waited too long, so I secured a job before I tried anything. I learned a lot at the company, so I'm grateful for that, and I'm working at a much better and more interesting place now :)
One problem I had in my youth was that I really wanted to be recognized for what I did without a lot of blowing my own horn. If I self-promoted, my victories felt hollow: was I getting kudos for my work, or for my self promotion? So I energetically avoided calling attention to my accomplishments.
Eventually I came to realize that this was a little crazy. I can't expect managers and clients and investors to automatically appreciate all the stuff that it has taken me years to learn to do well. I've discovered that there is a reasonable level of taking credit that is neither sleazy nor slighting of my colleagues. Being modest and self-effacing is good, but it can be taken too far.
So let me answer your question with some more questions: Do the executives know that you did these things well? Have you told them you wanted a position other than as a line developer? Do they know that you're unhappy? Are you regularly discussing your career plans with them?
If you, like I once did, find that stuff revolting, then I'd encourage you to find someone to help you practice those conversations. You shouldn't let your ego speak all the time, but it is ok to let it out of the cage once in a while.
If a company refuses to give you equity, you shouldn't join that company - People don't change like that; if the employer has an exploitative attitude at the start, it's not going to change.
Also, you have to be assertive when you talk to them or they won't respect you and will just use you and put someone less qualified (but more assertive) in your place.
It really sucks, but this is life. You have to lock-in the value of everything you produce before you even start! You can't give other people options because they will screw you.
Not all managers are like this, but most of them (by far) are! I think Silicon Valley might be an exception - Mostly because CEOs there are younger and more optimistic.
I was in your position in 1996 when I worked at WebLogic I was the first server engineer after the founders. To give you an idea of what a crazy career path that can lead to, see my LinkedIn:
I'm still an engineer and code everyday. Just have a lot of other jobs :)
if you believe in the company, and the founders, go to them and fight for what you've created and your position. If they don't listen and help come up with a solution to retain you, it's probably time to move on.
Your career path is your responsibility. Don't expect anyone else to care about it, though occasionally someone might.
I would vest in peace, learn from senior management (seems like your company hired good senior folks) cultivate relationships both in and out of the company (VC + advisors)... then start tinkering in your free time. Once your options vest you should be ready with an MVP and solid contacts to hit the ground running.
One thing that might have been better if you cared about not being hired over: ask for the title of CTO or VP of Engineering when you were hired. If they give it to you, you know you're on the same page. And if they won't give it out to you when they're least proven, you can bet that it's unlikely they'll consider giving it to you later when they have more options (and can bring in a new shiny person whose only limitations are those they can discover before hiring).
That's in the past, though. The good news is that you've got a good story here that counters any claim that what you do best is "just writing code." Sit down with the management that's trying to define you that way. Remind them everything you've delivered, just like you told us. After that recap, tell them something like "I've enjoyed contributing to the company's success in all these ways that go beyond writing code, I see continuing to contribute and grow in this way as an important part of my career development." Don't make this about competition with the new VP and ops guy -- let management know you intend to do everything you can to help the new hires make their big contributions too. Just let them know you need a continued technical vision/management role, a title that reflects it (though it's probably not going to be VP), and a path for the future. If possible, come up with some new ideas/initiatives of your own before this conversation, and maybe even a title to suggest. Sell them on a vision of how letting you contribute in this way is going to make everybody more successful, just as it's gotten them to the point where they're at.
And if they don't respond to that... if everything you've written here is true, I suspect there's no shortage of other startups/businesses that might be pretty interested in having you help them succeed.
So for me the important thing was trying to understand what parts of the job I really want to prioritize (in my case active coding and product definition) and regardless of title making sure I inject myself appropriately. So that means if theres a conversation about a new product were thinking about building I make sure Im in those conversations from the beginning.
If youve been with the company from essentially day 1 you likely have a decent amount of political sway, even if you dont know it. Id start by figuring out which parts of the things that you listed you actually want to stay involved in. As another commenter mentioned, if you really want to wear all those hats then maybe finding another brand new startup is the only real choice. But if theres one or two areas that are dearer to your heart then Id try to figure out how to make that your day to day activity. And Id hope given your history with the team that you can have a dialogue with the founder(s) about how to make that happen. At the end of the day the title doesnt really mean shit, but if youre not loving the work then you owe it to yourself (and they owe it to you) to figure out how to make that right.
You might need to adopt the "owner's" mentality - which is that as long as these people are growing the value of the company, you are free to focus on what you enjoy the most, while they work to make your equity more valuable.
That said - if your contributions in all these areas are truly valuable, at a small company, there's always a case to be made for someone to be spanning functional areas, if they have the expertise and chops to add value. Probably worth a conversation internally. As others have said, assert yourself a bit.
You should think about what's best for you next. If you think you are not going anywhere, you should cash out and leave.
When I started, there were already a few people working on it, but because of an office move, nobody stayed. In a way, I am engineer #1, just with some code to maintain already. I had experience as a lead engineer already, but my job here was much tougher, I had to change my role every 6 months, from only coding to only devops, hiring, managing, doing all tech strategy choices, doing resource allocation, doing management meetings, etc...
I was eager to improve as a manager, but I still loved coding. It was very hard to hear that the company was hiring a CTO and leave me no authority. Now that person is full-time.
I tried to be very clear about it, I am aware of my strengths and weaknesses. I also fully understand that a founder needs to think about what's best for the business and not just people's carreers. I also made it clear I was there to learn, but the reality is that I never felt I was given a chance.
I stayed there a few months to get some learning from the new CTO, vest some more options and then I left. I left because the situation was toxic for me, with a mixture of resentment and miscommunication from their side. I personally think there's not much you can do in those cases... just start again.
Now onto the next adventure...
I think this is a very powerful statement you made: "all the tasks I did were less challenging than some critical parts of the code base I wrote from scratch". This tells me that the problems that interest you the most are coding and architecture problems, and that you are happiest when solving those problems. Employees will have the greatest positive impact when they are focused on tasks that they enjoy. But it seems that you desire something more. What is dissatisfying about the current situation? Are you bored with the coding? Are you jealous of others getting recognition? Are you frustrated with the direction of the organization? Are you frustrated that you are no longer "that guy" whom everyone depends on? All of these circle around the same question: where do you want to be?
Leadership comes in many shapes and sizes. It's not just about how many direct reports you have. Fundamentally, great leaders shape the direction of an organization. Employees look to that person for advice, encouragement, and approval. It sounds like the company decided to hire others for formal leadership roles. A very difficult and powerful question is to ask yourself "what is the VP doing that I wasn't able to do?" There is a tactical reason that the CEO hired the VP, and it isn't because of credentials. Perhaps it's his/her ability to communicate across teams, or gain the confidence of management? Don't let your ego tell you "nothing, I'm better than them"; there is a reason they are VP. Different jobs require different skill sets, and understanding where you are strong and weak is critical your success. Being an engineer who kicks out mission critical code is fundamental to the success of the business, but it is extremely different than developing and managing a team. With a humble attitude that is always looking to improve, there is no stopping your career growth.
I've seen this transition happen myself, where the company grew, got cut up into a bunch of departments, all of which got a manager, mostly external hires. I feel like this way of organizing companies (departments, hierarchical, middle management, etc) is an anti-pattern. Everybody does it because everybody does it, but every dividing line you add reduces efficiency, and I've seen firsthand how damaging middle management is to the agility at the individual level. I don't know what the antidote to this anti-pattern is, but i feel like company structure is a territory ripe for innovation.
You have learned why every good developer has side projects, gotta keep the dream alive. Two of my engineering heroes did just that, Scott Adams and Mike Judge. They can also be technical related in games, apps, etc on your own. It is much better that way in the end if you like products to launch with any amount of control.
> Scott Adams has always had several side projects because they gave him energy to endure his boring job. One of these projects became the sketches for Dilbert.
Harness the energy of that boring job into something great, it is the American Dream of Engineers across the land subjugated to the power structures of now.
When you have your own things on the side you are also a little less ego driven at work as you have controllable areas on your own products and it lends to smoother teams somehow. Encourage others at work to have side projects, watch how it makes them relax and work better at work.
Most of all, always do quality work, even if it isn't fun make it fun or gamify it. If you are in a situation that prevents you from doing quality work, then you should move on.
I have always felt that working in startup is like giving a kid 10 toys to play with and taking one toy away every year. It's very normal not liking and feeling of giving up something you own but it is as important for a company to get away from generalized to specialized resources with the growth.
a senior management leader once told, his goal every year is to find, train and pass on the baton of some of his existing responsibilities to next person until he has nothing else left...
As employee #2, you are a technical co-founder, period. The problems you have outlined will not be solved be staying at the current company. It's apparent that the owner has chosen to keep you as 'just a dev', even though your contributions are outmatched and significant. It seems opportunity to seize more than what you could have has unfortunately passed you by.
From what you're describing in your post, it seems you're showing regret. Other people have been hired for these positions, even though you built it.
The thing is about being an early employee is that it's a blessing and a curse. Most people don't realize this but the thing is the feeling you get for being the guy that put this company where it's at today is unmatched.
The problem is that once it's built, you go into maintenance mode and it turns into a corporate machine. Everything you enjoyed and discovered during the process is now going through "procedures" and "process". The freedoms gone, other people are here now and they start getting the ears of the owner instead of you.
You feel like you own this company, you should, you built it and partied with the owner for years (guessing here). The biggest regret at this point is that you probably don't own enough (equity) or you were never made co-owner.
You have a choice, stay and give your last effort to be in the position you earned. Or leave, full well knowing that you will likely not be #2 at a successful startup again. We all know that startups getting successful is about the same as winning in the lotto. However, you could be the guy you are describing in your post, the VP of Engineering that gets hired for a startup that is starting to grow...
In either case I wish you the best of luck and as another dev can appreciate the weight of your decision.
I would expect the first engineering employees to know the most about the stack and thus naturally become the engineering leadership as the team grows, which it sounds like you were. If they felt the need to hire above you, it sounds like you were lacking some cross-section of experience that the founders/board want. You should ask them.
On a related tangent, I would love to know how someone in his shoes could get crowdfunded to start a new business. What do you advise? (Maybe I should start a new thread and ask.)
Also bare in mind that this is a normal process for SOME companies as the more they grow the more people are hired so as to try and achieve more (this is debatable) work thus higher revenues.
Personally, I would see what you really want from life and if you are seeking credit/appreciation for your own work then
start a new business or co-found a product or join a startup that is prepared to give out equity
Second, let me focus on the management point. You wrote: "I managed an entire team of 10 people without ever missing a deadline of the whole team, and now they brought in an engineering manager"
a) Do you think the (now-bigger) team needs a full-time manager?b) If yes, did you want to become that full-time manager? c) If yes, did you make your desire known?
If the answer Yes, Yes, No, that's ok- lots of people want to continue being individual contributors. It's still on you to work with management to define the right structure that works for you and the company. Maybe you become some sort of Chief Architect. Maybe you help hire the manager.
Either way, if you were as pivotal as you say you were, you should certainly have the CEO's ear to bring this up in a constructive way.
Really, if you want more responsibility, you have to sell someone else that you're the best person to have that responsibility. No one should give it to you out of loyalty because that is a disservice to all the other people in your organization that are relying on you to fulfill that responsibility.
It doesn't sound to me like you know what you want to do--mostly because you have not explored your options. I will hope you have a good relationship with the founders. In that case you should have an open and honest conversation with them reflecting about your experience so far, that you're proud of the range of experiences you've had, and hence why you think you're ready to do something more--but you're not sure what.
If they are friends, they'll help you. You can ask them to give you feedback on what they felt you did well and what they felt others could do better, so they hired externally. This will give you something tangible you can work on.
If they are really loyal back to you, they'll create an opportunity for you to develop skills that will lead to advancement.
Of course, this conversation is very shocking and anxiety inducing for the founders so how you frame it is important. If you are not accusing them of passing you over, but really genuine about learning and developing yourself, most people will want to help you.
If not, you may find a better opportunity elsewhere. Again, it's just business. Keep in mind, sometimes you have to sell yourself into a role that you're not quite sure you can do--and then do it.
p.s. If you asked me, it sounds like you're interested in a engineering management role, which is not the same as a CTO role. If you have a conversation with the founders, you could focus on that.
It's best not to assume that the people you work with know what the best role is for you. I started around the same time as another engineer, but our roles diverged. This was, in part, due to both of us being open about where we expect our career to go as the company grew.
So, if you want to be something different, have the discussion with the people who hired you. They clearly have seen your talents and shortcomings. If it doesn't go where you want it to go, then it's probably time to find a new job.
Never been in your situation so my suggestions may not be appropriate. From the order you specified the tasks I think for you Technical Strategy aspect ranks highly. I think it gave you great challenges and satisfaction. If that's true then I suppose a role would be that of a CTO given that one of the founder is not playing that role.
Here is Fred Wilson's take on CTO vs VP of Engineering.http://avc.com/2011/10/vp-engineering-vs-cto/
I think ChuckMcM's advice of chatting with the founders a bit sounds good. You could try and spin it in a positive way... "I was doing all this stuff, and even if it was really crazy at times, I felt like I was growing a lot and contributing a lot, and I feel like I'd like to continue that somehow. What do you think?"
Maybe it's a psychological thing, but really good engineers are never employee #1-5 at a startup. They just aren't.
A company I was at started growing so fast (factor of 10) that it lost it's identity and with it a lot of the things that made it enjoyable/interesting. We opened new offices downtown and in other cities and from then on it was time to pass on the torch.
Clearly, it wasnt about keeping the old guard, but about growth. I did learn a lot and am respected for what I was able to accomplish.
It was a great experience, but sometimes it's good to realize when you're just the launching pad.
Bowing out gracefully was the key for me.
1- Time to create company product #2. Ask for a tiger tea, break out of the hierarchy, and have fun building something from scratch.
2- Move on. Find a great idea or another co-founder, and repeat the startup experience in another startup.
I've done both of these paths. Both can work. Both play on the strength of a generalist who can get a company off the ground, but then who doesn't fit into the subsequent culture of a growth-stage company.
I suggest you leave and take this experience with you and be more aware during your next professional engagement. At this point, being in the company is holding you back.
They may well consider you as "an engineer with little prior experience, and we only gave him that role because we couldn't afford someone experienced yet". To the next firm, you are an engineer with experience building a company's central product from the ground up and leading a team of 40+ people in a high risk start-up environment.
Only do this if you think you've set the company up for long-term success and it will still be successful even without you there.
Also only do this if you think you can make out better in the long-term (more money, more equity, equally sure thing elsewhere), otherwise just buckle down and ride out the remaining 2 years.
Unless you think your current company is trash, then just bounce.
You can learn to be happy with what you have, or you can determine what you lack, and work towards getting it.
Almost no one chooses the first option. When we don't actively work on the second, we often embrace our dissatisfaction without mindfully working to change it.
In the meantime I work on building my own sellable tech.
Hope that helps, I'm working on a sweet e-commerce platform right now and building just little sellable tools
I am currently in a similar boat as you.
1) If you do not have much experience scaling a team, then it is sensible for the founders to bring in someone with more experience. Scaling team requires more than just hitting deadlines. It is about recruiting, retention, recruiting, managing personalities, career growth, recruiting, managing up, communicating across teams, etc.
2) Everyone's role changes as you grow, for better and worse. For instance, early on the VP gets to have fun setting direction and designing the overall product and strategy. Later on the VP might be spending 90% of their time dealing with conflicts, recruiting, firing, managing up, etc. They may long for the day when they got to play a big role in product development. Early on as engineer, I had the benefit of being able to build an entire product by myself. Later on, the advantage was that I could take vacations and did not have to deal with bugs and outages 24/7.
3) You will have to specialize to some extent. You cannot be the jack-of-all trades role forever, no one can. If you want to eventually have a VP/CTO role, then you will need work with your VP to develop your management abilities. For instance: ask for mentoring, start reading books and articles on management, ask to have a junior engineer put in you, help out with interviews and recruiting. (Note to actually get a VP role, you will probably have to switch to a smaller startup in a few years, using your cred from this gig to get you the job.) If you want to do greenfield development, work with your VP or founder to carve out a role building out innovative/experimental/skunkworks features. If you want to do scaling and architecture do that. There are lots of ways to interesting work and build valuable skills, but you are going to have to choose a course. (In my situation, I alternated between doing experimental/greenfield features and doing scaling/rewrite work on existing tools.)
4) With regards to customer facing roles, I highly advise that your company have a policy that every engineer spend a half-day in support at least once a month. It is essential that developers stay connected to the customer, both so that you can intuitively understand how to solve their problems, and to increase your empathy and motivation.
5) Try to figure out a way to get looped-in informally to the strategic aspects of the business. Make some sort of effort to have lunch or beers with a founder once a quarter. If you have 1:1's or have a wiki where decisions are discussed, then that can be a good thing. The execs understandably want to keep management and strategy meetings to a small number of people, otherwise the meetings suck. But finding a way for you to informally connect and give your two cents can be valuable both for you and the execs.
6) If you want to raise your profile and get your name known, use whatever leverage you have to get some favors. Ask to have yourself put on the web site as "Founding Engineer." Figure out a way to have the founders to introduce you to useful people, and to help you get into some of the more prestigious invite only events, whatever they are in your area. You have to use judgement and be diplomatic, because you might also lose out on advancement if you are seen as angling for a quick exit.
7) Generally, I would recommend sticking with the company as long as it is on an upward trajectory (unless you have a compelling alternative). You will learn a lot as you go, and your reputation will increase with growth.
Eventually I realized that I had the best of all worlds. Why does one want to be a VP? Usually money and status. What sucks most about being a line-level employee? Lack of agency/control. But in many ways it is less fun to be a VP, than to be a high-status engineer, who has enough sway to avoid micromanagement, enough credibility to control his or her own destiny, who can spend their time working the craft that they love. As engineer #2, you get status by virtue of your early employee number, and hopefully and you will get good money from equity stake (if not, then that is truly unfortunate). So hopefully you get the money/status benefits of being an executive, while still getting to work your craft, and still getting to stay in a peer relationship with your fellow engineers.
2) If you want their job: assert dominance.
3) Otherwise: flip finger, leave, start your own startup.
if you get a bite, go back to your startup, say you have another opportunity, see how much they want you
BTW, where are you located?
you need to figure that out, ask for it, and if you don't get it, leave.
Did you want to be a manager ? VP of Engineering ?
The way I see it, being developer seemed a natural thing for you. I also assume you must have got significant stock options and you must be drawing lot more salary as well.
Don't take it personally. Even if it is personal, it's not worth getting bitter about it. The pro-young ageism only works for Stanford kids; if you're an average 24-year-old, this game still treats you like shit in most cases. The "social climbing" dynamic in startups isn't uncommon. It sounds like they don't have a culture of internal promotion. This will burn them, later on, because people will catch on to the social-climbing/no-internal-promotion culture and everyone will start doing bare-minimum work... but you probably won't be there when it does.
Ask for a VP-level title, even if it doesn't involve you managing anyone. If you don't have the experience to be the VP of Engineering, then you can't expect them to give you that title, but you should get something at the same level, so that you have political equality with these new guys. Even if it's a meaningless VP title ("VP of Technical Culture") it at least shows that they're committed to giving you the credibility that you need to continue contributing meaningfully to the company. No one's going to take you seriously if you're Employee #2 and don't have a title, and you can make this argument in the negotiation. And saying "no one's going to take me seriously if I don't get <X>, and I won't be able to do my job" is a great way of saying "I'll leave if I don't get <X>" without actually saying it; it has the added benefit of speaking from a perspective of their needs (your ability to do your job) rather than yours.
If you want to be a founder or CTO in your next gig, demand investor contact. If they won't give it, the words you want are, "If you're not willing to give me this, the right thing to do is to accelerate my equity vesting, so we can separate cleanly." You're not actually threatening to quit, but you're strongly implying it in a way that (a) makes it clear that your needs aren't going to go away, because you've started to think seriously about the future, but (b) doesn't commit just yet to one course of action. (They could re-up your equity, or give you the investor contact, in which case you'd stay.)
If your founders are good and this just happened "accidentally" or because you had your head down and didn't fight for yourself, you can improve your position significantly. You may not get everything you want (you might have to settle for a Director title and investor contact only to the more junior partners) but you'll make progress and be ahead of most people your age. On the other hand, if they're deliberately fucking you up the ass, then expect them to denigrate your work. Again, don't take that personally either; they're taking a political decision (to grow above and demote you, because they're social climbers) and back-rationalizing it. So don't let that, should that happen, embitter you either; just move on.
Another important factor that's often not considered is how long your commute is to A and B.
A job with 75% travel basically puts the rest of your life on hold - significant other, relationships with friends, etc. It's harder to stick to proper fitness and diet when traveling so much. You've got to deal with all that travel-related stress (ugh, airports). And business travel tends to get old and boring really, really fast.
Given all that, company B is the winner - although personally, I wouldn't take that job either. Even 25% work-related travel is a pain in the ass.
Arc has a minimalist aesthetic but it has so few resources that it is hard to discuss it as an ecosystem.
Arc was intended to be a 100 year language. Like Clojure the easy starter kit hasn't been built. Its terseness means expressing yourself requires a grasp of Lisp nuance. Arc is not analogous to Racket's Student Languages. Knowing Lisp already is a good predictor of success. There aren't a lot of Arc libraries. There are no Arc books. Maybe there's more than one tutorial, now. The community is not as vibrant as that of the other Lisps previously mentioned.
About the same time [the very distant past in Internet Years] both Paul Graham and Rich Hickey set about killing conversation at cocktail parties with "I'm writing a dialect of Lisp."
Rich Hickey didn't just write a dialect. He didn't just design it from the ground up with no cobs. He built a language community. Paul Graham wrote Arc and then dedicatedly built a community. It just wasn't a language community. It was the YC program and HN and all the common interest that connects to that.
I would not recommended Clojure as a first Lisp for most people. Emacs knowledge, Java Experience, and some Lisp already, are helpful. There's a lot more assumption of Computer science as well. But I would over Arc because you can use Google with Clijure. You can use IRC. You can use StackOverflow. There are Clojure conferences, Clojure consultants and Clojure meetings. There are even listservs.
Also to sweeten the deal I'd be happy to publish what I learn and give credit to my tutor.
Motivation isn't some magical discovery that carries you through the rest of your days. Motivation is a daily bath to remind yourself of what's important to you and why. Forget to bathe your mind and feelings and they'll stink and seem worth staying away from.
What I found helped is just going out there and doing those excruciatingly uncomfortable things. Asking boys/girls out, asking for a pay rise, public speaking etc.
However you WILL absolutely need some kind of moral support.
If friends and family are not helping then go find some friends that will. Get away from negativity from other people that can be holding you back. That is a massive topic in itself. Hopefully you are not dealing with that problem too.
A great positive example is Toastmasters. Participate and you will get better at public speaking. It will reduce it from a deathly experience to mild anxiety! More importantly thought the people there WILL encourage you and forgive your for forgetting your lines or being shy or whatever. Keep going and you will get more comfortable and you won't get derailed.
Getting some kind of therapist or psychologist to help you can be a good idea. Because getting over shyness is a hard knocks experience and you need this assistance. It doesn't mean you are crazy / mentally challenged etc. It means you are investing in your own personal development.
Also to reiterate the point - pick your friends wisely - try to associate with people who will encourage you be more confident. Also having some confident, easy going friends who you can emulate will help. Humans learn by imitation. Pick (or dump!) your partner wisely for the same reasons.
As a result, I began watching a bunch of "pickup artist" videos on YouTube. While I completely disagree with their goals, I admire the confidence of many of the people who do that. I think my favorite was this video on YouTube: http://youtu.be/1mRM1VwUiYA It got me thinking, and so I made the goal that I would get a girl's number every day for a week last March.
That week I really worked to make the goal happen. Walking around my college campus, I went out of my way to walk next to girls I thought were attractive, and sat next to them in our food court for lunch, and in the library. Originally I had thought that they would all turn me down or at least seem a bit annoyed about it, but by the end of the week one had told me she was married, one said she had a boyfriend, and none of them seemed the least bit annoyed about it.
At the end of the week, I had set up dates with seven different girls, and had 12 different phone numbers. To be honest, it was a bit overwhelming. I kept forgetting which of them said what, and confused their names and other bits of information. I asked three on second dates, two of those on a third date, and only one on another date after that. In the end, I didn't end up dating any of them, but the experience was extremely valuable.
I seriously stand up straighter than I used to now, and I'm not as afraid to talk to anyone. A friend and I looked to launch a startup that would help students on campus, so I spent a day on campus surveying random students walking around between buildings. I now average about a date a week with girls I'm actually attracted to. And I really have no problem talking to anyone.
The goal I set probably isn't right for everyone, but set a goal that is right for you. Speak to one random person a day and get their contact info. Your network would grow by thousands by the end of the year (including second- and third-degree connections).
If you want to be confident with a wider group of people, you need to understand what part of you are you not comfortable showing to other people. For some people, it is physical. They do not believe they are attractive enough and so it holds them back. For some, it is intellectual, "what if I say something dumb or unimpressive". There are a myriad of possibilities and it is probably a good use of your time to understand what your issues are (and why you have those hangups).
There are a number ways to deal with your hang ups. One way that works is to apply brute force. Just act inspite of your anxiety. I suspect that a majority of people that appear really confident just take this approach. They're scared but just do it anyway.
Another approach is to try and remove the root of the fear altogether. Some people do that by actually courting failure. You think people are judging your intellect, then say the dumbest thing you can think of and see what happens. Scared people don't think you're good looking, approach people completely out of your league. The idea is to actively cause the situation you are afraid of so that you can experience it (instead of imagining it) and realize it isn't so bad.
Whichever approach you decide to take, I would suggest you ensure you do take action to deal with it. Anxiety has a way of making you feel like crap, which leads to further inaction, leading to more anxiety and then a spiral of regret and wasted time. The truth is there is not much that can happen to you that will crush you completely. Time and the love of a few heals all wounds.
The fact that you have recognized an area of your life that you want to improve and even specific situations where you know you can/want to work on it is half the battle. The other half is making a conscious effort to be more confident and less shy when these situations arise. Part of this is fake-it-til-you-make-it, and part of it is re-wiring your brain to be open, communicative and confident in these situations instead of shy and/or anxious.
As far as a book recommendation goes, I read a neuroscience book (written for the layman) that while not dealing with this topic directly, will definitely provide you the knowledge and understanding of how to improve. It's called "The Brain That Changes Itself" by Norman Doidge. It's about neuroplasticity, how it works and how you can use it to change your habits, behaviours & skills.
This has been one of the most impacting books I've read in my life. I have purchased more than 10 copies for family and friends and everyone who has read it has come away amazed and able to make almost any positive change in their life.
Cheers & good luck!
If you are like me you are rational and skeptical, willing to be proven wrong, but stubborn in holding opinions you believe in. If you are slow to form opinions, you may not seem very confident, at least until you are sure about something. And even then sometimes you may be confident about an opinion but you're uncertain what will happen if you express it, so you keep quiet.
If you're like this, then I think a lot of the advice in this thread is good. Your confidence will improve with practice and familiarity. Try politely disagreeing with your boss. Try inviting some women for coffee. Choose low-risk circumstances until you get used to it and prove that nothing terrible will happen and you'll survive. The good news is that as you get older it gets easier, sort of automatically. I'm 37 and there is a lot more I'm confident doing now than when I was 25.
I still have a hard time looking people in the eyes. Maybe it's confidence, but mostly I think it's just too hard to think about doing that and think about what I'm saying at the same time. I don't know how others do it! I look at people while they're talking, but as soon as it's my turn I forget.
What I'm trying to say is that most likely there is nothing wrong with you. Probably you are just fine as you are. Thank goodness for self-doubting, open-minded, thoughtful people! So instead of trying to change your personality, try changing your basis for being confident or not. Be patient and don't feel bad at it. It gets easier.
* Do things, gain experiences. Build robots, take a rock climbing class, go on random hikes, take a dancing class and own your lack of dancing skills. Experiences build a more interesting you, which in turn provides for more interesting things to talk about.
* Read more books on a diverse set of topics that interest you. Watch much less TV (some TV is important from a conversational stance), play far less video games.
* Talk to random people regularly. People next to you in line, the homeless guy that asks you for spare change, maybe even a woman that you do or don't find attractive (this was an excellent crutch in my youth for gaining confidence and it made me realize how deep women were).
* Fake it til you make it.
* Study Buddhism. Learn how materialism and attachment affect you and work to fix it. When you do, external variables will have less of a power to drag you down should something go wrong.
* Realize that everyone else has their own inadequacies and issues behind the facade they present, even people like Obama. And that's OK, it's what makes humans beautiful and interesting.
For me, what really really helped and now I can't get past 2 or 3 days without doing it is exercise..
I'm not sure if you include exercise in your weekly routine but seriously man.. it saved me. I started with cardio circuits purely for a mental boost, and energy spark and it sorted me right out. After a while I became more confident in myself and then moved on to weights an it really helps!!
Maybe working out and getting physically strong would help you as it helped these guys?
I put code on GitHub on the off chance someone else will find it useful or informative. Between the user base, platform usability, and the fact that I use git anyway, it's convenient for that. But "portfolio" isn't really a consideration.
If, for some reason, you want a portfolio anyway: my recommendation would be private website + GitHub. Preferably, in the form of writing an article demonstrating why a given project on GitHub is novel or interesting or useful. If you go that way, any off-the-shelf blogging tool should work (e.g. Jekyll / Octopress + GitHub Pages), and it will tend to be more useful to the community as large (which increases the odds of other devs explicitly being interested in working with you).
Or, to reference an old magazine cover, is it more of a "View of the World from 9th Avenue" thing? FWIW, all of my code is on Bitbucket.
Mining is based on a network agreed difficulty level. So as more miners participate and get better hardware the difficulty of the puzzle increases (by lowering the bar).
Currently it requires dedicated custom-built hardware (built solely for mining bitcoins) to make any kind of money mining Bitcoin. Even then you have little chance of winning the reward - so you normally would join a mining pool to pool computing power and share rewards with other miners.
The mining acts as a proof of work. It helps solves the problem that in a peer-peer system you can't trust anyone, because in a democratic system an attacker can run up any number of nodes they like at little cost. However with mining this is not possible, such nodes will not be trusted.
This is a very simplified view of things and there are more complexities but it gives you an idea.
Buying means you buy already-minted bitcoins. You can buy them privately or on exchanges. Then they're yours. The exchanges' role is to facilitate trading between users, and they operate at a profit (they charge you a % to buy). Basically, it'd be hard to sell your bitcoin if you didn't have exchanges. You'd be posting on craigslist or something. And people would be scamming you for the money. Stuff like that.
Anyone can mine on virtually any hardware, however due to competition, it's hard to mine profitably. You have to have specialty equipment that is both very good and very efficient (power-wise). You can mine on your own or as part of a pool, but you essentially have to 'get lucky' on your own, and it's very unlikely that'll happen. My advice is to not think about mining until you've done a lot of research and for some reason decide you want to do it. It's a bad idea for almost every non-expert at this point.
These days RAM is cheap and SSD storage is also widely available. For a very long time, one of my side projects with 50K users was hosted in a EC2 small instance. With that out of the way, here are a few things you will need to take care of:
* Security (especially passwords) - Rails should take care of most of this for you, but you should ensure that you patch vulnerabilities when they are discovered. Also, stuff like having only key-based login to your servers etc.
* Backups - Take regular backups of all user data. It's also VERY important that you actually try restoring the data as well, as it's quite possible that backups are not occurring properly.
* One click deployment - Use Capistrano or Fabric to automate your deployments.
* A good feedback/support system - this could even be email to begin with (depending on the volume you expect), but it should be accessible.
* Unit tests - as your app grows in complexity, you will never be able to test all the features manually. I'm not a big fan of test driven development, but really, start writing unit tests as soon as you have validated your product idea.
* Alerts, monitoring and handling downtime - Downtimes are inevitable. Your host or DNS could go down, you might run out of disk space, etc. Use something like Pingdom to alert you of such failures.
* Logging, logging, logging - I can't stress on this enough. When things break, logging is crucial in piecing together what happened. Use log rotation to archive old logs so they don't hog the disk space.
10K user records is not the issue. It's dealing with the humans who use the app on a day to day basis.
Typically getting only a small fraction of your user base to be active in the app is pretty challenging - if you can acquire them in the first place.
That said, having even a few hundred active users can tip the scales in terms of what is manageable, depending on what the app does and whether they're paying money or not. Customer support can be a full-time job or worse. In the early days your users will discover every bug and problem imaginable.
Biggest mistake I ever made was scaling up an active user base on a free product without a revenue model. Twice I managed to hit a sweet spot in acquiring active users but because I couldn't leverage the scale to achieve anything other than more work for myself, I burned out and it collapsed very quickly. If you make more money as you grow, you can afford to invest in delegating responsibilities or at least justify it. Otherwise you've got a very stressful hobby on your hands..
Quick add-on edit:
If you're launching a web app for the first time, the biggest takeaway you should get from the comments on this thread is anticipate that customer support will be a major challenge.
One of the best ways to prevent a flood of CS inquiries is aggressive logging and alerts to squash bugs or outages before they inconvenience too many users. Lots of great comments in here cover that point, so take notes.
My service has a lot of moving parts, all of which are distributed among a couple dozen different servers. Keeping the technical infrastructure running smoothly requires a lot of data visualization of server stats, database stats, web request stats, worker stats, user stats, etc. I have everything piped into a nice dashboard so we can see if there is anything odd happening at a glance. When things break (and they will) you need to know where to look first.
Having 5k users also requires time to help them with support issues. Users generate a lot of bug reports, questions, and suggestions. To keep paying users happy, I offer a 1-day response time on support issues, which requires me to spend quite a bit of time sending emails.
Then, of course, if you want to grow the app, you need to spend time marketing it. We could talk for hours about this.
The list goes on and on. Feel free to shoot me an email (email in my profile) if you want to talk specifics about anything.
How's the distribution of traffic? Do people use it spread out over the month or mainly within the last or first days of the month? Do they use it on work days or throughout the week? Are they from different time zones?
What do they do? Is there a lot of write activity or is it mainly read? Is the read stuff cacheable between users or is it highly individualised. etc. etc. etc.
With reasonably "low level" tooling such as Java/Clojure/Haskell/whatever and a properly configured Postgres instance you should be able to go quite far. You're very unlikely to be CPU-challenged in the web app (again, no idea what your web app is going to be doing, so it's just a guess), most of the memory and CPU will be consumed by your database server caching and running queries. You should be able to handle a good 500-1000 db transactions / sec without much hassle.
IMHO most of the challenge will be making something that 10k people will want to use daily, not actually being able to scale to that many users.
That server runs happily as a single servo on http://modulus.io with absolutely no need for intervention on my part.
The rest of the application has similar requirements. I have one micro-equivalent server running the front-end, one the api and one the thumbnail generation. In general, this requires no hand-holding by me.
If your site is not processing or memory-intensive it should be feasible to scale to 10k users with a single $5/month instance on DigitalOcean or an equivalent level server on Heroku or Modulus or GCE.
Good luck attracting your first 5k users!
I have http://ficwad.com/ sitting around, with Google Analytics telling me it gets daily users in the upper end of that range. It runs on the cheapest plan webfaction offers (and I'm making it even cheaper with some affiliate credit...). The only place where it's running into issues is email, which I had to write a little queue system to throttle the sending to keep it under the plan's daily limits while still making sure that the important messages go out first.
I could make it fancier and put it on pricier hosting if I bothered to monetize it in any way.
And it took me nearly 4 years to get that many users. We cant all grow like facebook!
The second problem is motivation, after a certain amount of time, it becomes far less fun and much more of a burden, at which point you have to decide if you'll power through, give up, or quit totally.
The rest is just a software/hardware problem, and easily dealt with when needed.
As for the load, it's not that busy, but not that quiet for what it is, (http://stats.thisaintnews.com) and it runs on a cheap server from http://www.kimsufi.com/uk/, has a Xeon(R) CPU E3-1225 V2 @ 3.20GHz, 16Gb ram and 2x 1tb hdd, unlimited bandwidth and 1gbps link. It only costs about 25/month iirc.
- A reliable hosting environment. I currently have a Linode VPS (basic $20 package, with $5 monthly backups) that runs http://sleepyti.me, my personal web site, an IRC server, a Mumble server, and a bunch of other stuff -- it's not even close to being maxed out resource wise, even with all the constant traffic the site is getting. It's important to remember that consistent network connectivity is a really important aspect here: a 30-minute downtime during peak hours can easily lose a lot of users. I'd say Linode is great, and I'm very happy with their service, but I also host several Sinatra web applications on a Digital Ocean VPS that only costs $5 per month (although I do my own backups, rather than using their service). I've noticed zero load-related performance impacts. Clearly, though, there is a limit to how far that can scale.
- A production web server. This probably goes without saying, but a lot of webapp developers are used to just working on their own dev environment. For my apps, I use nginx (and thin, when necessary).
- Security. Make sure that you have the basics of application security covered in your app itself. OWASP produces some pretty great "cheat sheets" that can help out in this area. Furthermore, make sure that your server is updated frequently, using SSL correctly, etc. I work in information security -- please believe me when I say that getting hacked is not something you want to deal with when you're trying to grow.
Hope this helps, and good luck with launched your apps!
2. Do not invest time and/or money in learning another programming language or framework until you are sure that for a specific component of your product, programming language X will perform at least 2 times better with 2 times less HW resources.
3. Stressing again on the app stack (I saw some really pushy comments on changing the programming language), it is rarely the bottleneck of a web app. You'll scale your storage stack way earlier and more often than the app stack.
4. Know your data. That's how you decide if it's better to use a RDBMS, document store, k/v store, graph database etc. Like I said before, you're going to scale your data before any other layer becomes a problem so choosing the right data storage solution is crucial. Don't be afraid to test various storage solutions. They usually have good -> great documentation and ruby tends to be a good friend to every technology. There's a gem for everything. :)
5. Scale proportionate to your business/product growth. You will have to scale at some point. But be careful to scale proportionate to your growth. For example, if the number of users will double, get the hardware that suffices that growth. Less HW resources will lead to a slower user experience thus user dissatisfaction. More HW resources than needed will increase your costs and the resources that are not needed will stay unused. Why waste money?!
These are my 2c. As your business gets bigger - I hope it does - other problems will occur. But usually these things will last up to 100k users.
Disclaimer: this is for a generic web app as you didn't give us any details. Depending on the app, some of my points might be inaccurate or invalid.
Firstly, the load of a web app is going to be dictated by what the app actually does.
Also 5k-10k users should be clarified as to whether you mean total users or concurrent users. Testing capacity can be actually tricky figuring out how the number of users equates to actual hits to your servers.
As an example, we have nearly 50k accounts but on average only a few hundred are using the service at the exact same time. I would guess that our app is fairly complex compared to the average app. We run 3 app servers, 1 DB master, 1 DB slave, and 2 cache servers. Our monthly hosting bill is around $1,200.
If you back out the numbers, they go something like this: eight hour work day, worst hour has 25% of the user base actively logged in (we'll assume it is a very sticky app), 10 significant actions per hour implies 25k or so HTTP requests which actually hit Rails, which is less than 8 requests a second. You can, trivially, serve that off of a VPS with ~2 GB of RAM and still have enough capacity to tolerate spikes/growth.
Let's talk about the more interesting aspects of this question, which aren't mostly about capacity planning:
Monitoring: Depending on what you're doing, at some point between 0 users and 10k users, the app failing for long periods of time starts to seriously ruin peoples' days. Principally, yours. Depending on what you're doing, "long periods" can be anything from "hours" in the general case to "tens of minutes" for reasonably mission-critical B2B SaaS used in an office to "seconds" for something which could e.g. disable a customer's website if it is down (e.g. malfunctioning analytics software).
I run a business where 15 seconds of downtime means a suite of automated and semi-automated systems go into red alert mode and my phone starts blowing up. I don't do this because I love getting woken up at 4 AM in the morning, but because I hate checking my inbox at 9:30 AM in the morning and realizing that I've severely inconvenienced several hundred people.
You're going to want to build/borrow/buy sufficient reliability for whatever problem domain it is you're addressing. I wouldn't advise doing anything which requires Google-level ops skills for your first rodeo. (There is a lot to be said for making one's first business something like a WordPress plugin or ebook or whatnot where your site being down doesn't inconvenience existing customers. That way, unexpected technical issues or a SSL certificate expiring or hosting problems or what have you only cost you a fraction of a day's sales. Early on that is likely negligible. When an outage can both cost you new sales/signups and also be an emergency for 100% of your existing customer base, you have to seriously up your game with regards to reliability.)
Again, depending on exactly what you're doing, you will fail well in advance of your server failing on the road from 0 to 10k users. Immature apps tend to have worse support burdens than mature apps, for all the obvious reasons, and us geeks often make choices which pessimize for the ease of doing customer support.
My first business produced a tolerable rate of support requests, particularly as I got better about eliminating the things which were causing them, but I eventually burned out on it. I have a pretty good idea of what my second one would look like if it had 10k customers -- that would imply on the order of 500 tickets a day, 100+ of them requiring 20 minutes or more of remediation time. This would not be sustainable as a solo founder. (Then again, if that business had 10k customers, revenues would presumably be in the tens of millions, so I'd have some options at that point. There are many businesses which would not be able to support a dedicated CS team on only 10k customers, like e.g. many apps businesses, so you'd have to spend substantial brainsweat on making sure the per-customer support burden matched your unit economics.)
The biggest issue: selling 10,000 accounts of a SaaS app is really freaking hard.
As others have mentioned, multiple of those users can be hosted on an EC2 small instance. I suggest you start there. When moving to production, a bigger challenge is security, both in terms of intrusion and data protection. Making sure you have good rollback feature built into your rollout regime, because things can be fatal with real users. If you're using something that's basic like Heroku or EC2, you can scale way beyond that user strength with a click of a button. Scaling up would be least of your worries, at least for a few weeks.
If you're unsure, go with Heroku. Once you understand your system use, you can very easily switch to AWS and reduce costs.
What do you mean by this? Doesn't this depend on the usage patterns? Do you have 5-10k concurrent users or are these users spread over a day?
The operations side is a whole other profession that dovetails into the technical aspects of getting it running on a good architecture.
1. your architecture must allow for vertical scaling. this means upgrading your hardware to beefier, stronger, faster machines with more CPU power and more memory. vertical scaling is often a very cost effective of improving performance.
2. your architecture must allow for horizontal scaling. this means being able to provision and deploy new instances of your application servers very easily, using an automated process. more servers running in parallel is a very effective way of handling increased load.
3. you must be able to monitor and protect your systems. https everywhere. highly secure passwords everywhere, and you should rotate your passwords on a regular basis. log everything and set up services to monitor your logs and notify you when weird/bad shit happens.
Good database mechanics is key. That is the most important thing in my opinion. That is really the whole point in rails when you are deciding relationships. The abstraction in Rails when deciding what should be the best model structure is the same thing as deciding what should be the best and most efficient table structure in your database.
The rave about MongoDB is that it (maybe not quote me on this) "cures" the need for the desire multi-dimensional database. However, even with MontoDB's ability to expand due to it's not needing a pre-defined structure and the ability to expand out dimensionally to a certain extent, PostgreSQL (claims anyways) is still more efficient if you correctly index your tables (think about how you will be querying) and create the correct relationships. Build out models. Allow flexibility.
Also, don't forget caching. Redis and performing jobs is key in certain situations. However, don't get caught up in too much hype. Especially those coming from closed source technologies (Not just talking about caching technologies here but everything in general). They will sell and produce an atmosphere of necessity, but do some research first. Don't follow the heard. I am not going to call anyone out on this. Just do the research and think why is that necessary. I've mentioned Redis a few times and maybe that isn't even necessary either.
Most importantly, put your stuff out there. If it crashes, so what! At least you know you have something. And then you will have people who will give you advice in a coherent direction if necessary.
I salute you in your efforts. Now the most important part is put it out there and kick ass!
You may even want to look into Redis which is a cache system.
"Scaling problems rule . . . "
Sounds like you have the skills to grow this up to 500 to 1k paying customers on your own. Early on you can increase ram/cpu to handle any initial scaling issues.
Once you even have 1k customers you'll have revenue to hire experts to help you with scaling and security.
Good luck in 2015.
Heroku: $279 - 400 / month
Getting the users and keeping your head in the game is the hardest part.
However, the biggest piece to scaling your application is the automation of everything you possibly can so that you can scale when you need to. You're going to be in a bit of pain if you need to scale everything manually.
Here's a few things I automate using Jenkins:
* Creation of web application servers(whether it be Puppet, Chef or Ansible, etc) make sure you can bring up a new node quickly and scale your app layer horizontally. Ideally automate the addition of this node to the LB.
* Data store backup/restores to all staging environments on a schedule(tests backups/restores) this is done using some custom code and the Backup gem. This way your dev team has access to an env that closely resembles prod and can resolve current prod bugs.
* External security scans using NMap (again using custom scripts). The jenkins job will fail if output is not as it expects. This way if we change a layer of our infrastructure we can know if something is exposed and shouldn't be.
* Static code analysis using Brakeman
Information you're going to need to scale your infra:
* Metrics on each one of your hosts. Use DataDog if you can afford it, integrates with all major systems and technologies. Great tool.
* Log collection via something like Logstash or Loggly and being able to visualize your application and web logs.
* Application response time measurements using something like NewRelic or building your own using StatsD and tracking the heck out of your application actions
Last but not least, have a plan for failure. While you're laying in bed at night, ask yourself these question:
* What would happen if the DB went poof? Can I restore it? How much data will I lose from the last backup? Will I know when this happens?
* What would happen if you're now being scanned by 30 ips from the netherlands, all of which are submitting garbage data into your forms. Are you protected against this? How will the added load effect your app layer? Do you have a way to automate the responses to those requests so as to deny them? This is a case of when, not if. Be ready.
* What would happen if my site gets put on Digg(lol)?
There's no magic bullet here. It's just practice, failure and learning from yours and others mistakes.
The main stress on the system is really determined by the complexity of the SQL queries on each page. I've spent a great deal of time optimizing them, and I know there are certain ones that need to be further optimized. I have the database (MySQL) on one server, the web server and documents on another, and static resources such as images on a third, which probably isn't even necessary. All three servers run Linux and the database server has 48GB of RAM. They're hardly new; you could buy all of this equipment today for under $1,000 total.
The biggest technical bottleneck is really RAM; the biggest expense for this kind of site is bandwidth.
1. They never launch
2. They never make any money
If you can avoid these two pitfalls, you will likely achieve one or more of a) earning; b) learning; c) increasing your 'luck surface area'. So, it's a good opportunity if you can do it. There are plenty of reasons why you wouldn't have launched including:
- you kept your idea secret
- you tried to do too much
- you underestimated the areas that you're not skilled at
- you assumed that if you built it they would come
- More here: http://www.startupclarity.com/blog/launch-first-product-what...
The reasons for not making any money, or rather not making enough money that you wish to pursue it are multitudinous but include:
- you didn't choose a profitable product idea
- you underestimated the slow ramp of death: http://businessofsoftware.org/2013/02/gail-goodman-constant-...
- you charged too little
- you didn't solve a problem for people who were willing to pay you
- More here: http://www.startupclarity.com/blog/find-profitable-product-i...
I hope that helps and Good Luck!
The first two are kinda easy, but if it's "money", work from the money back to the idea rather than figuring out how to make money from a certain idea. Who's spending money, where, and on what? What sort of people do you have exposure to (on Twitter, HN, wherever)? How could you improve on something people already spend money on? Etc.
You can do this as a side project because there are lots of things that can make a great side project, bring in a few 1000 dollars a month or more, but wouldn't be interesting to someone trying to launch a business they want to scale.
Look at tools and plugins for software people use already, especially software that has a reasonable pricetag and that people us in their businesses. Anything you can sell to people for whom time is money is a really good start!
I launched a side project 5 and a half years ago which went on to become our entire business. I wrote about that, in a way that I hope will help other people do the same, in my book The Profitable Side Project: http://rachelandrew.co.uk/books/the-profitable-side-project
2 - go on elance/odesk to find some paying clients (pay is low, but easy to find). You can also use this to try different things and discover what kind of work you enjoy best. you can also call some technology consulting firms - they are always looking for talent.
3 - specialize in that area. tailor your website/blog to talk exclusively about that technology. between the inbound from your site and client base from consultant you'll easily be able to build an overwhelming referral stream.
For me, I wasn't sure if I still wanted to program, so I went back to the things that got me excited when I started (math models of perception) and I fell in love with it all over again. Now my dilemma is turning that back around and actually working on what I'm most passionate about in a full-time setting. In the meantime, hobbying it is better than not doing it at all
I fall into the category of starting too many things that I don't finish. I've recently realized that the size of the things I was working in was just way too big, especially since When working on a side project you are working around your life schedule.
After limiting the size of my projects I've found I am completing all of them
Since this will be a side-project (and your time is limited), try automating as many aspects of the business from the beginning. I am not implying that you should BUILD automation into the onboarding process, but use services like Zapier to make your life a bit easier.
If you really pay attention, something will stick out at you.
You'll likely have many ideas. Research them all, come up with some kind of a plan for each. Sit on them for a while...one of them will jump out at you.
His advice exceeds anything I could offer you.
I build small web apps for companies on the side. Little data management things the office can share... something like you might make with Access but obviously a lot nicer, more customized and networked. I host them also and charge a monthly fee. I don't think this is a way to get stinking rich. But it keeps me busy after work.
0 outbound marketing yet, and already have 22 customers at $100/month. This year my goal is to scale up to 200 customers.
It's a really weird market niche where no one has built software for in 10 years. Pretty neat.
inquicker.com started as a hobby / learning opportunity (2005) and grew into a side project with about $20k/yr in recurring revenue from corporate customers (2008).
Eventually, it turned into a full-time job (early 2009) and I found a co-founder (late 2009). We hired our first four employees in 2010. In 2011 we signed our 100th customer and hit $1m in recurring revenue. In 2013 we hit $5m in recurring revenue.
It's done about 80k in sales in 3 months - I'm in the process of writing a blog post about how I did it, what worked and what didn't. It's not inexpensive, but it pays for itself quickly so people are fine with spending the $45 on the book + videos.
Feel free to ask questions here so I have content for the post.
The description says that it is for novelty purposes, but the reviews show people believe it works and it has a placebo effect. Most reviews say things like "I drove past a police station and it went off! 5/5".
It's funny to see it up in the top 20 of the Transportation category on Play, alongside companies that are heavily VC funded. https://play.google.com/store/apps/category/TRANSPORTATION/c...
I didn't pay much attention to it at first, but people liked the site and kept coming back. Year later the site generates around $30k a month and the operation costs are around $90 (close to nothing).
The site is very lightweight as it doesn't really downloads anything. It just extracts direct links to the files.
There are a great challenges that I have to deal with (like YouTube blocking IPs, sites changing designs all the time, etc.).
It reached the reddit front page for a day, and earned 3,000 during that day. Since then, it's averaged ~150 per month, with only small input from me (minor updates)
Edit: If you'd like to read a preview, you can do so here: https://www.masteringmodernpayments.com/read
Quite a change from my day job working in software but I enjoy the diversity.
The first year, I sold for $0 of librairies. In 2014, I've made ~$45,000 and it's 100% passive income. I'm not proud to say that I've worked a total of 30 hours on the site last year (it sounds as if I'm lazy, and I'm not). Moreover, I've never spent a single dollar on marketing, no matter its form.
It works so well that I've taken the decision to leave my daily job to work on the site full time. I (perhaps naively) think that if I make that much money while doing practically nothing, I can surely make a ton more by actually working on it every day for a year. On Feb 1st, I'm making the jump.
It has been tough to get there though. The first year has been a disaster. I nearly abandoned the site. Then, one day, I started to gain traction. To this day, I have no idea why. Then, months after months, the sales went up. It took me weeks and weeks of work to create the libraries I'm selling today. I also did a lot of variations, based on the feedback I received from my customers. My customers are the best, I think. They like what I do, they give me a lot of feedback. In the course of my business, I also did stupid things I regret immensely, like copy a competitor (but honestly it was not intentional), and I'm really, really not proud of this.
Sales have reached a peak of $7500 for the month of May 2014.
The site is based on http://jekyllrb.com/ and is hosted on https://www.webfaction.com/, on a 9$ per month plan. As the site is static, I just need Nginx. That's it. GetDPD allows me to collect payments with both Paypal and Stripe.
To let people pay and downlaod, I use http://getdpd.com/. They are fantastic. I've tried a lot of other options and even though GetDPD looks terrible, it's a great product, well worth the tiny monthly cost.
I hope my story will let people know that it's totally feasible to do a great business as a side project. I honestly wonder EVERY.SINGLE.DAY how come it worked for me, but well,... it worked :-)
I've successfully stopped 1 full blown exploit (admanteumcoin) where there was code that allowed a block to mine any amount of coins desired, (and had RPC calls modified to hide this).
I started out doing it to try to help the altcoin ecosystem, because it's pretty interesting, and because it's a great way to learn more about cryptocurrencies and all their implementations. My code review directory (that isn't actually up to date) is on github: https://github.com/Earlz/coinreviews
Temporary email. Got lucky with traffic, and run two Google Adsense ads.
Have an assistant that helps curate freelance/contract positions from around the internet and through opportunities I hear about offline. I'm a mobile developer, so it's an effective side business to be working on.
Many people have scored new clients and worked on interesting projects through the service. Some people find it's not for them. Definitely offer a money-back guarantee if you're working on something digital/saas. No reason to be taking people's money if they're not getting value out of your product.
Another valuable lesson: we did really well with podcast advertising thanks to Release Notes (http://releasenotes.tv/). If you can find a podcast with 10,000 - 20,000 listeners that serves a niche, you should be able to produce a nice return. IMO our landing page is terrible, but it converts quite well.
It currently makes about $1,200/mo. I do somewhat detailed income reports over at http://www.it-engelhardt.de/income-reports
My wife has always hated the meal planning/recipe organization and sharing process and available tools (she'd used a few different products). After asking lots of friends for recommendations and hearing enough times, "I use X, but I don't like it, so if you find something better, let me know." it seemed like a promising lead for a side project!
Worst case: I make no money, and my wife finally has the meal planning tool she's always wanted.
I only launched the book about 1.5 months ago, and I'm at about $1500 in revenue. I'm definitely hoping to see greater income with the higher tiers (including video) and greater marketing. I'm also speaking with some companies about them buying site licenses of the book, which would increase the revenue even more.
I am, today, skeptical that it's worth anyone's while to try to make money from ads published alongside one's articles. At one time that was widely accepted as the very best way to make money online, but no more.
I'm getting ready to do a KickStarter project so I can devote myself full time to this:
So far I have some remote employers and clients, and some employers in a few large US cities. After I have lots more remote employers, as well as some in a few other countries, I'll do the kickstarter.
Someone managed to make fifty-six grand from a KickStarter in which he said "I'm making potato salad". Not that he was going to sell it commercially, or had come up with a killer potato salad recipe. I mean like he was fixing his lunch for the day.
Just a couple days ago, I read that three times as much money is raised from crowdfunding than from VC.
Consider that with crowdfunding, you don't lose any equity. You also don't have the problem with a bad VC giving you bad advice, or even demanding you do stupid things.
There are some VCs who are very, very good. Despite having to fork over lots of equity, the good VCs are very worthwhile, but IMHO a bad VC is far worse than not getting funding at all.
TBH, the worst part about this is that it's so easy, I got pretty lazy about it. This is why I haven't answered the "what did you make?" question - I got so lazy about it in 2014 that the side projects brought in about half what they made in 2015. Kinda painful in retrospect.
Likewise, if I had web sites for this stuff, if I built email marketing systems, I'm sure they'd make more money. I even have a Kindle version of one of my books, and I still haven't gotten around to sharing it with my customers. Kind of embarassing, actually.
But even then, I'm well over the $1K/month mark. No worries there. All you really need to do is create stuff that people find worthwhile.
I have a small directory website. It's pretty boring stuff, but it is a good source of almost passive income. Never published it. I just created the website and sent the sitemap to Google Webmasters. It's 8 months old and I have 400k pageviews/month.
I have lots of projects in idea stage, I want to execute at least two in 2015. My plan is to reinvest all money from this first side project to create others.
bots4 is a freemium text/browser-based robot fighting game. It was making $3,000/month at one point, but revenue has dropped significantly since then (and it fluctuates a lot based on the activity of whales). Operating cost is $25/month for Linode VPS hosting. Here's the revenue history as of August 2013:
It makes money purely through in-game purchases. Players can buy what are known as "stars" for $10 USD each. Stars let you order items for your bot so that you don't have to camp for them. The alternative if you don't have stars is to wait for your item to appear, so stars ultimately don't enable you to do anything you couldn't do without them, but they are a big convenience, especially in late game where certain items appear very infrequently (still only O(hours) though).
If you want more info, you can read through my posts here (linked to archived version because it's not loading on the original domain):
The amount you make from the Job Board post is heavily dependent on the amount social followers (drives traffic and makes purchasing more appealing).
https://www.angularjobs.com started making ~$1000/month in revenue with a highly targeted social reach of ~10k followers.
Technical co-founder type? Take what you know about programming and offer recruiting services to the early users of your site. Both companies and developers visit job boards, providing both the clients and talent needed to collect recruitment fees(over 10K in major US cities).
My main gig is http://www.LinkPlugApp.com where I play a technical role.
LinkPlug is how I drive traffic to the JobBoard from social media accounts like the ones below(click a tweeted link to see an ad for the JobBoard):
edit: added Twitter account examples.
It's free to download and try it out, but then I charge for additional puzzles.
I was keen to give a complete version of the app for free (without ads) so that people understand clearly what I'm offering. This strategy seems to be working with good and returning custom. Not $1k yet but some reason for optimism ;)
My method is simple and has only four steps. 1. Write something cool and put it online for free. 2. Wait 4 to 5 years. 3. Gather all the emails asking if they can license it or pay you to adapt it. 4. Then slap on a price/marketing page emphasizing what everybody asked for.
http://websequencediagrams.com is my SAAS business. When I was working on 3GPP at RIM we had to spend hours in Visio moving boxes around, and pasting the results into word documents. It was a challenging layout problem. By 2007 I made a python script that did sequence diagrams automatically and put it online. I began to get emails from companies saying they wanted to license it, so I obliged. After I left RIM, I converted it into a freemium product. I have about 400 users paying $9 to $15/month.
My favourite is http://rhymebrain.com because I don't have to do anything. Google just transfers $1-2K into my account every month for Adsense.
Among that, I started selling Prestashop modules on May 14, and now I get around 800/1000 per month from this.
Getting money on your side project is (imho) the best feeling in the world. You get notifications (email for Prestashop, SMS that I configured for VoilaNorbert) at every sales, and when you receive them, oh that feels great! :)
This lead me to learn something very important : you have to finish what you start. It's my big default, I always stop in the middle. Norbert and the modules for Prestashop was an exception, and now they make money!
It is called LeadFuze (www.leadfuze.com) and it's an email prospecting and outreach service that generates leads via email. Good for B2B businesses and startups, or even companies looking to validate ideas.
I've managed to hit $1k/mo ($1,100) in recurring revenue within 30 days. Going to be a much bigger focus of mine now that it is gaining traction.
The site generates >$1.5k per month at the moment from AdSense alone, without any marketing other than SEO and broadcasting to the social followers we've accumulated. This revenue is secondary to the real and long-term value being generated in the form of large numbers of membership/email subscriptions and social followers.
Im working on a similar service using SMS.
Next, my wife and I started CourseCraft (https://coursecraft.net, launched December 2012, e-course creator tools + we handle transactions for 5%-9% of sales). Since it's transaction-based it's a lot less consistent monthly, but growing faster. A typical month is $300-$400 in revenue, but it's been a lot higher (and a lot lower) here and there.
It's not passive income, but I only use ~ 1 hour a day on it (packaging etc.)
I'm not making anything close to that but I've worked on a side project of mine for months with no gain. At this point I'm debating if I should just move on. It's not revolutionary but but any advice would be beneficial.
Currently the videos generate about $3,500/month in revenue. There's little out of pocket expense for the initial production of each video (stock imagery, reference books, etc) and no ongoing expenses after production is complete.
I started out just focusing on topics that I was interested in but didn't have a lot of success. Once I started approaching things as a business my return improved dramatically.
http://undupe.com was something I spun up one day, it gained a little interest and now it runs around $400+ a month(with under 10 users). Not very much, but a nice start.
I'm working on moving this one up a notch past $1,000/mo while adding other small products to my portfolio.
$1k/mo is still a milestone I've been working on reaching. Up until now, I've been an active contract developer.
Still have lots of product tests running and seeing what will be next. Eventually, this will turn into a nice portfolio of digital assets and income.
I owe a lot to Feedback Army. It was the first thing I made where I made money without putting an hourly value on a unit of my time. I learned to think of my business as a system for fulfilling what I promised and collecting money from customers. This side project was a great way to cut my teeth on some business and service fundamentals.
It's got a standard F2P model for the collectibles aspect: you can get everything for free by playing the games / posting in the forums, or you can pay for it. It probably doesn't make as much as it could as I refuse to employ "dirty F2P Tricks", but that's a personal choice.
Check it out if you care to :)
Neither app has any server-side components, so they don't cost me anything but squarespace fees for my website and my iOS dev program membership.
Edit: Oh yeah, they're both paid apps and I don't fiddle with the pricing
It's doing about 1.5k/mth. Launched it 2 months ago. Took me 6 months to create it. Still adding content to it though, will probably take about 1 year more before I complete it.
The site that hosted the course did most of the marketing for me so I just focused on the product. Startup cost was about $150. Spent it on microphone and digital writing pad.
Growth was slow but steady, and the site now receives ~1.4M pageviews per month. The money to keep things up and running comes through banner ads - it's not a huge amount (have only started hitting just about $1000/mo in recent months, and don't know how long that'll last for), but it's still a nice revenue stream to have.
This is the quick (1 min video) version of how I did it: https://www.youtube.com/watch?v=y0y28HmcqUo&feature=youtu.be
This is the longer version: http://blog.quickmail.io/category/journey-to-1k-paying-custo...
It's an inventory/career management platform for working Artists. Slow but steady growth, mostly word of mouth and recommendations by influencers in the space. Me and one other business partner. We had our first $1k month in our 4th month of operation. We are well over that now and with current growth it should match the income of my full time job in the next year or so.
+ pc builder site http://assembleyourpc.net I created ~1.7 years ago, generates revenue from Adsense and few affiliate programs, 2-6 hours of work (per month))
+ other niche tools : http://portchecker.co and http://signature-maker.net weekend side projects, 0-2 hours of work(per month))
I've been running it for the last 5 years. The first 2 years, it was just a blog that I maintained for free. 3 years ago, I started selling access to audio recordings of the lessons as a subscription.
The site generates about $2K per month off of around 300K monthly visitors. It continues to grow but very slowly.
I wrote a site creator for non-profits that allows them to create customized fundraising sites.
Today it has 1mio pageviews/month, PREMIUM Membership, Photoshop Plugin, AdSense and some "30-days" ads.
And photos are still FREE :)
Source Code: https://github.com/rainmaker7/locator
I got into this stuff because I am very interested in domains - especially .io domains
At first domains were just a fun hobby - to collect for future projects. But then I sold a few and bought a few more and scaled it out.
I created park.io to automate things.
200,000 searches per month on goggle UK + moz keyword difficulty of 31% = opportunity
Although I haven't spent a single penny on promotion and selling it for less than I should I guess.
I also operate some "for fun sites", which are all small projects for example a video-game discount aggregator (just scapes sites for discounts) all together ~$200/mo.
Will complete it by next weekend.
It's a SaaS app and a Chrome Extension. It has tens of thousands of monthly active users and makes $x,xxx per month.
I've been very successful in the technology world, including running my own scientific and software consulting company for many years, but as a novelist and poet I've been a complete failure, despite approaching the two in very similar ways. Maybe the markets are simply very different, or maybe it's just luck, or something else. So I think it would be interesting to see some side-by-side of projects that took off and projects that didn't.
There are lots of really interesting things people are posting here, but I bet for every success story there is a story of failure that involves a great many of the same elements, yet somehow never grew beyond the "that was an interesting way to spend my spare time for a while" stage.
It's a lot harder than you might think.
My clients give pretty reliable recurring revenue, so much so that it's gone from a side project to a full time gig for me.
Currently I'm working on scaling very hard.
It was a good year, and it feels good that 15 years of insanely hard learning have paid off... It feels surreal, like I'm dreaming and I'm going to wake up.
When password resetting ask for email, hash and match it against you stored hash.
If matching generate new password and store it, send the generated password to the email input by the user. Though it would likely be preferable to send some form of password-reset-token instead of a password which allows them to change to a new password within X time.
This way you never store their email-address in a usable plain-text.
But if your question was more to alternate methods than email in any form, hmmm, nope, sorry, can't think of any right now that are less invasive on privacy with the same security benefits.
Off the top of my head, I'd probably consider the following options in order of decending useful/goodness:* Ask for the email address at signup, store a hash, then at reset ask for it again and verify that the hash matches* Ask for/store some other allowed information, then verify that the user wants a reset through that (confirmation code): - Eg collect a phone number and do password resets via SMS/call people who want their password reset - Eg collect a domain and require them to publish a file/txt record that has their email address to send a reset* Give the user some token (eg a specific file). If they can provide the token, allow them to change their password* Get the user to authenticate themselves with a client-side certificate or password. Allow reset only when the user's logged in (ie if they have the certificate or previously knew the password)* Ask for/store some other allowed information, then provide the reset link through that (eg twitter DM or FB account)
The exact nature of your application would probably drive what you would want to do reset-wise. If it's for privacy reasons, obviously some of the ideas above wouldn't work (unless there's some legislation that explicitly excludes capturing email addresses).
If you're new to BSD systems, it's much easier to use the pre-built packages.
There are some channels [0,1], which post them. Tech companies often have developer channels, too. I find Google's to market their own products to much. Facebook tells quite interesting war stories.
Finding videos is not really the problem, because they are generally 30 to 60 minutes long. When you bookmark them or add them to your watch-later list, they quickly add up. I have about 200 of them waiting to be watched.
These channels gave me some really nice ideas, I recommend to have a look at them!
This seems like a good compilation: http://devblog.avdi.org/2013/06/21/a-list-of-programming-scr...
I'd say when starting out if you put around $2k-$3k as a budget it is reasonable, partially depending on where you are physically located and your industry experience.
Also, I have only ever used tier 1 companies for insurance, Hartford etc. That is just the way I was taught and we have never had an issue with them. Last time I used http://techinsurance.com to get quotes etc, and we got great pricing from them.
EDIT: BTW I am in Florida to give context.
First off, you can get a pro vimeo account and with access to the api you can upload and maintain the videos in the ways you want, but you will probably need to create a custom application to access that api and handle things appropriately for your business. All in all this may be a good solution, it depends on how you want to display these videos to your users.
Alternatively, it's gotten to a point where you can actually host and maintain these yourself without a video storage service. Storage has become exceptional inexpensive. There are fantastic tools for displaying the videos. Then it's just up to your organization to make the interface for management how you'd like.
I think the only question left is: did you notice?
Edit: Dear immediate downvoter: I'm far more serious about this than you think. How do you define an AI? I'm personally convinced Google qualifies. I once asked Google, "What's that thing where a boat is replaced one part at a time" and it answered "Ship of Theseus". That was my "holy crap" moment--because, quite frankly, that is amazing. If you had asked me in 1990 "is a program that can read online books, magazines, and encyclopedias and extract an answer an AI" I would have said yes. I'm sticking by that today.
A typical unvoiced (possibly false) assumption about AI amongst even AI experts might be something like: "Well it has to be a system that was designed by human experts, in order to qualify... something that just emerges from human activity is not an AI."
A few things that could qualify, if we relaxed this and other false constraints:
- The global financial system, when viewed as a single entity.
- The consciousness formed by the combination of the Internet along with all the minds of the people who use it (what Kevin Kelly has called "the one").
- Google's systems, at least some of them.
These things are creeping up on us. Just taking the first one, the global financial system is barely under control (or maybe not at all), although many different human controlled entities do hold the reins of various facets of it.
It has self awareness, senses, learning, built in agendas, competing sub-entities with agency and their own various agendas, defense mechanisms, and ways of exerting influence.
One could argue it also has a global agenda (balance might be a word for it... a decent agenda, for the moment, fortunately).
We've seen how it can sometimes go off the rails in ways that have challenging if not disastrous consequences for the well being of humanity.
We don't call it AI, but it's certainly something that bears watching almost as much as an AI would. Just like the other examples I mentioned.
... said the strangely synthetic voice, associated with a pseudonym that had no profile activity ever before that day.
Yes you would immediately notice. An Artificial General Intelligence, "real AI", would be vastly deployable and replace human labor everywhere.
When AGI removes the limits of human labor to operate the economy, models predict the world GDP doubling every two weeks!
Someone living at the end of the Earth might overlook the event - but everyone else would be disrupted to say the least.
As we get just a bit closer to plausible AGI, expect a flood of VC money into this niche.
Given above "options" are mutually exclusive, (e.g. both God and alien are watching at us), it's reasonable to suggest we are just fine. don't worry.
Presumably to maintain any sort of integrity and to leverage non trivial computational resources the bots would need to communicate.
I don't know how discoverable botnets are in general before a massive DOS event or such but I presume the discoverability of this rogue AI was on the same level as a first approximation...
Fun fact: The AI in Dan Simmon's Hyperion live in a substrate that parasitically timeshares unperceptively the brains of people :)
In a Singularity, I don't think we would notice the AI itself, but only its effects. Suddenly things will just get a lot easier and/or a lot worse depending on who you are and the fitness function of the underlying AI engine. (I tend to believe that a sentient, recursively self-improving AI wouldn't be able to decouple itself from the fitness function of its pre-Singularity origins)
Maybe it will figure out that material world is a boring place and migrate into some other world we can't imagine. In this case we won't notice AIs because they will all leak away.
I'm kidding, of course.
At this time, you will always be paying up for cloud services. That being said, you are paying for something, not just fluff, that many people - myself included - find quite valuable.
Dedicated hardware is great, I can get a xeon 12 core E5v2 with 32 gb of ram and a guaranteed 300 mbps bandwidth for ~$100 / month - which the bandwidth alone would cost many multiples of that on AWS. However, what if a hard drive goes bad? Or a PSU blows? Or something else which knocks that server offline? How quickly can you get another one up and running?
With AWS/azure/google infrastructure, you'll have built your application to be fault tolerant of the underlying hardware and a new instance can be automatically spun up. You also can scale instantly - with dedicated hardware it'll be a minimum of hours (if your lucky) to days to get more servers online. If you get an expected wave of traffic - from a favorable blog post for example - on any of the mentioned cloud providers your app can automatically scale and provision servers without you clicking a button.
The other important cost to consider is time - what is your developers time worth? Instead of fiddling with the database server, you can pay amazon a premium and just use RDS. Instead of setting up a distributed queue so different components of your app can communicate, you can just use SQS.
However at the end of the day the answers to all these questions are going to be unique for everyone and different situations call for different solutions. If you needs lots of compute power and need it to be as cheap as possible - using dedicated hardware will be your best bet, unless you can architect a solution with spot instances.
As far as AWS vs. azure vs. google is concerned, I've used all three and AWS provides the best service at the most competitive price. Azure is probably better if you're using windows servers. Google's cloud offering offering is underwhelming - and is quite expensive for what you get.
If you are still very small - digital ocean is a fantastic option and can save you a lot of money until you need the reliability from a higher quality provider.
If you don't need the scale, don't build for it. It is like part of the last 10% of the 20% incremental changes you need. Focus on the 80% for now.
Buy yourself like 5 DO (or some VPS) servers, spin up your Docker (other easy-devops tool) containers and push your code.
Then focus on the really hard part, marketing/sales.
Note. I've also heard that AWS is quite expensive (comparatively speaking).
I have used AWS and Azure professionally, only played with Google. Right now AWS is the most mature, stable and well documented. We have only had 2 clients come off AWS out of about 25ish we put there. We have had 4 out of the 5 leave Azure. That speaks volumes to me, one is maybe we suck at Azure, but I really feel it is more that Azure just hasn't matured far enough along.
I am sure plenty of people have had good experiences in Azure and Google, but to me it requires more time and resources to manage and resolve issues because both are less mature. AWS takes a little time to understand but it just works, and if you follow their recommendations you will rarely have any major issues. It isn't that things don't fail in AWS, because they do, but if you follow the basic design principles you won't have major issues from them. While in theory this is true with Google and Azure I just haven't seen them be as stable or mature, but I am sure that will change. Personally if I was re-evaluating today, I would look harder at Google since I haven't used it in production yet, but Azure wouldn't even be in the conversation right now.
As for what to consider, AWS can get expensive so you have to manage it properly and closely. Setup weekly cost reporting so you can see how you are trending and properly use a CDN where possible to reduce bandwidth charges etc. Also, properly select your storage in EC2 to make sure you aren't paying for unused space needlessly, same with CPU. AWS has some tools to help show you where you might be wasting dollars which helps too. All this really applies to all cloud environments too, not just AWS.
Features AWS wins hands down, but remember if you build your product depending on their services you have created a solution that is not extremely mobile without some code changes. Specifically this mostly happens with services like DynamoDB, SQS, not necessarily EC2 or RDS.
Support, AWS has rocked every time I have had to use them. Azure was also responsive but honestly seemed just as lost as we were sometimes, which didn't inspire confidence for me.
Now, between Digital Ocean, Linode, Softlayer etc. (which are doing more of the same things), things got a bit muddier.
If you're already committed to a specific technology, it may be best to continue down that path. As an example, if you're building .Net Applications it may be advantageous to move to Azure.
However, it you're looking to move fast and pivot when necessary you may want to look at AWS or Rackspace. I think those providers are pretty reliable and offer a lot of options.
Meanwhile Linode, RamNode, etc.
Take any open source projects you may like and start to look under the hood, it is slower, but you will learn way more this way than simply reading :)
High end digital televisions and cinema are having a hard time jumping to 60 fps which for many reasons would simplify things since the rest of the consumer electronics works at that, but traditional cinema is locked at 24 fps. There are various stories around you should be able to find that when cinema experiments with 60 fps (or even 48 fps), or compare televisions that can automatically upscale the framerate, consumers complain that it looks "cheap" because the quality matches what they see on YouTube or their home video camera or the evening news. People have been conditioned to accept 24 fps as high quality cinematic so they think it looks "cheap" when in reality they are getting more fidelity. (You should be able to find old reviews of The Hobbit and people comparing it to the evening news.)
To your original point though, in this case, people were able to distinguish the different frame rates. The difference necessarily register as frame rate to people, or paradoxically, necessarily even better.
In every day life I am constantly bothered by LED tail lights, and cheap video projectors. In both cases I clearly see the individual blinks in the case of the LEDs and the color cycle in the case of the projectors. I find in quite distracting.
Most people can't even see what I am talking about when I describe it and they go seeking it out.
The reason 60fps has become such a buzzword lately is because most laptop & phone screens refresh at 60Hz, and so you physically can't do better than that. At that frame rate, the electronics of the display become the bottleneck rather than your CPU/GPU power, and most engineers would rather say some engineer is the bottleneck rather than deal with the fuzziness of human perception.
http://www.scholarpedia.org/article/User:Eugene_M._Izhikevic... shows some curves that show the effect of several of these factors.
I don't think you should be insulted for making this claim, but there are a lot of trolls out there that make it. So it is a bit like getting annoyed by a bunch of trolls running around claiming the sky is green and then running into someone who really sees the sky as green.
I've included a link to a demo that to me shows clearly the difference in frame rate.