Ask HN: How do I beat the solo development blues?

11 points by edb ↗ HN
I'm currently working solo doing client work in my own company, which I set up after my computer engineering degree. It's great experience and I've learned ALOT about business and development, but I feel there's a big gap in my knowledge as far as working in a large dev team is concerned.

I figure I have 2 options:

1) Join a big company on a large project.

2) Develop in the open source community.

Option 1 would go against my entrepreneurial/hacker spirit.

Option 2 would be nice, but I code in cakePHP and there's no interesting or active cakePHP open source projects to contribute to (Except maybe the core code.. which is a little out of context for me).

What is one to do?

My idea was to wrangle up some cakePHP developpers and start building a library of plugins and components for common things that I've coded (multiple file uploads, authentication, user management, site news, photo album, forum, etc..). I figure I'd share my code with people and we'd collaboratively work towards the best solutions towards all these problems. Kind of like a cpan for cakephp.

Is this a good idea? Does anybody want to join me? Does anybody have any other ideas?

24 comments

[ 1.6 ms ] story [ 69.9 ms ] thread
option 3) build and grow your own business, if there are enough opportunities and the money is good.

i know that i'd be willing to jump into something like this if the pay was good, with a small group of consultants.

and i wouldn't mind joining, either, though i use codeigniter. ;) would have to learn cake. also, have the experience in large corporate development.

4) learn a framework other than CakePHP.
Second this. Instead of looking for a project in a language you're familiar with. Maybe look for a project solving a problem you're familiar with in a language you're not. Then you'll have learned a new language as well. After that, you can look for a new interesting problem in your new language where, presumably, more open source stuff is going on.
Yeah another framework would be good. How about another language?

I think it's critical for developers to continually learn new technologies as they arise. This helps you stay sharp and remain competitive in the marketplace (whether you are an employer or an employee....)

If you just stick to the same framework all the time, you're going to find yourself out of touch with the modern programming world pretty quickly (again, either as an employer or an employee.)

The problem is that CakePHP is so easily deployable, so I need it for client work. (Alot of my clients won't switch hosts, so cakePHP has been a key tool for me).

I'm also not interested in learning yet ANOTHER language/framework now. I'd like to work on something in a larger group that will overlap at least a little with my current work.

Then you might as well join a big company, because the entrepreneurial/hacker spirit dictates that you _must_ be willing to learn something new every day.
To my credit, I also tend to recognize that I fall into the trap of learning new things because I like to learn new things and never use them. This is the same trap that catches you always starting projects and never finishing them.

Learning a new language to me would be just that; starting a NEW project. Instead, I'd like to take something I know well and learn to do even more with it. That to me would be an educational effort well spent.

In that vein I feel that working with other devs who code at my level on a collaborative goal would be something I have yet to experience and that I think I could learn alot from.

You could try expanding your current company with additional developers and tackling more complex client work. If you add on cakePHP developers, perhaps a more collaborative environment will spawn a unique idea to develop into a web application.
Working on an open source project is extremely different from working on a large corporate software project. For example, there are few consequences for missing deadlines (if there are any deadlines), there is little to no management structure, and there are no perpetually changing requirements that you have to meet. There are plenty of things you can learn from working in a large company from both positive and negative examples, and it sounds like you want to learn those things.

I don't see how working for a big company would be more against your entrepreneurial/hacker spirit than school was. You're going there to learn something. It won't always be pleasant, but it's a means to an end.

Also, as an entrepreneur, you'll eventually have to manage people. I assume it would be much harder to do a good job of managing people if you've never had a boss before.

Use Cake to build an app that you can sell online as a service. If the service takes off, there's all kinds of opportunity for learning as it grows and technical requirements change (scalability, security, etc).

I've been doing client work in my one company for years (7 to be exact) and while it's an okay model for making a living, the revenue is connected with the hours you put in, which to be honest sucks. It means you can grow by adding people or becoming a bit more efficient, but neither of those allows for exponential growth. As such, it's not the right model for startups.

Instead, you want something where you make residual income every month off something like subscriptions. With that type of model, you make steady income (if you can sell it) and there's the potential for exponential growth without exponentially increasing the number of people involved.

As for ideas, most software you can write that you install on your own server (Cake type stuff) can be made as an on-demand service as well. And most jobs that are done in a consultancy can also benefit from software to make those jobs more efficient. I say pick one and go for it!

Option 1 - seems like an easy way out, and would probably negate your experience so far since "big companies" might not value your skills.

Option 2 - is very hard to do unless you have an idea that the community really really needs.

In my opinion you two other options: Option 3 - try to expand your company by getting project contracts and not hourly contracts and get a decent size project to hire a partner, then go from their hire as you find more projects. (this is harder than I make it sound here, but worth it).

Option 4 - Come up with 10 ideas that you think you can develop within 40-80 hours (2 weeks) using cakePHP, this is the 6 month road. If any one of these generate enough ads revenue to allow you to not do client work all the time then it will give you time to think about what to do "next". You can then try to hire more employees, grow your business, go back to school, or even join a big company.

Isn't addons.mozilla.org written in CakePHP? They might need open source helpers.

If you did the same sort of thing for the Code Igniter framewor, then we'd be willing to help/donate a tad bit in that endeavor.

You could work with/for me.

Seriously.

I am one of those "non coding" founders. I come from the entertainment biz and know first hand that there is a need for web app suite that would help about 1.5 E+3 people each to do what I did for the last 5 years.

The tools that exist for what I want to have developed either are no tools at all, something like a business process checklist, or do 30% of what is needed or required for the final outcome and does it poorly because the company that provides the tools does not want to give too much control to the user over the process.

I have personal seed money (not a ton, about 10k usd) to develop a demo with someone, and would rather have someone interested in startups than a dbase programmer off Craigslist.

I did some interface diagrams/sketches and wrote quite a bit on needed features. The 1.5 e+3 entertainment professionals (like me) in question work together twice a year to do about 3 e+9 euros worth of business each time.

If done properly the web app would be self enlarging/viral within this community.

1.5 e+3 = 1500 people. Is this large enough of a market? It seems like it may not have much growth potential ...
It depends on how much those folks will spend to reduce their pain. And then there's the wannabees who you might get to pay for junior versions.
I guess the interesting figure here is the yearly 2 * 3e+9 euros worth of business.
that was me trying to be a smart ass. missed an order of magnitude

the market is about 15000 people

regarding a wannabe / junior version comment I am inclined to think that the tool requires 100% functionality to be useful.

I'm in a similar position to you. Since going solo I've missed working with other people and have found that I'm learning new skills slower without regular code reviews, pair programming, etc. Here are some solutions I've been looking at:

1) Join a small company, such as a startup or web dev studio. The small size will ensure you have a chance to have a varied role and to do lots of different things.

2) Team up with other local developers to form a cooperative or studio of your own.

You do web dev, you could also consider getting into a JS library.

And I recommend everyone who works in a team read http://producingoss.com/ -- its insights aren't just good for open source code.

(comment deleted)
Adventure time!

> Do you actually want to work in a large dev team?

  -- Yes

    >> Why ?

      --- Want to gain knowledge about 'working in a large dev team'

         >>> Why?

            ---- Because... it might be useful?

                >>>> You're stupid.

            ---- Don't know.

                >>>> You're stupid.

            ---- Some actually valid reason.

                >>>> Wonderful! Please state it next time.

      --- Want to learn about [insert hard thing here].

         >>> What's stopping you?

            ---- Nothing.

                >>>> Damn strait!

            ---- Not motivated enough to learn it by myself.

                >>>> Join a start-up dealing with [insert hard thing here].

                    ----- But... but... it's against my entrepreneurial spirit. (Which, by the way, please don't lump together with the hacker spirit, you insensitive clod!)

                         >>>>> Wipe off your wah-wah tears?

      --- Want to be around people.

         >>> Hint: The open source community doesn't hit up bars after work.

      --- Need large team experience to tackle cool problem X.

         >>> Are other people tackling cool problem X?

            ---- Yes.

                >>>> Join them.

            ---- No.

                >>>> You don't need large team experience. Take your passion and just get to work.

      --- Don't know.

         >>> Read 'Getting things Done'. Also: You're stupid.

  -- No

    >> Then why did you post this?

      --- Because you're silly.
I rented a cheap room. Got an internet connection and then invited my friends over. We hack a few hours every night after work. We each have our own projects (outsourced ones or pet projects).

The good thing about this is that we never get bored. and we share our ideas.

If cakePHP works for you then use that. I'd look to build something that uses something that PHP and cakePHP is good at.

For a while I've been thinking about a wikipedia for apps. Where people contribute code rather than text and help others build applications out of it, by using a plug-n-play sort of functionality.

From the 10 minutes I spent thinking about PHP, it seems to me that the one thing it has going to it is that it makes it easy for your users to upload code onto the site to modify it. E.g. Ning and Jotspot.

So maybe instead of a cpan for cakephp. A cpan for web apps. Where I can go to create a basic application, by choosing modules and plugging then together or adding applications that others have built to my stack.