I do work part time as a developer in a start up and can't help feeling i'm building a dream for someone else. Not that the experience isn't really good, (It definitely is and I learn more in work than in uni!) but i can't help feeling that the current university paradigm of work hard, good grades, get a job seems to be bit of a misnomer unless you're happy building things to make others wealthy whilst you earn £30,000 a year?
Unless i'm missing something important, I am young and naive after all!
This is a subjective question. I just want to get a few thoughts especially from you old timers who want to tell a youngster some home truths! :)
The reason so many people are content with being employees, rather than striking it out on their own, has to do (at least in part) with their risk tolerance.
If you want a stable, steady income, and you don't want to put a lot of your own money at risk, then you might find that being an employee is the way to go. Yes, other people (investors in the company) are making money off of your labor, but that's because they're willing to risk their investment.
That's not to say that it's impossible for employees to build a dream for themselves, rather than someone else. In companies that are organized as worker cooperatives, the employees (rather than outside investors) own the company. You might want to look around and see if any places around you are organized this way ... or look into starting your own co-op.
Edit, to actually answer your question: I have a day job as a software developer, which gives me a steady paycheck and good benefits. I'm also an author of two books (see my profile for the titles), and that's produced a very nice supplementary income.
I am a textbook case of a guy ho did not manage his entrepreneurial career properly. Like a lot of HNers I am basically introverted. Even worse I grew up in a culture, rural Maine, here you did not ask for help; you did it yourself. I had other advantages: degree from a top flight school and college friends that were or became wealthy. But I didnt take advantage of all this, I kept trying to do it all myself. I started several companies which were ultimately unsuccessful. Between startups I supported myself by consulting with a good 6 figure income. Finally in my 60s I became less risk intolerant. My partner got some kind of autoimmune disease which meant I needed good health insurance and a steady income. The downside is that the startup adventures and a divorce left me with no savings or investments at all.
So my advice is to cultivate your circle of friends and serious acquaintances. Learn to present yourself and your ideas effectively. I think a first time, straight out of college personal startup is a real crap shoot, but at the same failure costs nothing. The advantage of being an employee is that you learn what a real company is like. A relatively new company with fewer than 100 employees should show you what a post-startup company looks like yet give you personal flexibility. You will learn about such things as sexual harassment policies, hiring, corporate culture, that can be very expensive to learn by trial and error.
If you are looking for a startup, one lead by people with previous startup experience, successful or not, can be a good bet. Your share ill be smaller, but your chances of success will be larger.
If you have been admitted to a graduate program at Stanford, go for it.
That's a difficult expectation to meet when you're $50,000 in student debt though.
> The reason so many people are content with being employees,
> rather than striking it out on their own, has to do (at least in
> part) with their risk tolerance.
I'm a happy employee, and for me the reason I'm not founding my own
startup isn't a matter of personal risk at all.It's that now pretty much all day I can do what I like doing (programming) and come home at the end of the day and wind down from work.
If you're starting your own company you have to worry about everything involved in that tiny company from acquiring clients to managing staff to building the product, if that's something you want that's fine, but it's not something I'm particularly interested in.
I also very much enjoy working on programming problems at the scale you can only find in bigger companies, if I were to start my own company now and it grew like crazy at best I could get back to the level of problems I solve at work now in 10 years or so.
See, I run my own business (and was self employed for perhaps 10 years before that) and I've turned down acquisition offers on the basis that without having "FU" money, having a full time job is as risky as it gets. One source of income, other people get the control over firing you, no guarantees of landing another job within a certain time frame.. that sounds risky to me. (Not that I disagree for people in general, but it's all relative to what you're used to, I guess.)
Get good at development, if that's your thing. It will help you whether you do a startup or work for someone else. (It's also a lot more fun, IMO.)
Here's what I'd love to do if I ever started my own company:
I start the company with 1 or 2 other software developers and designers. We would each own an equal number of shares. Any new team members would have to go through a relatively intense interview process, but when they joined, they would receive an equal number of shares, which means that our shares would be evenly diluted. And the next time we bring someone new on board, the decision would need to be unanimous.
Since we'd be giving away such a huge number of shares, they would vest over something like 7 years. But we would be giving them actual shares, instead of stock options that you have to exercise with your own cash. Also, keep in mind that that person would probably own more of the company after their first year, than most early employees own after 3. So yes, if we bring on someone new and our company was doing really well, we might be giving away millions of dollars in stock, and paying them massive bonuses in their first month. But why not? If we could pull it off, I think that would be an incredible way to structure a company.
And we'd start all of this without outside investment. Mailchimp and GitHub are two awesome examples of bootstrapped startups. But if it ever made sense for us to raise $100 million, then we'd go ahead and do that, knowing that every single person's shares would be diluted equally.
As soon as we start making enough money, we'd be able to pay everyone an equal base salary. We'd all agree on a budget for equipment, office space, hosting, altruism, and cash reserves, but the rest of the profits would be paid out as monthly bonuses.
We'd also dedicate a very large portion of our time and assets to altruistic causes from the very beginning. Eventually, our company would become a non-profit of sorts, where each of us re-invest our millions, and work on fixing everything that's wrong in the world.
I think that finding like-minded people will be pretty damn hard, but even if it's just ten of us, I think this would be an amazing way to build a company. I don't think this would be able to scale past 50 or 100, but who knows.
Anyway, thanks for listening to my rant :)
After that I switched a couple of regular jobs and enjoyed every single one of them: working on real-world problems (electronic banking, multimedia production) together with bunch of talented and all-around nice people.
My carrier was interrupted by unexpectedly getting stuck in remote mountains of east Tibet for almost two years. After returning home I felt professionally disoriented and took on a couple of terrible freelance gigs, working for a year like crazy and earning about 2 EUR per hour (in EU) because of feature creep on a fixed amount project.
Then I got to my senses and started a consulting firm doing mostly web development. Since childhood I dreamt of having a company of my own. When I got it, it was far from glamorous - trading time for money that barely paid for my rapidly growing expenses (marriage, mortgage, kid).
Software development is one of the rare professions where you can relatively easily create something that has a value on its own - scalable and not directly dependent on how much time you put into it.
Selling products instead of my time was my goal throughout this time. Now, seven years later, we (I run the company with my wife) are finally getting there [1] [2].
I made a lot of mistakes in these 20 years, but in general, if I could go back, I would not do it much differently. Mistakes are an important stepping stones on the path.
So, what I'm trying to say is this: you're young, do the things that excite you. There is nothing wrong in working for and with others. At any time, you can decide to try creating something on your own. At this stage in life you can probably take on more risk than later when/if you get a family. But no point in over-calculating things. As long as you breath and your heart beats you have the freedom to steer your life in any direction you choose.
If you dont mind me asking, what happened ?
Since I was deeply involved in Tibet issue I decided to visit Tibet and spend two months travelling there to see the situation with my own eyes.
By chance I came to a small village called Ashuk in Kham (east Tibet, located in Sichuan province). The first impression was not good - everything was just mud. Mud houses standing next to the muddy road. The only nice place with decent food was the house of a local Rinpoche. One day I was bored and I baked a simple cake. He tried it and said I should stay there.
I ended staying there for three months. Mud was just one face of the place. Sun, green grasslands and incredibly kind people the other one.
In the next village I met a young buddhist master who was working on establishing a home and school for orphans. Helping him gave me a real reason to stay longer. We ended up opening the school in 2006 and it is still going strong [1].
I published a book about it [2] in Slovenia and hopefully I'll manage to do the English translation this or next year.
Almost exactly my situation at the moment. Hoping to get to where you are!
Sometimes it is better to just cut your loses and let it go. Then find something better. Nothing is more important than your physical and mental health.
Start with small projects. It is very rewarding to finish something, even more so if you get people to actually use your work.
Also, software engineering is a very multi-faceted profession, that can involve much more besides programming:
- understanding business processes, regulatory needs, economics; - working closely with people as part of collecting user needs, customer support and team work; - education and psychology; - user experience and design; - ...
There is a lot of place and flexibility to find what interests you the most.
The pay check may not be as good as working in some companies, but working in academia provides a lot of freedom to try ideas, do it your favorite programming language, go to conferences, and visit far-away countries.
Academia is certainly not a good option for everyone, but it's certainly something you could consider.
That said, I don't exclude the possibility of going to industry again later.
Ideally I'd settle for some junior dev type of position with reasonable(read: low/acceptable) salary, but without college degree and living in Europe, but not EU (thus no work permits for those), there's small chance of that happening - I've tried and eventually gave up on that...
Oh and today I got sued by govt for failing to send in (literally) an empty paper for my previous company and I'll (most likely) have to pay an equivalent of one month american-level-salary fine. So I've got that going on in my life too, which isn't really the best situation you want to be in if you earn your money like I do...
I don't even know why I'm writing this, I don't have any tips or suggestions for you, and even if I had you can see from the above that I'm probably not the best person to give out advice. And I understand what you're saying but... things could be worse.
You at least have options: build dreams for yourself, or for others. There's nothing stopping you (as far as I can tell) from working on both your projects and/or for someone else.
In my experience, people are more likely to hire US/UK based workers for higher paying jobs than for example Indians or people from countries. Does that happen always? No, of course not. I've had clients from a bunch of different countries. Hell, maybe I'm completely wrong - but that's how it seems to me. Maybe it's just me. I'm not excellent programmer, nor do I claim to be, maybe that's it.
As far as the part about finding work in EU goes, the biggest hurdle (that I've been told) is getting paperwork for someone without college degree.
Maybe I'm delusional, maybe I'm a shitty coder, maybe I just had bad experiences, maybe you're right. I don't know.
Oh and I'm from Bosna/Serbia - don't even get me started about getting a job that pays acceptably in those countries....
As soon as I graduated, I moved to a larger city to work for a company doing offshore development in C++. I was paid $4 / hr, managing to put in about 250 hours a month. I only ended up working there for 6 months before I moved on to the next stage.
I moved to the US in 2000 to work for Microsoft in Redmond. Microsoft was good, but it quickly became obvious that there was no way to make real money, even though I doubled my paycheck in 4 years I spent there. I started at $66K / yr, ended up around $130K when I left at the end of 2004 to go and work for Google.
Except that I didn't go to Google. :) I interviewed, got an offer and used it to get an offer from a smaller company where I felt I could do more. I wanted to be a big fish in a small pond and Google already felt to me like a big pond. Their offer was for $150K and ~10,000 shares with strike price of ~$170. Smaller company offered $200K base, $50K bonus and 2% of the company. In 2004 that was a lot of money.
The smaller company didn't do as well as I expected. I only made about $3M from stock versus $5-10M I could have made from Google. But I met some good people there. But 2009 I was a VP and making close to $450K / yr. I left in 2009 to work on a startup with a couple friends. We sold it at the end of 2010 for $15M and almost immediately started another one.
Right now I work as a CTO for that other startup. We had $40M in revenue last year and on track to be at $90-$100M this year.
I started my first real job in technology in the mid-late 90s and spent roughly the first half of my career maintaining systems that were built by other people.
Eventually, I jumped up a level and stared accelerating from there. Planning, writing proposals and doing the technical implementation for projects of increasing size and complexity. With each major undertaking done I was looking for the next as I had no interest in getting drawn back into maintenance mode.
I started toying with the idea of working for myself, being a truly independent consultant and ended up doing some side projects while maintaining a full time job. The money was great, nearly double my full-time job hourly rate, but it wasn't nearly consistent enough and I was in the process of starting a family.
With all the responsibilities of a family looming I had more or less mentally resigned myself to moving into a rock-steady management role and calling it a career.
That plan didn't work out for what at the time were incredibly frustrating reasons, but it turned out for the best. I took a job as an independent contractor for a lot more money doing a mix of interesting projects and braindead operations.
That's where I am today, I've realized that I'm unlikely to ever be satisfied working for other people or working on the same things for more than perhaps year at a time.
At the same time, I've realized that I don't need to draw satisfaction from my day job. By coming to grips with being parent and learning to manage my time and goals I'm able to collect a good, steady income to live while doing a full load of courses and dabbling in side projects to satisfy myself.
That's probably the most important part. Once I was earning enough money to have everything my family needs plus many of the things we want I found myself wanting less and realized at least within the same order of magnitude more money isn't what I want.
As best I can tell, what I want is autonomy and variety.
Figuring out what it is that you actually want would a great start.
Personally, I mean to continue my education while building up enough consistency on the side to transition that to be primary income. If something better comes along in the meantime - great.
The UK is terrible for salaried developers. The industry here (like everywhere I guess) continues to moan about a lack of technical talent, but it's no surprise given how low the compensation is. The US and Australia both value tech talent far more. And the money hasn't really moved up much since I was a graduate 14 years ago. That said - that pitiful £30K? Just for context, that still puts you well above the national average income.
That said, 90% of people will never be anything other than an employee and never really aspire to it either. Steady income, minimal perceived risks* to employment etc etc. It's only really in the startup world you're close enough to feel like you're working for someone else's dream though, and plenty of tech folk advance through the ranks of the big corporates like IBM and do pretty well for themselves.
Ask yourself what you want out of your life and career. Do you want a secure income and a long-term commitment to a project? Take the 90% route, work for other people.
Do you want more control over when you work, more money and to take on new challenges every few months, but without the security (or ties) of a job? You might enjoy contracting (I do). I made a few times multiple of your starting figure there and had 4 months off in the last year.
Do you want to risk it all to build your dream? Go for it, if you have a dream and the drive to do so. You'll sink all your time into it and you might get nowhere. But you might get everywhere.
So there it is, what do you want out of life, and are you good enough at what you do (and confident enough) to reach out and grab it?
*I say perceived risk because in reality most perm jobs are no better protected than us contractors.
There are advantages in flying the 2 seater. You might get sponsored by one of those large companies, and if you convince someone to fly with you, there is a chance that you'll soon be buying a 4 seater. And on and on.
The jet airliner doesn't offer all those possibilities, but it does give you a very predictable flight.
Sometimes the pilots will go crazy, screw up, or get highjacked, and you'll die by landing 30ft short of the runway, running out of fuel over the southern indian ocean, etc.
Even on a perfect flight, your talent and hard work will likely have had minimal influence.
I will take the Cessna 152 please.
I've also worked fulltime in a programming role for about a year and a half in the past at a fast growing startup. I learned a LOT in my first few months there (including getting reasonably good at Python and Django) and really absorbed so much good stuff from my peers and bosses and even people who worked in other departments. But as time went by and the company grew (went from 20 to about 100 employees in that year..) I started learning less and less. So I quit.
One thing though, I never needed to work there (for money). I already earned enough from my own projects to sustain a reasonable lifestyle. (rented apartment, car, etc.) I just did it to learn more.
I have a few successful projects under my belt that pay for life reasonably well. This really varies from person to person. Some people are happy with $3000/month and some aren't happy with $50,000/month.
In my opinion you should work somewhere for a bit because you will absorb a lot of stuff with the right attitude. You should always keep your mind focused on the end goal of being your own boss if that's what you want from life. And when that awesome idea finally comes to you, the one that you have a burning desire to watch come alive, take the leap!
If you eventually can support yourself well with your own projects/freelance work then you will have the kind of freedom and flexibility that most people can only dream about.
I spent the last two years traveling and working (a little..) at the same time! Spent time in about 20 countries :)
Regarding university and the whole rat race thing. You're spot on! My personal opinion is (and has always been) that the rat race is definitely glorious in its own way (if you are at the top..). But why compete with a million other people who are trying to do the exact same thing better than each other ? It's really really hard to stand out. And hey, you may still manage to make it into the top 5% if you work really hard and are really smart. But why run the race everyone runs ? Find your own race and you'll likely enjoy it and probably win at it too!
Currently developping some webapplications and when they earn enough income i'd like to spent some time travelling / working.
One is the financial comparison between building a company and working at one. This is a straightforward risk-reward tradeoff. When you think about it you will consider things like stability and the impact of stability on other things you want to achieve in life, like family; you will also consider things like how to make starting a venture as safe as possible and gaming what you build based on likely exit; you will think about freedom, meaning freedom to do other things.
The other kind of motive is the desire to build an empire, to run something that is yours and to leave a mark on the world. People who are motivated this way don't think along the lines of risk v. reward or stability being sacrificed or freedom being earned; they don't even think about the reward from exit, except incidentally, as a way of building the big thing they really want to build or as a way of keeping score. People like this just don't think life is worth living (for them, not for other people) the other way; their overriding goal is to build a great organization doing great things.
It's important, I think, to understand which of these motives is active when you're thinking about starting a company --- or joining a startup at an early stage. If you are a type 2 person, you won't be happy until you're building that kind of organization for yourself.
Still code every day, but my main job is as an investor. Best moves I made were risky moves, like moving from Chicago to San Francisco to join a very early stage startup. I was lucky and that startup grew from a handful of people to over a 100 and was sold to a larger company. You can also watch how it unfolded here: http://techcrunch.com/2013/05/02/sam-pullara/
I get the question from engineers all the time how I ended on the path I have been on. I think there are 2 things you can do 1) try to be a great engineer and 2) involve yourself in the strategy of the company. The latter requires an opening, mine was in helping perform the technical due diligence for acquisitions.
If I was doing it again, I would intern at some of the big companies (Google, Twitter, Facebook, IBM, Oracle) and then try and get a job at a Series A funded startup run by people with experience. Good luck!
Taking the job is fine, but it's important to find one that allows you to step outside your role when appropriate, and be involved in any area of the company which interests you. Basically any start up or small company (10ish people). You gain so much knowledge having an insight into the other areas of the business.
I almost started a company when I left university and i believe we could of made some money from it. Comparing what I knew then to what I know now, my approach to starting that company would be much different. Also the experience and contacts I have would give it a much better chance of being successful.
So, being an employee or not shouldn't matter if you do something interesting.
Now when you get in the mid 20ies, you might want a job that banks accept as credible, renting a house doesn't involve convincing that you're not a fraud, and the parents of your girlfriend aren't suspicious of your profession.
If you're a super successful founder that's no big deal, if your startup is surviving or you're a freelance consultant that might be more difficult while not impossible, but if you have a stable job as an employee no one will even ask questions. Depending on what you want (i.e. kids and a house in your late 20ies), that might be an important point.
"I do work part time as a developer in a start up and can't help feeling i'm building a dream for someone else."
"Not that the experience isn't really good, (It definitely is and I learn more in work than in uni!)"
"Unless i'm missing something important, I am young and naive after all!"
You are. At the risk of the ire of others on HN I have to say that this is a totally millennial attitude of - gasp - entitlement. Tempered by the fact no doubt that you realize "I am young and naive after all!"
I think you have to back away at this "I want it all now" thinking that you have.
You are gaining valuable experience and I'd like to know why you feel that you deserve better than that at this point? To me that's scary. I'm glad you asked the question but want to know why you feel you deserve, at this early stage in your career, to jump to the head of the line.
Can I go weeks or months without paid work? (risk tolerance as others have mentioned)
Do I want to learn about sales & marketing (the learning never stops btw)? Am I comfortable with self marketing?
Can I hustle and cold call if necessary?
And as another poster mentioned, am I willing to do A/B testing and optimize funnels? Build a social presence?
Do I enjoy the challenge of working on varying types of projects for different companies? Or would I rather stick to a few things?
In my experience you don't need to be good at all of these things to run your own show, just good enough. But I value flexibility and also really enjoy working with and learning from companies in different industries as I'm a generalist, so I chose the consultant path after a few years in corporate. I hope you find what works for you, and don't stress out too much about it, it's easier to switch paths these days! The important thing is to try.
You are going to learn processes, insights and experience failures when working for someone (and help with building their dream). This is learning on someone else's dollar. It's mutually beneficial and £30k is certainly not something to sniff at.
Very few people walk out of university, raise money and launch the next Facebook.
It's all about de-risking. Make yourself investable over the next few years. Branch out and learn other areas of the business (marketing/sales/etc).
Plan what you want to do and make sure you have calculated steps to reach them.
You'll also probably want to be tinkering with stuff on the side. These could potentially get you some money, but more realistically will provide you with invaluable learning.
On the side is when I do stuff I (kind of) want to do - I still need to make money to pay more bills (kids are expensive :-)), but at least it's a little different than my day-to-day 9to5 stuff.
A year later, I'm working for a startup, but I am also making double I was at my old job. It was really a paradigm shift in my mind.
I looked at college as my entrance to a career, and later learned that wasn't the case. People value unique skills, not cookie cutter graduates.
You're asking some deep life questions, that extend outside programming. a book: The Icarus Deception by Seth Godin really helped me when I was at a place you're in right now. Helped me understand how really successful people do it. hope that helps :)
I'm hoping to be able to work in Seattle next year at either Microsoft or Amazon and the main requirement they look at is whether the applicant has a degree in Computer Science or related field. Only after do they begin to look at personal projects/past accomplishments etc.
Not trying to say a university degree is for everyone, but for people like me looking to get into a top technology company, it's a requirement.
If you have the unique skills they're looking for, the top technology companies are willing to budge on the degree requirement.
I bet you didn't expect that.
I have a paid android app and an OSS windows app that gets donations. The vast, vast majority of my income comes from my day job though.
Building someone else's dream can be great. Sometimes you get to work on things that are more important or just broader scoped than what you can do on your own. Also, a regular, decent paycheck has it's benefits.
I hire out subcontractors to increase my throughput, and I make the other half of my income from this. In total, I make more dollars from the 10-15 hours a week I spent consulting than from the 40 I spend in my job, but I've done the math and when you include the equity vesting in a few years, in terms of per-hour rates, the full time job and the consulting share nearly identical rates. One just has a longer payment period.
When I started I was afraid to freelance because I didn't feel that safety net of my job beneath me, but I finally got my first job working 300$ for 20 hours of work. It was ridiculously underpaid. But I got my foot in the door and now I make quite a tidy sum from it, while getting a lot of enjoyment and satisfaction in it.
Also, I'd always recommend having a side gig going on because it frees you. I don't need to work full time - I don't use a single dollar from my full time job anymore. It goes straight into savings. That kind of thing can free you, and make you more likely to be eligible for raises at work because they know you're only here because you want to be.
I live in a less-developed country, where university students aren't well-treated neither by staff & faculty (underestimated and humiliated), nor by government (54 USD/Mo scholarship for ~40%, no housing, no dining, no basic students services), nor by companies coming just for low-paid hard-coders and unpaid interns.
I endured studying in these circumstances, and finally graduated with a MSc & Eng. in Computer Science.
Now, I decide to make something valuable in honour of the student community; a service that students deserve; which take in consideration student dignity; and which help to restore student confidence and hope.
I'm looking for a startup or a small business idea, which can generate some money just for me and 2 other friends (our team), just to survive! But most importantly offer the first awesome and affordable quality service for students. Even a small service, because for our student community less is always more!
I can make web apps, and have access to some student infos (name, university, classOf). I also have access to cloud services via a restricted credit card! And I can have mobility to national universities.
Do you have some ideas and/or advice to share?
I've posted my story here as a comment first because I think it make sense, secondly I don't know how do I make it visible! I'm a greenhorn HNer; let's be tolerant :)
Thanks Dale1
Sorry for my English mistakes!
I personally freelance full time. Once you establish yourself and get a reputation as someone who can get things done it can be a great career; if you stay pretty busy (last year I was working for probably 9 months, 6 of it onsite someplace and the rest spread out between a few different gigs) you can earn significantly more than at most "real" jobs and have lots of free time to work on your own projects or just go on vacation. I'd definitely recommend moving to someplace with a lot of work to do, such as San Francisco. There is a lot of demand for tech talent here that you can leverage to get the career you want.
So theres a lot more to running a company than just building a product . You also need to sell it, support it, manage people and run the actual company. Just because you're a good developer doesn't mean you're a good entrepreneur. Sure you could learn along the way but you'll also be taking on more financial risk, be responsible for a lot more things and likely not have as steady of an income.
The reward may be much higher but so is the risk and responsibility. That doesn't mean you shouldn't set out on your own and learn to be an entrepreneur, it's just the reason why the financials line up the way they do.
It's also worth noting that there is a 3rd option. If you happen to get in on an early startup that is later successful and goes public or gets acquired, it can also be very financially rewarding for you. I remember reading somewhere that in the valley it is common to hear "he was an early employee at Google" which is well known to translate to "he's now very wealthy".
I know your thoughts very well. I myself have worked for 18 years or so as employee building the dream of someone else -- or better to say: building the wealth of someone else.
I think, a lot is said already, so I want to restrict myself to my personal opinion: If you have this feeling you describe, you should definitively search for your island! And don't give up until you found it.
I am searching now for ten to fifteen years I think and have not found it yet. But I hope, my current project (an online medieval strategy game) will bring me thus far. I dumped until now at least three projects that resulted in a situation that I had to say I can not do it with my resources or in one case the project proved itself to be not profitable. Currently I also dumped my employer to be fully able to find the island I am looking for.
Today, I think, the biggest problem is to find one or more good partners. If you have one, good for you! It makes things easier. But it is so difficult to find one and I have not, since some are just not reliable enough and with others I was not able to find a common target.
The problem is, that if you are in a group you have to give up parts of your own dreaming to find a common dream.
I make my money primarily by building software for small businesses and startups. I charge about £2500 a week for this, and am booked about 50-75% of the time. This is supplemented by the occasional workshop where I teach developers about web application security through the lens of RoR applications, which net me about £5k a pop depending on how well they sell. I have one employee who I'm training up to take on some client work for me so that I can focus on drumming up new business and building products that will provide a sustainable income that isn't linked to the amount of time we put in.
> I do work part time as a developer in a start up and can't help feeling i'm building a dream for someone else.
Some people are bitten by this bug and some aren't. I know perfectly good career developers who are content to turn up, do a good days work and get a regular pay check at the end of every month. If you ever do start your own business and go out on your own, you too will long for the days when you could do the same and have guaranteed monthly cashflow.
> but i can't help feeling that the current university paradigm of work hard, good grades, get a job seems to be bit of a misnomer unless you're happy building things to make others wealthy whilst you earn £30,000 a year?
In this market, after a few years you'll be doubling to tripling that salary. I know a guy who's been on the job two years and cleared £65K. That's not at a city IB, just a plain old startup. It was only a matter of time before London developer salaries caught up with what you might get in the states.
Figure out what you want. Even if it's just in the short term, but ideas of what you want in the long term are best. Use that to decide what you do month to month and year to year. I've noticed that most happy developers are only mildly interested in what their company does: they enjoy their work because it presents challenges and lets them work with people they respect. For these people, it's less about the salary than it is about the opportunity. The salary is important more for keeping your position in the market than to make you rich.
Do you have your own dream? If so, then it might be worth looking into entrepreneurship. Starting a business is less about being able to code your MVP than it is about learning what's available in the current market and being able to sell. Is your dream crazy? Is it crazy in terms of ambition, or crazy in terms of feasibility? The former is fine; the latter should make you step back and reconsider.
Your dream doesn't have to involve some engineering department at a corporation, either. You can be a developer in other settings. They're less obvious, but if you dig into your other interests, you might be able to find opportunities where your programming skill can contribute something huge.
If you don't have such a dream, you still have to make a living. Is it so terrible to contribute to someone else's dream in that case? You'll want to learn how to drive a hard bargain so that you can get the most from them out of the contract. Building someone else's dream starts looking fairly peachy when you're pulling in enough to not have to worry about money anymore.
I am currently working in my startup with some friends. I believe firmly that what I do is everyone's dream, though the need to have a stready income is greater for most.
I also have a part time job at the university, so I do have some sources of income. My startup provides no income, and takes a lot of time.
You can be happy both working at a company, and you can feel ownership to something you have made for that company, even though it might be labeled without your name. It all comes down to what you really want.
In any case I would say the time to try something for yourselves would be before you have ties somewhere, being a wife/kids, a car etc.
If you are fortunate enough to be able to live a good period of time with no money, and are prepared to work literally every hour of your day for a long, long time, I would go for it. If not the need to survive will become greater.
When creating something, unless you utterly hate the concept of the very thing you are making, I would say you gain a sense of ownership towards it. If you made the Paper app for Facebook you would certainly be proud of yourself.
Try it out - let me know how it goes...it worked for me, and a lot of other successful people.
Note, I'm not a developer, I'm a marketer
I'm currently trying to set myself up as a freelancer and consultant to supplement my wages and maybe if it takes off I can make the transition from full time employed to full time self-employed.
Because my full time job allows me to innovate I've developed my skills an enormous amount while working there, I now get asked to give talks in industry events about the work that I have been doing which gives me a massive confidence boost. I actually worry that moving away from my full time job would stop me from being able to develop my skills and experience at the rate I have been doing.
So I guess that if you have a job that makes you feel like you're lining someone else's pockets with little reward for yourself then you're working for the wrong company!
This is one reason why I try to limit myself to working with companies that are on a mission that I believe in.
A side effect is that it also seems to be easier to find a job there because these companies love hiring people who are passionate about the same thing as them. Cold emailing is fine if you can show good reasons why, and even more so when you come bearing gifts.
Before that I had many years of negative experiences working as a furniture mover, a web developer, a Macintosh technician, and your local neighborhood computer guy. I survived for a year after the housing bust on $6,000 I made flipping PowerPC iMacs that were suffering from the bulging capacitor issue that’s been plaguing electronics. I scratched out income any way I could to support a floundering shareware business, hoping that the “if you build it, they will come” philosophy would pan out, but unfortunately it never did.
If I was a student again and had it to do all over.. hmmm what a question. I think that even today I consider £30,000 a year to be a good income, although a contractor can certainly make more than that at the going hourly rate if they reach full employment. It might help to take a step back and look at software development like any other kind of development. For example in real estate, there is earned and unearned income, and each type has its advantages.
There will always be money in the first type, because people always need things done. Historically contractors have generally been paid more than full time employees, because they are responsible for their own equipment, training, insurance, retirement, etc. Software development requires a great deal of education. If you add up all of the hours, not just in school but on personal time, it’s comparable to a being an architect or civil engineer. Except instead of leveraging the efforts of subcontractors, we employ code. So there is a potential there to make considerably more money. There is no ceiling on income for software contractors.
The second type works more like speculation. Yes, a client might make a million dollars from the code you develop. But the odds are extremely high (I would put them around 50/50, maybe even up to 90%) that he or she will break even or possibly lose money. The contractor gets paid first, after that it’s anyone’s guess. I had every advantage (a degree, a brief period of no bills living with my father after I graduated college, even a dot bomb to open up opportunities over the competition) but I was unable to find any traction with the products I was creating. The tech industry has rose colored glasses. For every overnight success, there are hundreds, even thousands of failures. Successful speculators in software are like the ones in real estate. Generally they just don’t touch the code. They’ve either put in their time and earned their wings, or they have a personal calling inside themselves to outsource the details and focus on the big picture. And perhaps most importantly, they have access to capital. I have come to peace with the fact that I would rather be in the trenches than flying a desk.
But say it’s the year 2000 again, I’m fresh out of college and Facebook hasn’t been invented yet, and I want to be in the second camp. It’s not going to happen selling shareware games, or scratching out a living doing odd jobs, or pulling all nighters with other hackers. As far as I can tell (and the simplicity of this took me a decade to grok), the secret is growth. I know it sounds mundane, but if you look at any successful company, they are always growing. So fresh out of school, I would have done my contract at hp first, to just see how established companies do things. Everything is about interoperability, passing data back and forth to different teams, being able to explain your work to others. It’s vanilla, and boring, but allows for scale. Then I would have taken my savings for the year (I would have only spent about a quarter to half of my earnings) and used that to bootstrap myself over the next year, meeting local developers and the clients they work for. I would have found myself designing websites, probably learning about the gotchas of scaling databases, but today it’s all about apps and SAAS and scaling interfaces and interoperating with mobile devices. I would have quickly found that there is high demand for such work. High enough that I couldn’t respond to all of the job invites coming my way, and would have to make a choice either to become a team of developers or cater to more selective clients. At some point I would have crossed a threshold where my priorities switched from survival to planning. To me, that means having six months of income or more saved so you can work on your own without answering to anyone. And more importantly, having a trade that allows you to build your savings again in case of failure (which is likely). Then I would have had a history of a few successfully completed projects under my belt, and could think about hiring myself and others.
Then I would either write a solution for a company and sell it at $10,000 a pop, or look at the niche they are ignoring and write the app that fills it. Knowing how I am, I’d go for the second option. It’s almost always something that people want really badly, that they’re willing to pay for, that they just can’t get easily (preferably software related so it can scale). In my fantasy, this would be a wifi box that gives you free internet by way of distributed hashing (hey, I can dream, that’s why I got my degree in computer engineering), and I’d just build them out of my garage and sell them locally for a few hundred dollars each until we hit scale. Maybe another option is a $99 app that runs on your cell phone, something that crosses wifi mode and tethering to create a mesh network. The prospect of canceling one’s internet and cable bills is almost too sweet to think about rationally. Then everyone in the country would want one, and we’d have more work than we could handle, and we’d sell to Elon Musk or Richard Branson or whoever for a billion dollars. I probably have, I don’t know, a few dozen, maybe a hundred ideas like this that I would like to do, but never had the savings to attempt such things, until recently. Most of them are not nearly this audacious.
But just out of college, my highest priority was “just finishing this game I’ve been working on for years” and I missed out on a ton of opportunities. So I think that kind of nagging, soul crushing worry is something to be very wary of, because it’s hindered the careers of countless developers. I should have focused on a concrete product, with say a three month development time, that I could sell for real dollars, that people would tell their friends about. The shareware and app markets are saturated, so for a fraction of the effort, I could have created new niches. I should have listened more closely when my family had trouble setting up their email and written a $5 solution for them, that solved the decision tree of username, password, pop/smtp, ssl, etc once and for all, and sidestepped the necessity of hosted tools like gmail. I remember being surprised that Apple implemented it in their Mail.app years later. Such low lying fruit could have been so lucrative in the early 2000s. It would have sidestepped app stores and marketing by going viral. Crossing that magical curve from $100 a month to $1,000 and then $10,000 would have put me well on my way to making a meaningful contribution. Instead I floundered, and let the internet lottery distract me from networking, bootstrapping and compound growth.
P.S. It’s worth noting that I’ve only had a six month cushion twice in my life, and didn’t keep my eye on the ball. I let others talk me out of it. Those times were after long term contracts, but my current goal is to get there independently. Sorry this got so long.
The only reason for doing is to gain industry domain experience. (Software doesnt count.) The domain can suggest startup possibilities. Consulting income is a trap, unless you make massive savings.
Dont look back at what might have been. I worked on a VisiCalc equivalent on a 7094 in the 60s. One of the members of the founding team of Sorcim worked for me (remember SuperCalc?). Dont say I didn have my chances to be rich and famous.
Dont look sideways. If it is being done now, someone has beaten you to it. And someone else is working on the second generation.
Dont scratch your own itch. Software itches dont make money. Too many smart people doing the same thing.
Do cultivate relationships.
Do look for other people,s problems. As you noted , if it bugs the common man or the elderly, it is probably an annoyance for everyone else.
Cool to hear about your earlier escapades. My business partner and I were just getting a foothold in Mac OS 9 shareware games when Apple switched to OS X and antiquated the code we had worked so hard on for 5 years. I took it really personally and suffered several years of depression. Things didn't turn around for me until I stopped using my own code. Now I don't maintain an "engine", I just scavenge commonly used code and find that it shields me from the whims of proprietary APIs.
I guess what I’m trying to say is, I also look back on what might have been, and sometimes wished I had been born 5 years earlier, when things were “booming”. But it’s an easy trap to fall into, because at least for the time being, programmers’ leverage is increasing faster than competition can fill the niches. Kids today, what with their supercomputers and megabit internet connections and being able to stand on the shoulders of giants’ open source projects! Get off my lawn! In my day we didn’t even have the internet! We had BBS’s, and floppy disks that stopped being readable, and books.. paper books! Imagine such a thing! And girls didn’t even use computers! Neither did teachers! Can you imagine?
I too have often wished the geeks and hackers of the world were better at networking. Generations of potential have been lost to reinventing the wheel. It’s kind of ironic that we’re so able to communicate in this distributed fashion and solve problems but have so few interpersonal and professional relationships.
At first I was signed up on freelancer.com as well and did several ~$150 contracts where I could bid/get picked/do the work/get paid practically the same day, which helped my psyche. I also did a relatively large project on elance.com but unfortunately didn't get paid for it due to disputes over milestones (the customer kept adding to the to do list), which is what led me to the escrow on odesk.com. I did a few fixed rate contracts but found my time management skills were not exactly stellar so switched to hourly for a while and found some peace knowing I was getting paid for my time like a regular job. Once I got back in the swing of things, I tended to prefer fixed rate again for the freedom it provides.
For odesk.com, I put a couple of pics in my portfolio, got a decent score on a skills test, and had some credentials in my education and employment history. But ya, at first I was not getting any invites and was bidding on several contracts at once without any bites. On the surface, a lot of the bidders look very experienced and I just couldn’t see how to compete with them. I guess what changed is that I stumbled onto some contracts where the client was frustrated with the quality of previous work, and I took the plunge and cleaned up their apps for them. It was an eye opener because I saw the kinds of tradeoffs that are made under low budgets. It wasn’t that any individual aspect of the code was bad, but more that it was a hodgepodge of different approaches all mashed together, that broke the don’t repeat yourself (DRY) principal, had no separation of logic and interface, was full of memory leaks, just on and on. The code had been written overseas for a really low rate and so several people had been banging away on it just trying to get it done. It was kind of remarkable, in a way, but not the kind of code that could be easily reused. So it hit me that the reason a high hourly rate is worth it is that a client can either choose to pay a team to follow good coding practices (which costs time = money) or pay an experienced developer to do it and avoid the broken telephone game. There really is no free lunch, and I think that clients understand that before developers do. So eventually I threw up my hands, realized I couldn’t fight the laws of economics, and “reluctantly” raised my hourly rate. I tried $30/hr for quite a while because that’s the overtime rate for a typical $20/hr programming job in Idaho and I don’t think a contractor should bid below 1.5 times the salary they desire (due to down time etc). So your contracting rate will be some multiple of the going hourly rate in your location. I also stopped being anxious about it, because I knew what the work entailed, so I wrote my bids in a conversational tone, just saying roughly what would be involved and not making any huge promises, and even saying where complications might come up, allowing for contingiences. That worked pretty well and I started getting more hours in and receiving invites from clients that weren’t looking for bargain basement code. It was kind of weird though to be charging more but not seeing it in my bank account, and I was having a lot of lean months. I hadn’t really factored in the hours I spent mulling over the code in my subconscious. So I came to terms with the fact that I was having trouble getting in more than about 4-6 billable hours per day, even though I felt like I was working all of the time. So I went ahead and just accepted that I’d average 25 hours per week and raised my rate again to ~$50/hr to account for the research I inevitably did but wasn’t charging for directly. I found that it alleviated a lot of the dread I was feeling when I thought about getting started working each day. For me, it was never about the work, but battling my own tendency towards distraction and procrastination. That was the point where I started getting more interesting contracts that were actually a pleasure to work on. I had been in fight or flight mode for so long that when the survival instinct died down, coding seemed to feel like a natural thing to do again and it was much easier to get in the zone. It was like picking up a good book after not reading for a few years. It had never occurred to me that clients had been going through this exact scenario in reverse thousands of times around the world, had felt frustrated and arrived in a similar place.
I really wish someone could have told me all of this, but I probably wouldn’t have heard it anyway. And in fairness, I made a lot of mistakes, for example after my six month contract last year at a higher rate, I went back down to $30/hr thinking that I had to do that to get seen. It wasn’t the case at all though, and trying to beat the laws of physics just set me back again. So I went back to my current rate and things have been good. At some point I will probably raise my rate again because I’m noticing that the gun.io contracts are priced higher than I’ve been charging (probably due to location) and I need to plan for the future, having a family etc. Also writing this out now, it sounds a little out there, so I want to emphasize that it’s just the same programming any of us have been doing. I spend 80% of my time scouring the web for the answers, mostly on stack overflow, and 20% of my time actually typing. I normally accomplish one item on my todo list per day, maybe two or three if they are small. And I’ve come to terms with the fact that any estimate I make must be tripled, so that what I think will take two weeks will actually take six. That’s been a bit of a blessing in disguise though, because I know that to actually finish something in two weeks, it means I can’t write much code. It puts the emphasis on finding open source projects that do what’s needed, or wiring up the logic in Interface Builder (finding whatever run of the mill solution works with Apple’s human interface guidelines, instead of trying to code around the issue). Also I keep a large notes file, for example tips like “~/Library/MobileDevice/Provisioning Profiles” contains Xcode’s provisioning profiles, so when I’m using a client’s developer credentials I can trash mine and not spending hours trying to get things working that should already work. If you can get to a good setup and know that you can deliver, it makes it a lot easier to bid. So go ahead and try for some smaller/easier contracts at first and if you find you are finishing ahead of schedule, spend the extra time making it top notch for the client. Someone might hear about it through the grapevine and look you up. It helped me a lot to stop thinking about competing with other contractors, or even just satisfying the client, but instead imagine the end user and what they will get out of the work. I think that’s about it, but I wouldn’t want to leave out the fact that having a cool game in my profile and a few lets just say “interesting” blog posts probably helped as much as anything. Those are somewhat based on luck though and wouldn’t be much to talk about without the fundamentals. Also follow your nose a bit if you know someone in the business. I’m a bit isolated out here and I could have saved a lot of time if I lived in more of a tech city. If you do your homework and also put yourself out there, things will work out.
Through my journey (many ups and downs), I've started to respect a lot more when some people say to not trade your time for money (or debt) and all the pressures society (and the different people that may be in ones environment who may) try to place upon you as an individual, because in exchange you can have the freedom to take risks and pursue whatever you want to do. I had that mindset when I was younger, but I was briefly co opted by the rat race which set me off my ways. Life is too fleeting for me to want to waste time doing/worrying about things that don't work for me.
Background - employed software developer for 15 years.
I really don't see a problem with building other people's dreams. In fact, I enjoy it and have been rewarded for it well over the last 15 years. I have had the opportunity to work with and learn from some amazing developers and to build some very cool products. At the moment, I don't have an entrepreneurial dream and I may never have one. I am content to make a living doing what I love to do - which is simply to write software.
I don't think the issue is risk aversion or not following your dream. I just think that different people have different dreams and desires. At the risk of sounding like a Disney firework show - follow your dream. If you have a dream of owning your own business, you can make a plan to do that. That might involve striking out on your own early or later in life. I think you just have to ask yourself what you want.
I would like to operate my own side business, but to date those projects have demanded more time than I have available.
In the long term, I'd like to obtain a PhD and consult in areas related to that, working remotely.
I also want to remark that, given careful choice of employers & their IP agreements, there's nothing stopping you from pursuing your dreams at home. Your salary might be paid for someone else's dream to come true, but it's also funding your life and dreams.
Every now and then a startup hits the jackpot - say, every one out of a few hundred. As a non-founder, you probably won't become wealthy this way. Even founders get messed over a good deal. This is well documented and understood. So if your dream is to become wealthy, being an employee developer is not the way to go. You will need to gain significant equity. If your dream is to build amazing product, you probably need to look for a midsize company who does that sort of thing but isn't large enough to have seized up into cash cow milking.
At the end of the day (i.e., when you look back on it in ten years), very few businesses are amazing, innovative, and tremendous: they exist to provide services & goods to help other people's lives get along all right & maybe improve their lives a bit.
final ninja-edit:
This is not a bad thing, to do good work for reasonable pay. There is great dignity in doing so, regardless of whether you make someone else rich or yourself rich, or simply holding a steady state in the world. Being able to provide for yourself & yours, giving back more than you take, is an honorable thing not to be despised.
This is probably the most important book you'll read at your age:
http://www.amazon.com/The-Millionaire-Fastlane-Wealth-Lifeti...
May I ask where you're based out of? The computer animation/games/video revolution is definitely coming and I see very valuable applications of the technology outside of the gaming space. The immediate opportunity/problem I'm working on solving is in a growing global niche market. The idea came from a problem I had in this space. Users (including myself) are paying lots of money but there's nonexistent innovation and almost every user I spoke with is in interested in trying this. I'm fairly location independent, and I'd love to meet up/chat to talk more; if you're interested, please feel free to email me at yuzshan [At] gmail [d0t] com
PS I'm also in my early thirties. Great book by the way.
I can relate to that feeling and it's something I revisit occasionally. Though, being a founder or joining a startup and taking equity has it's own set of anxieties. I think the right approach is to just focus on what you're building and if it's right for you. If you believe in the projects you're working on it's a lot easier to find happiness in your work. Some tough decisions need to be made along the way regarding money but it is possible to find a balance between compensation and doing what you love. You just need to be relentless in reaching the goals you set for your career.
I personally split time between a regular 40 hour a week job as an in-house web developer and freelancing. I just try to find new projects that interest me so that I don't get bored.
I have a bachelor's in cs and a bachelor's in information assurance however so it wasn't a hard pitch to be a developer. I worked at a couple of more corporate style companies before being really happy at dojo4.
They care enough about the craft of developing that they push me to be a better programmer and give a big middle finger to anyone who wants us to forget our values for any amount of money. I love it. Our clients love us. I'm proud of the quality of the work we do.
And we drink lots of beer & scotch, eat lots of cookies and free lunches, and get massages every month. :p
To some extent as a programmer there are times when you will (and should) help other people build their dreams. None of us can build what we want to on our own. Doing so for money brings you connections if you do it well, which help you down the road. Additionally if your dream doesn't help others achieve their dreams, you will never be able to make money at it. This is true both in terms of formal employment and major contract work.
None of that means you shouldn't work on your own projects as well if you want, and try to make money at that. Owning your own work, in the sense of not reporting to a singular boss (sure, customers are bosses, but they aren't singular) is very rewarding.
It's ok to make mistakes, keep learning skills (even if you don't make a lot of money), know your worth, and never give up your dream. You can't do a startup if you have lots of time but have no money to survive, and you can't do a startup if you're making someone else's dream and you have no time of your own. So find the right balance and do what makes sense.
It won't last forever though. I have a freelance "employer" also but the projects are small and far inbetween.
A big help in this is that I am currently living in S.E. Asia, otherwise this would never (!) work.
This stuff takes time and a lot of effort. You can't just build an app and sell it for $19B overnight.
What do you care about most? Doing something fun, feeling that your efforts are worthwhile to humanity, making money? Everything is a balance of risk and reward, and everyone's motivations tend to be slightly different.
So how did a server become an resturant owner? You need to think about that.
But I have now switched to freelancing, with said startup being my only client at the moment. I might look for more clients later, but I’m hoping to make money through Gittip and releasing my own products instead. Like you, I want to be in charge of my own destiny, even if that means not doing what has conventionally worked for others.
and I also hate getting delayed results, when I code at my day job, I see results immediately, although it's gradual, it's still a direct feedback to my actions, I put code, I get working software, I do a code review, I get immediate feedback and quickly implement it.
So unless you are ready to do the business side of things (or know someone who is good at it and likes to do it) then doing someone else's dream is probably a good choice. As long as they pay you what you deserve. (how do you know what you deserve? take the highest salary you find for your role in indeed.com or glassdoor / payscale, and ask for it in your current / next job). There is no other way to know.
But if you are OK with delayed gratification, have a LOT of patience, are willing to speak with customers, do sales, experiment, do follow up calls, accept failure again and again and still try to make it work by changing one aspect (AKA pivot). If you are willing to lose some money to gain money later (e.g. pay for some failed ads just to know the click through rate and validate an idea), and if you are OK working your a off with potentially zero gain for a long time, then you should probably start your own business (even if you don't have an idea, find someone who does, or take an existing idea and do it better)
Even doing freelancing can work, all you need is someone (can be you) who can bring customers, and someone (can be you) who can keep those customers happy in a good hourly rate without too many non billable hours.
My advice to my younger self - try it while you can, it's harder for me now with a family to stop it all and start my own thing.
You always can do the side project thing, but don't expect it to become your main income source without either a lot of work or a lot of luck. I had a few side projects some of them made money, but it was a lot of work to maintain.
Look at the successful startups out there, yes there is a lot of execution and technical talent that drives their success, but I say this is not the main reason they are where they are, it falls down to ability to get users to come and ability to get users to stay.
I see those companies fall into one of 2 types - either they have a very high growth curve (the "Viral" / network effect startups) which are statistically very hard to re-create (getting users is REALLY, REALLY, HARD, a single Show HN in the front page + a techcrunch review + good SEO is not enough. You also need people to keep returning to your product, and tell more people about it) these include free products like Facebook, or market places like AirBNB - they need lot's of users to make it work
The other type is startups that sell something (product / service, one time or subscription), in this case you can have revenue from day 1, so I would recommend this route, but it is known to have a very slow ramp up [0]
As popular to say, YMMV... but this is my personal view on this.
[0] http://businessofsoftware.org/2013/02/gail-goodman-constant-...
This is good advice. A few years delayed, but slow, steady, stable growth or your mental self as well as your brand and of your team is a pretty good platform to launch something bigger.
1) does the company provide a product or service that makes a world a better place? (e.g. Nest, Tesla would qualify)
2) are my potential colleagues great people that I will enjoy spending time with and learning from? (it's miserable to work for miserable people)
3) will the company pay me a market wage such that I can provide for myself and my family
Also, way less risk.
I work for big companies, and the chance of getting laid off is about 0%, while the chance of an annual raise and performance bonus is 100%.
Not saying it's the best way to go, but it works for me.
Keep em coming! :)
(I would say that's pretty much)
Correct me if I'm wrong.
On my way to work (living wage) I'll be listening to: - Millionaire Fastlane - Icarus Deception
I miss my freedom so much. Working because I have to pay off the car that is getting me to work. #insane
Been self employed for 16 years now.
I ended up starting out at UC Berkeley and during that first year of school I got my first real introduction to programming and computer science. However, I was also running a failing dial-up Internet service business (a cousin of mine had gotten my parents to purchase it so I could run it and earn some money/learn a bit about business, which was cool during high school) and was trying to maintain a long-distance relationship (which ultimately failed) and working part-time in the dormitory computer lab.
Because of the relationship, and the stress of dealing with the business failing (and closing after my first semester in school) I ended up not doing too well my second semester and ultimately decided to come back home.
At the time, back in 2006, things were still in boom mode and there were lots of cool new developments coming up back in my small town so I saw this as an opportunity to do something to make my community a little bit better.
I didn't necessarily want to continue with school (looking back, that was a pretty dumb thought) so I'm glad I followed my sister's advice and enrolled for an online degree program and worked my butt off over the next year and a half (with my AP credit and the credit from my classes I did pass at Berkeley, along with CLEP Exams I took along the way to get out of certain requirements, I was able to finish my Bachelors, and have that all too important piece of paper, before I was 21).
During that time I was in school I had started up a new business hoping to do a bunch of web development for local business and start making an income I could live off of. After that didn't really materialize I figured it'd be a good idea to start pursuing a "real job" where I could earn a regular salary I could depend on.
So months before I officially graduated I had started my job search in my local area. I blame most of this on luck, but I applied for a number of IT jobs, which I got "Thank you for applying" letters and a few web development jobs, but kept on getting rejection letters. I also ended up applying for a webmaster job at the local college in April 2007, but even though I kept on checking in each month, there wasn't any movement on actually hiring anyone for months.
So in late 2007 or so I ended up releasing a site which I hoped would "change things" and raise a bunch of money for education by encouraging folks to purchase their online products through a non-profit which would be setup specifically to collect and then distribute affiliate fees earned by all of the local individuals that made their purchase through this site (as an example, you might click on the Amazon link on this site and then be taken onto the main Amazon site after that to do your regular shopping, but since you went through that non-profit's site it would bring back a bit of that purchase to the community and I was hoping that money could go to paying for field trips for schools and other stuff that normally gets the ax because of budget cuts nowadays). I learned a few years later, but I guess that work is what eventually made the college move forward with looking at all of the applicants for that webmaster job and I impressed them enough in the interview that I was offered that position in early February 2008. That day I got that call that I was going to be hired is probably one of the happiest I can remember (it's a good feeling to know that your hard work and talents are appreciated).
Those good feelings were tempered dramatically when the Friday before I was supposed to start working, my younger sister passed away in a car accident driving to her high school. Going through such a difficult time right when you begin working somewhere really showed me how much people care about each other down here and I really appreciated all of the support I received at my new workplace during those early days.
Over time, I've learned so much and each week and month most often has something new to work through that you didn't know about before. I'm essentially self-taught in most everything related to programming I've accomplished since that first year at Berkeley, but it was a great foundation. However, if there's one thing I have learned over these years is that there is so much I don't know and which I would love to learn. The hard part is finding teachers, particularly where I live because we have no connection to startups that could teach us the wide variety of skills I'm always hearing about here on HN. I'm starting to get to the point where I'm just going to start learning some of this stuff on my own, but it's hard to justify sometimes when your day job doesn't necessarily need you to learn those things (it's always an additional driver to know that this thing that I'm trying to learn is going to be directly applicable to work).
I have a small software business I work on some weekends, but it's super small ($200-$300 which about $150 in overhead). One of my goals this year is to try and increase that amount (it's been basically the same each month since I started it back in August 2010), not because I want it to replace my day job (if the business takes off that'd be wonderful of course, but I think I would still want to keep my day job and use that extra money to help my family or my community in some way).
I think the main thing you're talking about though is that you yearn for something a bit more, and I can't say that I don't have those same wishes too. I'd love to work for a startup or a big company, but not necessarily because I think they'd be better than my current workplace, which is really great, but mainly because the types of problems would be different, there'd be more people I could learn from, and those sorts of things (additional learning opportunities).
As jawns mentioned, it has to do with your risk tolerance, and working for a good organization can be very good for you particularly when you're just starting out. Gaining that experience is crucial to allowing you to continue getting positions at other organizations if you're not happy with your current one. If creating/joining a startup sounds attractive to you, just try and make sure you think through all of the possibilities (I'm an optimist so I always think things will turn out great for my businesses, but after those past failures it does help make you a bit wiser...or at least more understanding of your own limitations as a business person, haha).
All the best and good luck for you in your career!
I ignored High School and taught myself javascript and web standards instead from about the age of 12. During this time I also did 8 years of ballet, contemporary and jazz dancing. I also played the guitar and double bass semi-professionally and I sang in a Cathedral Choir ( even sang for the pope a couple of times even though I am 0% religious ). I also travelled across most of Europe and Asia ( it helps that I speak fluent Ukrainian and Russian ). I did a bit of freelance when I was about 16 for a couple of places. This experience was probably the most valuable part of my career to date. Learning how to pitch work to someone that doesn't know you, learning how to manage your own time correctly and learning how to talk the client speak are things that restrict many developers later on ( i've found ).
I started work a week before my HighSchool final exams were over as a full-time junior front-end Developer for a small agency that was quite far from where I lived at the time. I think it was particularly good for me since they had a wonderful culture and though my title was 'junior front-end' I was actually the only developer there that knew anything about front-end and I was able to plunge into the deep-end with every project, and really own the front-end. I also learnt to work closely with designers and really care for that relationship there. Another thing that is so often missing.
Interestingly enough, that agency ended up firing everyone and doing something new about 7 months after I started which sucked ( I was absolutely gutted at the time ). Luckily, I had built a pretty good portfolio there of work where I could point at the front-end and say 'that was all me'. I ended up applying for about 5 different places that I particularly liked.
The first place I interviewed at was actually wonderful. Great culture, reasonable expectations and a great work ethic and care for perfection ( this was my ultimate need ). Funnily enough, they liked me just as much; so much so in fact that they hired me in the interview to start the next day as a contractor until they got all of the documents in order to make me full time.
3 months in, I changed a bit as a person. Still very much a developer in mentality, I felt closed off from the decision making process and a lot like I was just a 'resource' rather than a person with ideas. The agency was in a 'transitional' period and the corporate side struggled with integrating properly with the newly acquired 'dev' side. Anyway, after 3 months I decided I needed to change something. I stopped being a developer and began working there as a 'Creative' ( this is still my position there ). This was actually pretty great since I have a great passion for marketing as I do for development. In this role I my main duty is as a 'concept' resource in regards to big integrated campaigns. I spend most of my time researching and writing up ways that the dev side can be best applied to the corp. side or drawing up concept art for products or ideas.. It's a pretty fun gig. Aside from this I do a bunch of random sub-contractor work for different people. This allows me to continue flexing my dev side which I feel is just as important as everything else.
It's hard to say i've been that successful yet, because I still have so much I feel I need to do; but it's definitely liberating earning a good $80k AUD at 19 after everyone told me that I wouldn't be able to do anything with my life unless I went to uni.
I am also working on a product in my other spare time ( if it even exists ) that I know actually has a market. Trying to figure out if I want to drop everything and pursue it or possibly even license it and raise some funding and employ someone to build it for me. Tough decisions.
Down the road, I will build an Agency that bridges the gap between digital innovation and the needs of Ad/Marketing Agencies ( I have a huge underlying passion for this ).
As for your feeling about your situation, I think there is a pretty clear pyramid scheme whereby older people get younger people to build their pyramids for them. The idea is that people with a lot of experience lead, and provide their workers an opportunity to gain experience. I think that's partly true, but it's equally true that there are elements of human nature, ageism, and taking advantage. Perhaps it's just positioning - whether it's the older leveraging the younger, the more vigorous leveraging the more passive, or risk-takers leveraging the risk-averse, no matter how you rationalize it, in the end you will find a small number of people in a position where they're either making huge amounts of money or expecting to, and a large number of people just making whatever the ordinary wage is for their job.
That said, this industry is rampant with ageism. Once you get beyond 40, it takes longer and longer to find a new job. The presumption is that, if you are older, your skills development stagnated somewhere around the turn of the century.
When 2008 rolled around, I knew things were shaky at my company, but many companies I looked at had "Required: BSCS" or even when not, HR would grill me on college when I applied. I began saving a lot. I decided if I could find an equivalent or better job I'd leave, otherwise I'd take my chances - I had many months warning about the company and economy shakiness. Finally at the end of 2008 I got severance (it was a big company) and unemployment. I went back to school full time.
While at school, I learned how to program better and better. I learned Java. I took $100 of my money, sent $25 to Google and bought 6 months of web/email hosting with the other $75. I began publishing Android apps. After six months, one of my apps finally began doing well, and it has paid for itself ever since.
As far as my revenue, it has averaged $600 a week for the past few weeks. My business expenses are negligible - about $35 a week, $25 of which is my cell phone bill which is not fully a business expense. My non-recurring costs are when I pay for artwork or translations or ads.
My fall 2013 semester was academically tough (with my AI class only being one of the hard classes) so I did very little new work on my apps, just some minor maintenance, checking Nagios etc. Sometimes I can do work during the semester, sometimes I can't. I wind up doing a lot of new work during winter breaks, and during those summers in which I did not take classes (some summers I do take classes - but there is a short break around those as well).
The general ideas floating around here on HN are good. Paul Graham's essays, the Lean Startup ideas of Eric Ries and all of that.
One major difference for me is I am not looking to build a billion dollar company that is initially desirable to invest in for angels and VCs. I am doing a bootstrapped, lifestyle thing for now. I'm happy with $600 a week, although I hope to push that up to $700 or $800, and then eventually to $2000 a week. Once I get to $2000 a week, I'll probably shift what I'm doing, and may take on a more long-term, ambitious project more in tune with what is discussed here. For what I'm currently doing, pg's "Ramen Profitable" essay is good. "Startup = Growth" is good as well. As well as other essays, posts, and blogs by others doing bootstrapped startups.
You talk about working part-time. I started off taking four classes a semester, including a hard class in each semester. Before doing my own apps, one semester I took a consulting gig, and stripped down to two classes - one hard, one easy. It was not stripped down enough - I wound up having to drop the hard class, and the company said I was taking too long.
I also took a summer consulting gig and had no time at all to work on my apps. It's hard to juggle too many things. One semester I could only get two easy classes registered, so I got a lot of app work done during the semester.
One problem with working for others is during go-go times like 1998-1999 there is a lot of work, but come 2001 or 2009, work dries up, especially if you have no college diploma. I'm happy I've built up $30k in side income. If it keeps building up, it might become all of my income.
On the other hand, as others have said, you learn things working at companies, technical and otherwise, meet people etc. Some companies are just overflowing with cash.
Just looking for some hints and tips, will probably setup an 'Ask HN' closer to the start- I have about three months of commitments left before I go full time on app building.