hacker news with inline top comments    .. more ..    20 Jan 2015 Ask
home   ask   best   4 years ago   
According to Google Infinity = 171!
points by ppeiris  15 minutes ago   discuss
Ask HN: What's the best way to write an API spec?
points by chrisshroba  19 hours ago   51 comments top 32
rodw 19 hours ago 6 replies      
I guess I'll take this opportunity to plug my own little tool for this.

I use Swagger [1] and more specifically Swagger UI [2] to generate interactive web-based documentation like the sample at [3].

But rather than relying upon source code annotations to have swagger auto-generate the documentation, or hand-writing swagger's verbose JSON structure, I created a little DSL for it as demonstrated at [4] and available on GitHub at [5].

Let me know if you have any questions about swagger-dsl. It's under-documented right now but perfectly functional. I use it often.

[1] http://swagger.io/

[2] https://github.com/swagger-api/swagger-ui

[3] http://petstore.swagger.wordnik.com/#!/pet

[4] http://intellinote.github.io/swagger-dsl/demo/live.html

[5] https://github.com/intellinote/swagger-dsl

gamache 18 hours ago 2 replies      
There have been an explosion of API specification formats in the last few years. No clear winner has emerged.

JSON Schema and JSON Hyperschema are JSON-based formats for describing JSON and REST (hypermedia-driven) APIs. The formats make decent sense and can be used to generate docs, validators, client libraries, UIs, and more. http://json-schema.org/

API Blueprint is another emerging format for API description. It's written in Markdown, so it is very human-readable and -writable. It is not yet suitable for hypermedia APIs. Like JSON Schema, its tooling includes validators, client library generators, mock server generators, docs generators, etc. http://apiblueprint.org/

Swagger is a YAML-based format for specifying JSON APIs. It is meant to be created using the Swagger UI, rather than handwritten. It generates pretty docs, client software, etc. but is not suited to describing hypermedia APIs. http://swagger.io

Slate is an API documentation framework/template, designed to generate very handsome documentation pages. Its concern is more documentation than specification, and therefore doesn't concern itself with things like library or mock generation. https://github.com/tripit/slate

WADL is an API description language which describes API interactions in an XML format. It resembles WSDL. Not many people use it. http://en.wikipedia.org/wiki/Web_Application_Description_Lan...

Which of these is the best? Good question. I like JSON Hyperschema, but I am writing hypermedia APIs and the other formats here are lacking in their hypermedia support. API Blueprint is a nice format to write in a text editor and is easily read as-is or rendered from Markdown; no separate docs generator is necessary.

deeviant 17 hours ago 0 replies      
There is no single secret to making good API specifications.

But here are few things I've learned:

* The more comprehensive the documentation gets, the the quicker it gets outdated, un-useful, or flat out pants-on-fire lying. Define what the thing does and what assumptions are made, save detail for "gotchas". Be concise.

* Start out on a white board, run through each function, what it should do, what it shouldn't. This really is a huge benefit of spec'ing out a api, just sitting there thinking about it, tons of stuff comes up and you come out with a better product in the end.

* If the format you came up with can't be put into something like a table or spreadsheet, you probably doing it wrong. Sure you can get some sort of framework that lets you create all sorts of UML and create class/function shells or what have you, but I have never found these to create value or clarity. If you are spending more than 20-30 minutes outlining even a complicated function, your probably wasting time. Use time saved to create a clear system-wide DFD.

* Don't go deep into implementation detail at this stage, but at least think about it. Some much time can be saved with a little forethought here.

DevX101 18 hours ago 0 replies      
I used apiary.io which is the best tool I've found for writing API specs. You can write your specs using an online API Blueprint format editor via their site. Alternatively, you can put a text file in your repo and authorize apiary to pull the file every time you make a commit to github. This way you do everything via your development environment.

The documentation they provide based on the specs looks very well designed and intuitive.

One of my favorite features about apiary was the mock backend server they use based on my API specs. So if you're doing a single page app, just write your specs then point your frontend app to the mock server they provide. This greatly simplified development process for me.

davnola 17 hours ago 0 replies      
Here's a summary of the discussion (RAML vs Swagger vs Apiary vs RSpec...) we had at Lonely Planet: https://lonelyplanet.atlassian.net/wiki/display/PUB/API+Spec...

5 months in, we're happy with API Blueprint. We used to use Dredd for API validation but ran into to some limitations:

- Dredd does not perform any validation against the siren response beyond the first key level. For example, it does not validate if the class-name is user-events, or usr-events

- Dredd does not make any difference between Action parameters and Resource parameters. Then, an action POST to create user-events will have undesired url parameters. E.G: POST /user-events?take=0&skip=2 (The apib blueprint specs allows to make this difference: https://github.com/apiaryio/api-blueprint/blob/master/exampl...)

So one of our devs created a Ruby validator, https://github.com/nogates/vigia. See http://engineering.lonelyplanet.com/2014/11/18/vigia-integra... if you're interested.

pksunkara 17 hours ago 0 replies      
Disclaimer: I work for Apiary.

API Blueprint [1] is an open source API description format which can be used to intuitively describe an API.

MSON [2] is a recent addition to the above format which makes it easy to describe all kinds of complex requests and responses in the spec.

You can email me at pavan [at] apiary [dot] io if you have any more questions.

[1]: http://apiblueprint.org

[2]: http://github.com/apiaryio/mson

dkarapetyan 16 hours ago 1 reply      
Write some client code for how you want to use the API and then elaborate those examples by making references to the spec. This might seem backwards to you but you'll discover all sorts of edge cases and awkwardness in the process that you wouldn't have discovered by just writing the spec.

You don't need any special tools to do that although apiary comes to mind as something worthwhile.

smt88 19 hours ago 2 replies      
Erwin 13 hours ago 0 replies      
Like others, I use the Apiary's Markdown format, using aglio to generate a HTML page from it. I also use Protagonist to convert the documentation to a JSON object that Python code can consume and verify that there's a 1:1 relationship between documented and implement API endpoints, as well as as arguments passed. There's room for further validation as my API endpoints have type checking and permissions declaratively configured (via Python decorators).

I tried RAML -- it makes sense for quick prototyping of your resources and methods, but I oculdn't see myself writing too much documentation as a giant nested YAML document.

I also tried apidoc which might make sense of you have internal documentation you wan to quickly expose. However my docs are longer than the code implementing them, so I don't like mixing them in as e.g. apidoc would require. I'd prefer lots of English in my documentation and it seems odd to conflate hints on how to use an API call as an external user with the implementation of it. Compare Sphinx-generated Python docs with some auto-generated python library documentation.

The apidoc versioning system is pretty cool, though if you are making a public REST API backwards-incompatible version changes should be avoided.

xiaoma 15 hours ago 0 replies      
1) The best tool is probably RAML. It's very succinct, looks like YAML and has powerful features such as traits that really simplify the process of documenting many endpoints with similar traits (e.g. pagination).http://raml.org/

2) Swagger is an older option that is quite verbose but has a lot of good tooling support.

3) A third tool that is pretty decent is API blueprint.

Disclosure: I did work on an open source swagger-raml converter about four months ago.

jobu 18 hours ago 0 replies      
After working on a couple API's used by mobile devices I would recommend starting with some static pages containing JSON, then write a client against them first. That will help verify that you have all of the needed data and the format is correct.

Once the format is nailed down it's easier to write documentation, and the server side code will go quickly because less time is spent iterating changes.

phipz 18 hours ago 0 replies      
We used to start with Aglio (https://github.com/danielgtaylor/aglio) and the API Blueprint format 1A (https://github.com/apiaryio/api-blueprint) provided by Apiary.We recently moved from Aglio to Apiary.
yogiHacks 17 hours ago 0 replies      
I've really liked using Apiary http://apiary.io/It lets you build sample output and URI address for your API's, document multiple routes, and stores everything nicely on your account on their cloud. I've used it for 2 projects this year already and have really liked it.
debacle 19 hours ago 0 replies      
Writing tests for your spec is probably the best way. You get to test the design of your API (and any edge cases/scaling issues) before you actually have to design it, and, bonus, when you're done you have a full suite of tests.
kikibobo69 13 hours ago 0 replies      
My former colleagues have been working on http://apidoc.me/ https://github.com/gilt/apidoc). I really like this approach, which is basically:

1. specify the api in json2. apidoc generates really nice api documentation3. apidoc generates a single-file client for the service (currently ruby or scala)4. apidoc generates a routes file for play2

It's scala-biased at the moment because that's their tech stack, but in practice an api-first approach seems to lead to higher quality APIs compared to just hacking something together and annotating it to extract docs. Also having a really nice client without a complicated compile-time dependency graph (on the JVM) feels like a sweet spot.

jestar_jokin 12 hours ago 0 replies      
Isn't this why enterprises favoured things like SOAP web services with XSDs and WSDLs? The verbosity acts as human and machine-readable documentation, and the files can be used to generate client code.

Ignoring the benefits of using HTTP as the request transport mechanism, this seems like another cycle of people coming up with a comprehensive but complex solution, other people getting frustrated with the complexity and developing a simpler solution, then filling in the gaps (such as documentation) until the solution is a complex patchwork of competing libraries, none clearly better than the others, leading to fragmenting of mindshare and expertise...

prabhatjha 16 hours ago 0 replies      
My vote is definitely for swagger. Besides being a great way to write API spec, it has tons of tooling to take a given spec to the next level. See the list at https://github.com/swagger-api/swagger-spec. My favorite is Swagger Editor which allows you to write a spec in YAML and shows you consumable API in real time.

There also exist an opens source project that has Swagger at its core called a127 (https://github.com/apigee-127/a127-documentation/wiki) that allows you to build enterprise-class APIs in Node.js locally and deploy to any PaaS where you can run a node app.

Disclaimer: I work with a127 project.

andrewstuart 15 hours ago 0 replies      
Regardless of solution chosen, Swagger or otherwise, I'm puzzled as to why people integrate the API spec/documentation into their source code. Seems to me to provide incredible scope for bugs and dramatically increase software complexity: http://fourlightyears.blogspot.com.au/2015/01/swagger-is-gre...
simi_ 18 hours ago 3 replies      
We tried a lot of options at Lavaboom (including apiary, readme.io, swagger, etc) and ended up using Slate: https://github.com/tripit/slate
ioseph 13 hours ago 0 replies      
We've just started designing a new api and gone done the json-schema path which is particularly suitable since we're using json-rpc over websocket / http post.

Aside from that whatever tool you use, having markdown as the base source is really useful as you can then display it however you want while still quickly read it in a terminal.

mrkd 18 hours ago 1 reply      
It looks like there are some options out there for REST APIs.

Does anyone know of any API specs written for websocket APIs?

I am working on creating a websocket API and would like to at least look at a few other examples.

z3t4 17 hours ago 0 replies      
I always start "backwards" by writing some example code.
pedrobelo 18 hours ago 0 replies      
I wrote about a few of the different formats before:http://pedro.by4am.com/past/2014/5/23/get_more_out_of_your_s...

And been working on a tool to merge the schema with actual code for Sinatra apps:https://github.com/pedro/sinatra-schema

conorgil145 19 hours ago 0 replies      
You may find my comment in a related thread interesting: https://news.ycombinator.com/item?id=8847072

I was discussing my interest in documenting an API and then generating client libraries, API tests, and other artifacts automatically. Some relevant tools and projects were mentioned/discussed.

sm_sohan 16 hours ago 0 replies      
May I say, look at SpyREST (SpyREST.com) if you consider developing the API first and then produce the documentation automatically simply by exercising the API? This is an open-source tool, feel free to take a look.

I'm developing SpyREST and will be happy to discuss if you want to learn more.

monkeypodio 13 hours ago 0 replies      
At Willowtree, we created Monkeypod (https://Monkeypod.io) to serve as an API design, documentation and virtualization tool.

It uses Swagger and swagger ui extensively and can output (and soon input) Swagger specs. It creates a virtual API based on the design you create, and you can play with it from Swagger ui sandbox or any Http client.

We have a lot of cool features on the roadmap. Feel free to sign up and give it a try. Let us know what features you'd like to see. Cheers!

marcoherbst 15 hours ago 0 replies      
I can't be entirely sure that it's to do with the tools used (I'm familiar with most of the ones mentioned in the comments) but my most successful API designing, at a high level, has been in a spreadsheet.
eterps 16 hours ago 0 replies      
I use Cucumber to write the API spec for our hypermedia API, it doubles as an end-to-end test which guarantees that the specs are never out of sync with our API implementation.
liamcode 14 hours ago 0 replies      
I use http://apidocjs.com/

You define the API in comments within your code. When you run apidoc it scans your code and generates pretty documentation.

I tried various other solutions before this such as apiary.io. Apidocjs is really easy to update as it is part of your code, which also means it goes into your version control!

kephra 17 hours ago 0 replies      
I would follow the RFC and the Unix manual layout. I normally use XML to write my documentation, and simple xslt to convert them to roff to produce text/plain and pdf and html.
haidrali 19 hours ago 0 replies      
use something like capybara or Rspec Testing (rails ) to stimulate a real user behavior
dreamdu5t 16 hours ago 0 replies      
Why not model your REST resources so that API documentation can be auto-generated from your actual code? Makes a lot more sense to me than trying to generate code from documentation.
Ask HN: Bad Application Architecture Example?
points by haidrali  2 hours ago   discuss
Ask HN: Do you see much worth studying the Humanities besides your tech career?
points by swede_k  4 hours ago   1 comment top
eswat 1 hour ago 0 replies      
Its definitely worth it to explore other fields. You got one shot at this and theres more to life than just tech, even if its your desired vocation. Youre still a human being and IMHO its brazen to think that one could be a healthy, happy and loving human by not learning about our history, the various ways we can express ourselves music, dance, theatre, etc. or just how we generally got to this point (seeing the mistakes we made, the obstacles weve overcame and the new ideas we created).

Humanities will also help you gather new ideas and methods that can be applied to your career. If youre creating a product or running a startup other fields will also help you with synthesizing ideas and features that would actually be useful to people, instead of just fulfilling superficial wants.

Ask HN: What tech companies are most like grad school?
points by jnbiche  11 hours ago   8 comments top 3
temporary_art 10 hours ago 2 replies      
I've heard great things about Two Sigma, they sell themselves as having a very academic environment (lots of PhDs, tech talks, etc.).
gamechangr 10 hours ago 3 replies      
Obviously...Google. You should think about including (not Google) in your title.
GFK_of_xmaspast 7 hours ago 0 replies      
The thing about being a graduate student is they work you like a dog and pay you peanuts, it's not a kind of environment I have any desire to go back to.
Ask HN: How do you find freelance/contract gigs?
points by eatonphil  1 day ago   93 comments top 45
keithwarren 1 day ago 9 replies      
I have been on my own for 15 years. I bill around 150/hr give or take 20% depending on the situation. Most of the work is Microsoft stack web related but mobile apps and api building has been steadily increasing for a several years now to the point that probably 20% of my 2014 revenue was in that space.

50-60% of my revenue is sub-contracting. I have a few firms that often take on projects that they are not suited for or do not want to increase staff to cover and they often sub out all or parts of the project to me. These relationships were built through networking with other developers who worked for these companies - never the bosses per se. Meet other devs and when the company needs help, they remember and recommend. In my experience this kind of introduction is about 5x as fertile as a cold intro.

Roughly 30% of my revenue is from direct relationships between myself and another company. These tend to merit a higher rate but also increased risk.

Very few of my direct relationships start from cold calling/intro (not sure if any ever did actually); most came via word of mouth recommendations of other people. Networking at the right kinds of events can also increase your profile and help you meet the right people.

ProTip: Networking at networking events is a terrible idea.

Lacking a sales force the best pseudo sales force you can create are acquaintances who understand your skill set and respect you as a person. They don't need to see your work, they don't need to have hired you before - to drop your name to someone who asks. They need to know your name, what you do and have a generally good feeling about you. If you pay them back for this, even with a simple thank you or lunch - they will continue to be an advocate for you.

Another tip which probably falls into the anecdotal evidence category - get off of ODesk and ELance. You are right about the price war. Your name and value to people also gets damaged because you seem to be just another guy among thousands who need to find work that way - it is a 'dime a dozen' mentality and they will always see you as that.

msutherl 1 day ago 0 replies      
Pro tip: when people say "build a network," they really mean "make friends in your and related industries." Like, actual friends: people you go out for drinks with and enjoy talking to. The trust you build, as friends, will lead to work.

Normally you meet these people in unexpected ways. Just today I was offered a potential job from a girl I met while auditioning apartments. I've also gotten jobs from people I've met on dating websites, on the train at 2am coming home from a party, and on unrelated online forums.

Leave the house, keep an open mind, be friendly.

USNetizen 1 day ago 0 replies      
Network, network, network. Referrals are the prime driver of business for many, if not most, freelancers. When you get a client and have done good work, ask them "what three other people do you know who could use my services?"...things like that. Don't be afraid to ask for it. Get out of the home office and attend events and conferences. Start meeting people and ASK for their business. Don't be shy about it.

Also, don't expect much from cold emails. It's way too impersonal. Telephone calls are only slightly better, but in-person events are by far the best. Your goal should be to MEET as many people in-person as possible.

notduncansmith 1 day ago 0 replies      
I do business pretty exclusively through referrals in my network. Every now and again someone will find me through my site, but I do 0 outbound marketing/sales. Caveat: if I were consulting full-time, I would be doing content marketing and have an autoresponder series.

Actionable tip #1: whenever you do work for someone, be sure to get a testimonial. If possible, do a full case-study on your engagement. Feature these prominently on your site. Then, just keep in touch with everyone you do business with. DON'T directly ask for referrals. Just ask how their business is doing. Make it about them. They'll remember this and like you for it, and you'll be at the front of their mind when the topic of consultants comes up.

Actionable tip #2: read this blog post by Patrick McKenzie, the man's advice is pure gold. http://www.kalzumeus.com/2011/10/28/dont-call-yourself-a-pro...

Loic 1 day ago 1 reply      
Build your network and nurture it. Then, after a while it will come along nicely. I run my business in the field of chemical properties, fluid phase equilibria, so really a niche market, but every year, I send a card to all my contacts in the field (100+ cards) and I try to write a personal note for each person. I takes time, but it now a kind of tradition I do not want to break (started for 2008). On the back of the card, I have a link to a summary of my year and what is coming next. 80% of my contracts are coming after such card.

Front of my 2015 card:


I use Moo to print the cards, quality is great and service excellent. This is a referral link, just remove the /share... if you do not want to follow the referral.


dmarques1 1 day ago 1 reply      
There are a few services now that scour dozens of sites around the web for freelance dev jobs, haven't tried one yet but have considered:https://freelanceinbox.com





FigBug 1 day ago 0 replies      
I've been contracting for 4 years. I have received 1 job via my website. The rest have been through contacts, primarily through people I previously worked for when I was a full time employee. I've got a few through people I know from cycling. Cycling is apparently the new golf. http://www.economist.com/blogs/prospero/2013/04/business-net...

I find events and conferences to not be much use, unless they are very specific to your industry.

asgeo1 1 day ago 0 replies      
I get most of my leads from either:

* My website. I rank reasonably well in Google for search phrases such as "Freelance Developer in $mycity". Probably if I blogged I would get more traffic. But it doesn't hurt to get a website going, and see if you can get ranked in Google for a particular geographic area. I suppose it's only really useful if you live in a city large enough that businesses are trying to find developers in via Google.

Also I've found that the people who do search Google for developers in a geographic area, are generally doing this because they want someone local, and have often previously tried offshore developers and not liked the results.

* LinkedIn / Github / Stackoverflow - occasionally I get leads from these sites. LinkedIn is easily the best of the three. I don't think you even need many connections on LinkedIn (I've only got 60). I think I just show up in the search results. Usually LinkedIn you will get recruiters looking to fill a contract job. Github/Stackoverflow are usually other developers from a company looking for someone to help out on a project.

I'm a bit disappointed in Stackoveflow Careers - I've never had a lead from there, which is odd.

* Referrals. This is probably the best way to get work - it would be hard if you were young and just starting out I guess. I've found that now and then clients will mention you to other potential clients, and it does kind of snowball a bit once you've worked for enough people.

netaustin 1 day ago 0 replies      
I run a medium-sized digital agency that started as side work that my co-founder and I basically fell into. We ran our business on the side for about a year before going full-time. I would advocate stepping back and asking what you're really looking for out of the time you have and proceeding carefully.

Selling software development services as an individual is extremely risky, especially if you are selling services to buyers who are not tech-savvy. It takes patience and energy, and software developers have a finite amount of these resources.

Serious consulting generally requires daytime availability. It's a slippery slope from "side hustle" to "leading a double life." If extra income is what you're after, is it an option to change jobs for better pay, or to get more income from your day job?

One bit of advice if you stick with this plan: you can make the sideline nature of the contract work a benefit in your clients' eyes if you set your rates at a level where they feel like they're getting a good deal compared to what you'd be charging if you worked full-time as a consultant. You can also mitigate the cost to your performance at your day job if you consult on a different technology than you use at work.

But if your day job is in professional services, I strongly recommend against contracting on the side. If it's all you do, work-for-hire will slowly kill you.

dannyr 1 day ago 1 reply      
I did contracting for over 2 years. All my contracts were through a referral from my network.

I never had to do cold-emails.

I live in the Bay Area though where there are a lot of companies looking for somebody to build their Android app.

What's great with the network though is that I never had to negotiate rates since there's already some trust established.

Those who found me through LinkedIn though seem to negotiate a lot with rates which can be a pain.

lwhalen 1 day ago 1 reply      
Not to hijack someone else's thread or anything, but if folks have a line on a site that pairs 'people who need *nix-based system administration/automation/devops-anything' with 'system administrators/automaters/devops engineers' and could post it, I would be deeply grateful.
cahlansharp 12 hours ago 0 replies      
I've found that other programmers are one of the best places to get your first few gigs from. The best programmers are too swamped to take on extra work, and many are eager to refer rejected clients on to someone they can make a solid recommendation for.

So I would personally try to network with some well-known, talented folks in your own community and let them know you're looking. If they trust you and are good, you'll likely get referrals.

From there, if you treat your clients well and do good work, freelance will find you. You'll quickly find yourself having to say "no" to too much work. Word of mouth is a very powerful referral source when it comes to contract work. It can also work against you very powerfully if you don't do a good job or screw anyone over.

asfarley 1 day ago 0 replies      
I've had some success on elance. The trick is to be extremely selective about who you will talk to. Also, refuse to compete on price. The good clients will see the difference; if they're comparing you against a large firm, you will be competitive on price even if you're making a reasonable hourly rate.

Lately I'm starting to think that both of these points apply to freelancing/contracting whether it's online or through some other channel.

Also, build a decent portfolio of your work.

tomasien 1 day ago 1 reply      
I almost entirely use my network to get jobs - if you possibly can, build a personal network, because that network will start referring you to people as an expert. This will allow you to rapidly increase the price of your services. I know this is difficult to get started - but whatever you do to get your first few jobs, make those people into contacts and over deliver.

As a side note: anyone doing freelancing that is struggling with the tax part of it, would love to get your feedback on http://painless1099.com - a smart bank account for your 1099 income that does automatic withholding and helps make your tax situation more like that of a W2's. Product is deep in development by some awesome folks (I'm advising) and they still need more sophisticated eyes on it to get the alpha right.

wsc981 1 day ago 0 replies      
Some companies (in the Netherlands) don't want to deal directly with freelancers, for legal reasons. Also, they don't want to bother looking for developers themselves, while at the same time they are not interested in providing developers with any permanent positions. Usually they use a middle man to find appropriate developers for a fixed fee. Such a middle man might be able to provide you with several clients you'd not be able to contact yourself directly.

Some headhunters don't mind dealing with freelancers either. Currently I'm freelancing through Computer Futures.

robwilliams88 1 day ago 1 reply      
I run workshop (a service mentioned already: http://letsworkshop.com that delivers freelance consulting opportunities)

I've seen this question come up a lot and its part of the reason I started workshop. For me emailing companies who specifically said they were looking was great because I was able to control it directly.

Since starting workshop I've helped hundred of freelancers make a lot of money, but some continue to make nothing. It mostly has to do with the emails they send and a few big common mistakes:

-- emails too long -- blab on about themselves-- obviously scripted-- don't propose a next step

It's easy to focus on the wrong things. "What's the Best job board?" "There's not my exact perfect match" "there's not enough opportunities"

But if you focus on emailing one person everyday that needs help, and write an email focused on their problem and not you, you CAN and WILL make a lot of money.

I've seen it with hundreds in your position

sheraz 22 hours ago 1 reply      
I'm late to the game here, but I'll chime in. There is a general consensus here that networking is the fastest path to that first dollar, and I agree.

The freelance marketplace is a big reason I created 3cosystem[1] - the biggest and most comprehensive tech and startup event calendar.

See if your metro area is listed. There are certainly a number of events popping up around you. Show up early and talk to the organizers. They might mention you in their pre-game presentations.

[1] - http://www.3cosystem.com

raeldc 1 day ago 0 replies      
I became a freelancer shortly after graduating college. Though sites like Elance/Odesk/Freelancer.com(GetAFreelancer back then) provided me a platform to start with, it didn't take long before the cutthroat prices made it unsustainable.

The answer, which has been mentioned already by other commenters, is network. You need a great network and a great reputation. The real question is how do you build a great network? And how do you build a great reputation? As an introvert geek with only a drop of marketing prowess in my DNA, I struggled about the same questions.

One way I built my network is through Open Source Communities. Joomla! was just forked out of Mambo back then and there was an opportunity to participate in the then small community. So I joined the community, made friends with the right people, and I made a living out of building Joomla! Extensions. I also participated in other OS communities like Django, Kohana, and many others. The more I participated, the more my connection and reputation grows. The flow of projects from the connections I got from those communities allowed me to survive, and also thrive, which enabled be to build my own web development company (https://www.wizmedia.net).

I think that marketplace sites like oDesk/Elance/99designs/TaskRabbit etc are horrible place to be in for creative people particularly programmers and designers. I've been looking for alternative places to go to but didn't find any that is fair for both Clients and Freelancers. So it became an idea for my Startup that I'm building right now. That is Creatizens - http://www.creatizens.com. It's still under development, but you can read more about it here https://angel.co/creatizens. The idea is based on the fact that the most profitable freelancers get their projects from their professional network - mostly from colleagues who has overflow projects, or ex-coworker whose company needs contractors. I don't want to talk too much about it since I'm bordering on spammy so I leave it at that.


mcv 1 day ago 0 replies      
Mostly my gigs tend to find me. A recruiter calls me, and if I'm available (rarely), I discuss details and rate, go talk with the client, and sign a contract. This does make me very dependent on recruiters, and some recruiters are absolute scum, but there are also some good ones. My CV is out there on Linkedin, Monster, etc, and people apparently know how to find me. It's the lazy way to freelancing, I guess, it works for me. At 70/hr I'm apparently a bit cheaper than some other people here, but it's still better than what a lot of my salaried friends make.
jules 1 day ago 0 replies      
Referrals, and some gigs found me after I wrote some technical articles. I have not done any cold calling and I have not used any freelancer sites. If you're good then it's a bad idea to participate in a lemons market. It's much better to start from a position where you don't have to convince your client that you are capable of delivering value.
damm 1 day ago 0 replies      
I've been a 'Contractor' since 2012 and I haven't gotten thrown out of my hose for non-payment of rent so I guess I am doing good.

First off:

There really is no good 'job' site for Contracts. There are a lot of 'Work From Home/Work Remotely' sites; but there is not one for contracting exactly.

What I do:

I network through people I know; cold calling can work if you see the company has a problem and you tailor yourself as the fix. But often those are short term gigs unless they love you.

Other than that.

Don't be afraid to post yourself on the monthly who's hiring and who wants to get hired. Making yourself visible will net a few responses that maybe gold.

Lastly, Stackoverflow Careers job has bene helpful.

Really last comment: http://thenubbyadmin.com/2014/01/20/best-list-of-remote-sysa...

up_and_up 1 day ago 0 replies      
I have been moonlighting/contracting on the side for a couple years now: http://www.featlabs.com

I drum up work by:

* Posting myself on the Monthly HN Whois hiring Freelancers thread (1st of month)

* http://www.authenticjobs.com/

* Attending and doing talks at meetups - got a recent retainer from doing this.

* Old contacts pinging me about projects (rare)

Odesk and Elance, IMHO, are not worth my time. It is a race to the bottom honestly.

I get at least 3 hits a month from my HN posting of which one is solid enough to move forward with in some fashion. Since its part time I dont need more than two clients at a time.

phillytom 1 day ago 0 replies      
When I consulted I also offered training on different technologies, languages, etc. Training itself is not very lucrative, but it's great for lead generation.

Also, I'm surprised that no one has mentioned this yet, post in the HN Freelance thread on the first of every month. I've hired a number of freelancers from there.

mafellows 1 day ago 0 replies      
Avoid eLance and oDesk. You're positioning yourself on the low-end of the market just by being on the site. Network locally and get to know entrepreneurs in your area. Reaching out to other dev shops can also be a great way to get consistent contract work. Don't underestimate the value of remote clients either. Services like letsworkshop.com send out quality remote web development opportunities. They're not perfect, but they can be well worth the cost. iOSLeads.com and AndroidLeads.net are a couple of services I started for mobile devs. Happy to answer any questions.
scrollaway 1 day ago 0 replies      
I've used Peopleperhour.com to build my career. It has a good community and isn't a "php-farm" like the other freelance sites (though it has been going downhill a bit lately). I still would highly recommend it but you will need a good profile before you start getting jobs. Though, once I did have a good profile, potential clients kept inviting me to bid to all sorts of jobs, so it's not hard to get good income out of it once you get started.

I don't use it much anymore since I found a full-time job, but it kept me in great shape for almost four years.

Below is an affiliate link if you're OK with it.


tejay 1 day ago 1 reply      
No doubt, the best freelance gigs are the result of close, pre-existing relationships. Easier said than done tho if you're just getting your start.

Try using the sites mentioned within the thread - pickcrew, gun.io, etc. - these sites generally have higher-priced contracts and more interesting work than the classic variants. Use these sites at first to discover what work you like and build long-terms relationships with a few key clients.

1. Remember that the comms overhead with freelance work can be really lumpy and unpredictable. Programming is the fun part - the phone calls and emails can get painful really quickly

2. Avoid hourly pricing whenever possible. Do value-based pricing. Just trust me on this one.

woohoo7676 1 day ago 0 replies      
I've been contracting for about 3 years now, one I found via StackOverflow Careers, and the other was via a co-working space.

I think the general consensus here is right. Avoid finding jobs on contractor bidding sites like Elance/Odesk (they're devaluing your work/skills). Put yourself in positions where you can tell people about your skills/services, and where people might be looking for said skills. I'd start with tech meetups, co-working spaces, other places where people you might want to work with are. Good luck!

pablo-massa 1 day ago 0 replies      
https://angel.co/jobs has given me results.You can filter by "Remote OK" and the job position, also subscribe to email notifications for that filter.
alexjeffrey 1 day ago 0 replies      
in my experience, if you can grab a couple of not-too-underpriced gigs on a freelancing website (my preference is PeoplePerHour as it's less price-war-y) and can get a few regular clients from that, they'll be more happy to pay a reasonable fee for a reliable and familiar developer. Bear in mind that there are a LOT of unreliable and flaky developers on these sites so once you've proven your value to someone they'll be more likely to pay higher rates to retain you.
stevejohnson 1 day ago 1 reply      
This has been asked a few times over the years. Look over the HN search results for some ideas. https://hn.algolia.com/?q=how+do+you+find+freelance#!/story/...

(This is not to say it's not a question worth asking again! I look forward to today's responses.)

callmekatootie 1 day ago 0 replies      
http://www.topcoder.com - apart from the algorithm competitions that it is known for, it also has "challenges" where you compete with other participants and work on building applications.
gargarplex 1 day ago 1 reply      
What kind of software do you build? How much do you charge? Are you willing to work on legacy code bases?

As a hiring manager, I currently have an availability to hire a freelancer. I just need someone responsible, mature and professional who's willing to roll up their sleeves and go from "receiving requirements" to shipping and thoroughly testing.

tebeka 1 day ago 0 replies      
One way to network is to go to job interviews. Be open about the fact that you're mostly interested in contracting and maybe you'll consider joining after a time (which is true in my case - there's a lot of overhead in contracting).
icpmacdo 1 day ago 1 reply      
What level of skill did you have in Web Dev before you started freelancing(to freelancers in general)?
jqm 1 day ago 3 replies      
Don't contract as a contractor to businesses that are programming themselves. Build things for businesses that will be the end user. Most of these types of businesses have less of a notion of how to go about getting tools that will help their business in the first place and it can be a hard sell unless they have an immediate need. Sometimes you have to really learn about the specifics of how the business functions and this can be a pain. But once you build a few small accounting apps that export to CSV or inventory management tools specific to the business...stuff of that nature, you have a good point to take off from and examples to show. You do have to deliver though... a finished product, not just code. But I stay pretty busy like this.
godzillabrennus 1 day ago 0 replies      
Talk to small recruitment/staffing companies in your area to drum up some clients. Best part is they do the collections and handle the sales. You just set the rate.
walshemj 1 day ago 0 replies      
Normally via recruitment agency's they quite often have perm and contract teams.
hellbanner 1 day ago 0 replies      
Are you near any major cities you can attend conferences of major industries?
homakov 1 day ago 1 reply      
Simply have a blog, post cool stuff, and clients find you not the other way around.
cweagans 1 day ago 1 reply      
Gun.io is pretty good, IMO. I'd stay away from odesk and elance.
hashtag 1 day ago 0 replies      
Check your local contracting agencies
dsfreed 1 day ago 0 replies      
cshipley 1 day ago 0 replies      
A great place to start is posting something on the find a freelancer thread here on HN every first of the month. I get a fair number of inquiries from that.

As others have mentioned, meeting people and letting them know what you do. Most of these will not be direct clients. Rather they will either know of someone who is seeking help, or will remember your name.

It can take some time to get your name out and get the ball rolling. When I started up again, it took about two months. When you talk to someone, you never know how long it will take to turn into something. I have had conversations with clients that took 6 months to come to fruition. Others in just a week. The moral of that story is to always be looking, not just when you need work. Get in the habit of always saying yes, and then just manage your availability.

There is a spectrum of the kind of work you can do. I don't mean which language/platform. I mean straight staff augmentation to managing projects. It is easier to find the staff augmentation gigs. These are easier since someone will just be telling you what to work on, and you do it. You will make less for these and this sort of work doesn't scale as well. I would only ever do this for straight a straight hourly rate.

Managing projects doesn't mean you will (necessarily) be managing people, just managing the project. With this, someone needs something built, but may not know how. It requires an additional skill set of knowing a bit of sales, knowing how to set/re-set expectations and how to negotiate. You can get a much higher rate for this, and it is possible to scale this a bit better because you can sub out some of the work.

Another thing you will run into very quickly is how to structure the relationship. There are people out there who are incompetent and others who are nefarious. It is important to know how to protect yourself legally and practically for both. For the legal aspect, find a local attorney who can look over contracts and help you craft a reusable template. Always have an attorney look over contracts before you sign. Most of the time someone gives you a contract to sign, it will be written to be in their best interests. Other times, they will just be poorly written.

For the practical aspect, understand there is a difference between working with someone in-state, out-of-state and out of country. You have the most legal recourse with someone in-state. If they are out-of-state, you may have to go there to pursue any legal action. (which is a massive pain) If they are out of country you may not have any legal recourse. So you will want to structure the business relationship to protect yourself, which might be as simple as half of the estimate up-front. The remainder on completion, and they get no code until it is complete.

A lot of times I structure it by milestone or iteration, with time limits, requiring permission to continue, but all billed hourly. Each iteration or milestone delivers something tangible. They get code on payment. This way I get paid for the work I do, and they won't get unexpected costs and they always have a pretty good idea where things are. Risk is mitigated in both directions. At any point, they can decide to pull the plug and they still have something for what they've paid so far.

It is not uncommon for potential clients to ask for fixed-bids. My advice is to steer away from them. They require you to be able to make good estimates then inflate them to cover your risk. That risk is all on you. They also require you to have tight definitions and manage scope changes mercilessly. If you don't, then you eat it. That said, some people like them because they're really easy.

Some other pieces of advice:

* You're not dedicated to a particular project until either they've given you a deposit, or something is set up legally so that if you start working, you'll get paid.

* Generally ask for a deposit from new clients.

* It is ok to drop bad clients. Sometimes they're not worth the trouble.

* Think about it in terms of collecting/building long term relationships rather than "work". Once you get an established base of good clients, the work will tend to come to you.

* Remember, you're not their friend and not their employee. You are in it because it is a business relationship that has mutual benefit.

* Keep good records of time, expenses and income.

Email me at curtis [at] saltydogtechnology [dot] com if you have more questions. What sort of work are you looking for?

EGreg 1 day ago 0 replies      
Networking and being known as the go-to guy for something many people need. For me it's been social media and apps, I've worked with startups and interactive agencies and seen it all. It often helps to give a free consultation and send in your own proposal to be paid corp-to-corp, then hire people to help you. It helps even more to have a small shop with a portfolio and be listed prominently for that particular technology.

If you want to go to the next level, create an open source project or start a blog, to get a reputation. The more people hear about you the more some of them will convert to potential customers, increasing ambient demand.

Look at Yehuda Katz with Ember for instance, or the guy Bob who wrote nvd3. Having a niche that can help businesses improve their bottom line pays very well.

cuckol333 1 day ago 0 replies      
MY STRATEGY works somewhat? but is old and dusty.old and dusty warning and YMWV - mileage will vary.

-1.) It has nothing to do with your willpower or even yourskillsets.

0.) the key strategy is rule out - some big companies,even stingy and the case of CIO chef info officer is clueless - AVOID THEM like the plague. U get a great job.affter change of bosses - once every 9 months for 3 years;you get 'fired' and put on the blacklist.


1.) it's all about MBA work, screening and positioning.get to know the rankings of the S&P 500 rank listing well.this is ONLY a template and guide. oh by the way,over 51 + 7 years of experience; various fields, and someodd experiences.

4.) before I get to the GOOD SEXY FREE MILLIONAIRE STUFF,figure out how to crash the local conferences/convensions.Yes, pay off the low part time work who moved goods. I ama substitute.

get the business card. say NADADADA! research the hell outof them. then it is mano a mano. eyeball to eyeball.i know u need this. this is what your competitors knowhere a ANONYMOUS QUOTE.

oh, no i am not a journalist. media, lawyer, stranger,etc etc. U R DOING THEM A FAVOR.

5.) ask reasonable questions. no i dont need the moneybut i really love programming / s?redacted? x, etc etc

6.) remember the obscure system engineer who does unixor the assoc vp does not want a referral free. Grass isalways greener on the other side.

7.) it's just me but five dimensional programming code on an origama (YES I AM ASIAN) ORIGAMA ball /can be be fun.and a nice prop. wave it around like a big CIGAR.

8.) most of the workplace have the 'hacks'; unix engineerslike i former trying to become a database engineer consultetc. cold mail and cold call - is fine, but the wallstreet method rule applies - 250 dials a day. 4 days awekk on various times. wt ???? 250??? is a lot.note - this is dials and yes i have done freelance 'boilerroom similar looking like work' - i am not a stock brokerfilm db BOILER ROOM !! yeahhhh baaaabbyy

9.) the MEAT the millionaire the sexy the GOOD STUFF.please delete this comment. or the censors may take it out.ok with me.

here it is......the Rotary Club works on a non-compete, diversifiedP2P network. ROTARY CLUB. non-compete since onlyone real estate agent in any one circle.

THE SCENARIO:my good 'friend' and associate REAL ESTATE AGENT or fill inblank spends a lot of time in the WOMAN CLUB. So, thewife of the VP of the data center mentions how ASTOUNDINGis this person.

the VP, is a man married and will give you at least a courtesy interview. Provide value, turn down 20% of thejobs.. shadddde the truth???? but

i have read at least 20 of the top books. compiled linuxkernel,blah blah learn a new language Haskell with succkybooks so the problems are NEVER technical or delivery.

it has only to do with some clueless CIOsss who barelypassed certification Micosoft exams.sorry, no person offense meant.IT HAS ONLY at least in USA, to do with somesystem engineer who WANTS U DESPERATELY but has aoutsource contract with a guy who cannot understandcode comments in ENGLISH or deal with HR where talent TALENT talent is a priority.

and of course, U are DOOMED. sorry to say.the extra income and part time jobs / health benefits /DESTRUCTION OF THE USA MIDDLE CLASS continues!

PS. full time -?? been there, done tthat kinda.i always allocate at least 10% to make boss look good;frills and bells; make the code look pretty and beautiful;and othher WORTHLESS GARBAGE. this is called the hiddentax.

also, 20% for learning and at least finding HOLES IN THECOMPANY SOFTWARE. logic flaws, security flaws, bad code,bad process, bad procedures, bad SQL, bad db architecture,

warninggg! this can be dangerous. doing the job of the cluelesss CIO chief inof officer can lead to BLACKLIST.

does tthzyat help?

Let's chat, HN: On "X makes you more creative"
points by visakanv  4 hours ago   2 comments top
visakanv 4 hours ago 1 reply      
I also think that there are specific exercises that can make you a lot more creative. I wrote about this once from the perspective of songwriting. Instead of trying to write a good song, why not try to write the worst song ever? The silliest song ever? The stupidest song ever? Doing these things challenges you to change your frame, change your perspective. That's what inspires creativity.

Chris Rock had a great quote in an interview:

"You keep notes. You look for the recurring. Whats not going away? Boy, this police-brutality thing it seems to be lingering. Whats going to happen here? You dont even have the joke, you just say, Okay, whats the new angle that makes me not sound like a preacher? Forget being a comedian, just act like a reporter. Whats the question that hasnt been asked? How come white kids dont get shot? Have you ever watched television and seen some white kid get shot by accident?

> And out of that comes comedy.

Comes humor. You laughed right away. I just asked a question that no one had ever asked."


Steve Jobs:

"Creativity is just connecting things. When you ask creative people how they did something, they feel a little guilty because they didn't really do it, they just saw something. It seemed obvious to them after a while. That's because they were able to connect experiences they've had and synthesize new things. And the reason they were able to do that was that they've had more experiences or they have thought more about their experiences than other people.

Unfortunately, that's too rare a commodity. A lot of people in our industry haven't had very diverse experiences. So they don't have enough dots to connect, and they end up with very linear solutions without a broad perspective on the problem. The broader one's understanding of the human experience, the better design we will have."


Ask HN: How do you politely refuse to disclose previous salary information?
points by salarynegging  15 hours ago   28 comments top 19
ChicagoDave 15 hours ago 0 replies      
You say, "It's my assumption you have a range of pay you're willing to pay for this position. I'm very interested in working here so this isn't _all_ about the money, but I know what I'm worth and I'd like you to make an offer to see if we're on the same page."

So this assumes:

1. You researched the company, the position, and maybe know other people in the company and roughly what they make.2. You researched your skillset, your experience, and have a rough idea of what you're worth.3. You've adjusted for location, whether you're FT or contractor, medical, dental, time off, holidays, any bonus structure, and stock (not options!).4. You're not making an emotional decision because you're not happy in your current position or unemployed and desperate (HR folk will eat you for lunch).

Be prepared, do your homework, and be confident about your value to the company and be firm about it.

The bottom-line, never give them any salary information. This is like going to a car dealer and saying, "I'll pay whatever you want and take nothing on my trade."

But always always be polite, deferential, and calm.

sjs382 13 hours ago 1 reply      
>> "the employees of this company don't care about how much money they get paid"

More for you, then!

Seriously though, that's always an uncomfortable question when it comes up.

Before accepting my current job, I was interviewing at another place. When asked, I kept my current salary private and was honest about my reasons: "I'd rather not disclose that, because it puts me in a bad situation when it comes to salary negotiation."

They responded with something along the lines of "Once an offer goes out, we don't negotiate beyond that. We try to pay employees what they're worth and we think we do a very good job of making that evaluation before hiring into our team."

Note that what they said seems like they gave me an incentive to offer a number. But read a little more closely and note that this really isn't the case.

I reminded the HR rep that the job listing had a salary range posted, and if any offer was outside of the "very high end" of the range, then I would likely to decline. Once a company makes a decision to hire you, they want you. If they aren't willing to negotiate a salary beyond an initial offer, then good luck negotiating a raise.

In my case, I had 2 more interviews (one via phone, one in person) before I decided that the company wasn't a good fit.

bbcbasic 14 hours ago 0 replies      
Tell them you earn $300k and have a $3M mortgage, and another offer.

Edit: Seriously though tell them it is none of their business and they should make an offer. If pushed then give them an amount that is at the very top end of your expectation. So if you are happy with $100k and wow for $120k then say you earning $140k and this just about covers your cost of living. If they ask how on earth you need $140k to live tell them that it is "for family reasons" and leave it at that.

If you already have given the number, just tell them you are finishing up an interview this week with another company. Then tell them you had an offer for $X. Then see if they increase their offer.

marioluigi 2 hours ago 0 replies      
A simple "Sorry - I cannot disclose due to contract signed" should fix the issue. There isn't much the company or recruiter can say beyond this.

Think of a salary negotiation as an Enterprise Sale. Always force the other side to offer a number first and try and try and delay this until they see value in your service (i.e. after the interviews)

aaron695 14 hours ago 0 replies      
> How do you politely refuse to disclose previous salary information?

Say you're under a salary NDA?

Although this mightn't be the best answer to the question, answering with a figure, made up or not, might help you in some way.

> Living costs

Well this is none of there business and is a signal of sorts. But that said it's an intriguing question if they are not in the 'stay far away' category.

Firstly the interviewer might just be a nerd with bad people skills/inexperience in interviewing (Assuming you're in IT)

Secondly maybe the company is very serious about work life balance rather than hard cash.

I'd be asking why they want to know living costs and why as an employee it's important for them to know. Then politely declining or continuing depending on how you feel after a conversation.

But this is an out there question you can't prepare for, next time it'll be something else weird. Everything is easy in hindsight.

The salary question is more common.

phamilton 12 hours ago 0 replies      
I awkwardly said "I would prefer not to disclose that."

I later (after I joined) asked the recruiter about it and she told me that sent a message to her that I was either overpaid or underpaid. The offer (after some negotiation) came in 20k higher than my previous salary.

chrisbennet 14 hours ago 0 replies      
"In a recent interview, I was asked both how much I made at my last job and what my living costs were. I know not to respond to these things, but this was on a third interview after the interviewer had previously mentioned a couple times that the employees of this company don't care about how much money they get paid."

Snarky responses:

"Are you trying to determine what is the most you can pay me without me feeling insulted?"

"I hear you bro. I probably feel the same way about money as the company founders. Unless of course, the founders are trying to make as little money as possible."

"That's great to hear. You should be able to pay me more with all the money the other employees didn't want."

s0uthPaw88 14 hours ago 1 reply      
I use one of two responses depending on where in the interview process I am.

1) Early in the interview process I respond with: "Im sure well find a number that works for both of us, but for now, I want to make sure its a good fit."[1]

2) If it is during a final round or they are offering the job, I like to turn the question on the interviewer and ask: "What is the salary range you have in mind for this position?"

1. http://bucks.blogs.nytimes.com/2010/06/17/on-refusing-to-dis...

trcollinson 15 hours ago 1 reply      
I've never been asked what my living expenses are. I would have been flustered by that question as well, honestly, since it's not up to a company to try to somehow match my living expenses with their pay (unless you live in Japan as a salaryman, of course. patio11 wrote a very enlightening article about that, well worth a read to see the difference in cultures).

Anyway, to answer the question. I have been asked many times what my salary was at my last company. I often reply with simply what I want and a range I will accept. "I received a number of raises and bonuses but I was at about $x. I will accept a range from you of $x to $x + y-k, depending on your benefits." I find the confidence wins over 9 out of 10 times. Additionally, I always have this conversation very early on. At this point I will ask in an initial conversation if we are on the same salary page, "Your company sounds interesting but because I am a <Senior, or whatever> level engineer I want to make sure we are on the same compensation page. I am currently at $x and I am looking for $x - $x + yk to move. What are you looking to pay for someone with my skill set?"

Edit: I see someone really disagrees with certain viewpoints on this question. Would the down-voter like to share why they are down-voting?

devinmontgomery 11 hours ago 0 replies      
They want to set your old salary as the reference point for your new salary. If you're moving laterally, this isn't awful, but it is if you're looking to move up.

A better anchor (both closer to market and better for you) is to research the median salaries for that type of position in the area. Many job sites (I most recently used Glassdoor for this) give these numbers. It's not perfect, but it's a better starting point.

The actual words I would use are "Well, the median salary for [position] in [City] is $[dollars]. I'm looking for something that pays somewhere in that ballpark." If there are reasons you think you should be paid more than the median (you're very well qualified, the company tends to pay above median, etc), I would wait until after the offer is made, when you're in a stronger position.

canvia 12 hours ago 0 replies      
Are most of their employees younger?

"Disclosing that information could only result in neutral or negative outcomes for me. It is not logical for me to behave in such a manner. Do you generally hire people that make illogical decisions?"

If they're asking you for detailed salary information like that the answer to the above question is going to be yes regardless of what they say. Don't accept that kind of abuse of information asymmetry. If they behave that way during the hiring process, imagine how they will behave once you have committed to the job. Find a better place to work IMO.

The government publishes transparent salary information for over 800 types of jobs, segmented by state. http://www.bls.gov/bls/blswage.htm

TamDenholm 12 hours ago 0 replies      
One thing you should mention is that while salary isnt your only incentive, not enough salary is a massive disincentive. You may not be taking the job for the money, of course you're taking it because its an awesome company, with awesome people and you love the problem they're working on, however, no matter how amazing it is, if you dont get paid enough, its not worth it.

Its not their job to tell you how much you can live on, they can make an offer, which should ALWAYS be pushed back upon with a counter offer until you come to an arrangement. Also, golden rule in negotiation, is be prepared to walk away, otherwise, you lose.

As Phamilton says, just say "I'd prefer not to disclose that." and perhaps add, "I will take any offer under serious consideration."

mode80 14 hours ago 0 replies      
Can I suggest a different approach? Instead of dodging the question, put yourself in a position that you're happy to answer. "My last contract gig paid $100/hr. That's $200k yearly on an annual basis."
coreyp_1 15 hours ago 0 replies      
"I appreciate the question, but I do not feel that my previous salary nor my living expenses impact my ability to perform my duties at this company. Now, what do you feel that this position is worth to this company?"
wes-k 14 hours ago 1 reply      
You should also understand that the recruiter or hiring manager knows exactly why they ask that. It's not like it is a secret that answering it gives them an excuse to pay you less.
lou2ser 14 hours ago 1 reply      
At this point in my career I start all head-hunter conversations with "I work 100% remote as a W2 employee (not contractor) with full benefits. I travel 1 - 2 weeks a year, work 40 hours a week, and make $x. If you can meet or beat that let's keep talking, otherwise thanks for your time."

It keeps the conversation short which is nice for both me and the recruiter. And if they have something interesting to say then I know it's worth my time.

gesman 11 hours ago 1 reply      
Tell "it's confidential according to the contract I've signed with my previous employer".

As a compromise - tell: "it's in the ballpark between A and B", where A was your actual salary and your desired salary is in between A and B.

jghn 13 hours ago 0 replies      
I've seen the living cost question a few times today here on HN, and I've never seen that before. Is this a thing these days or is it specific to the startup culture perhaps?
hga 14 hours ago 1 reply      
Nick Corcodilos of Ask the Headhunter has good things to say about this, along with a lot of other stellar advice: http://www.asktheheadhunter.com/
Ask HN: How to show value of an analytics platform for dev and ops?
points by apurvadave  7 hours ago   1 comment top
smt88 7 hours ago 0 replies      
Focus on pain and fear.

For example, I'm the sole technical person for a number of projects. I leave my phone on at night, so that I can be alerted if things go terribly wrong.

That's both a pain and a fear. It's painful to be on-call all the time, and I'm afraid due to being the single point of failure, as well as the person responsible for cleaning up a mess.

(I'm lucky to live in a time when there are great tools available to make problems extremely rare, but you get my point.)

If someone pitched me: "Turn your phone off at night", that'd really hit home for me.

You need to find a similar way to illustrate how you're going to alleviate a pain point.

Why has the search system broken the Back button?
points by ColinWright  18 hours ago   6 comments top 3
mtmail 17 hours ago 0 replies      
Don't like it either. I added the feedback to https://news.ycombinator.com/item?id=8912684
DanBC 17 hours ago 2 replies      
There is no zooming on mobile. That makes search unusable for me now.
redox_ 15 hours ago 1 reply      
Should be fixed now.
Ask HN: Rails to OpenStack career migration
points by haidrali  8 hours ago   2 comments top
bootload 6 hours ago 1 reply      

Be specific.

Do you mean <https://en.wikipedia.org/wiki/OpenStack> product or a true "open-stack" consisting of open-source software ie: language + database + web server + OS?

Ask HN: How do we find an investor in the EU/UK for something very technical?
points by tluyben2  21 hours ago   37 comments top 19
mseebach 20 hours ago 1 reply      
I can't actually help you directly with your request, but stop telling yourself that you're building something "very technical", at least to the extend that it's an impediment to articulating the business value of your product.

You're solving a real problem for a real market. You will help thousands of app-developers reach a wider audience with a better product. You're selling shovels to golddiggers, you're not digging gold - that's a good business proposition. Do some back of the envelope math to figure out what the market is worth, and come back with the question "How do we find an investor for a great business?"

kcorbitt 20 hours ago 1 reply      
This isn't exactly an answer to your question, but a general piece of advice: you might have more luck if you take your "very technical" product and explain it in a way that others can relate to more easily. Something like "We've built a service that allows programmers to create Android apps from their iOS applications automatically." And then follow that up by explaining that typically building an Android app takes a full-time engineer 6 months at XXXX/month, while your product makes that unnecessary, so you think you can charge developers XXX to use it.

When you give a bit of context to what you've accomplished, it shouldn't take someone with a BSc in CS to understand what you're talking about.

All that said, sometimes the best way to find good investors is to just go where they are, as others have mentioned.

EDIT: sibling comment by mseebach beat me to this point by about 5 minutes

Gys 54 minutes ago 0 replies      
Add a capable person to your team who's sole task it is to find investors for the visioned expansion. Its a full time job, especially with such 'raw product'. A person to work out the numbers (investment needed, market size, product placement, target price level), contact VC's, setup/lead meetings etc. Maybe even on no cure no pay.
richmarr 20 hours ago 1 reply      
Get lots of meetings and shake a lot of hands. It's hard work and takes a lot of time.

You could try and shortcut this by using Seedrs or similar, but you're going to be a more compelling investment if you've refined your pitch.

Inbound contacts from VCs are worth more than when you make first contact yourself, but you need presence and externally visible momentum to get those.

Also consider going to the US. Money is easier to get hold of there. You could make an argument that EU investors are just more choosy, but I haven't seen any stats to indicate a higher typical return. It also helps to talk to an investor who knows the space.

Maybe someone else has an easier path for you... I've done this but I don't know everything. Some days I don't know anything.

cjriddell 2 hours ago 0 replies      
Try to pitch your business as solving a problem and don't pitch as "this is very technical".

I have found if you start by saying to a customer/investor "this is very technical" they have often decide they are not going to understand what you are about to say before you have even tell them details.Think about it as a magic potion, your service is a magic potion that ports apps between platforms. On the outside, that's your biggest message and the details can come afterwards if they are needed.

mbesto 20 hours ago 1 reply      
Check out Cambridge, UK and network with the companies/investors there. ARM, Bromium, Geometrics and quite a few others are all companies that are based there and are very technical.
charlesdm 20 hours ago 1 reply      
I guess the best answer here is to talk to people. But if you truly know no wealthy people in technology, that might be hard. Wealthy people usually have wealthy friends, and they tend to invest together (risk spreading).

Pure technical products are usually harder to find investors for, but regardless, you should focus on results/value. If getting an average app developed costs you $20k on iOS, and $20k on Android, then show investors that by using your technology, the second $20k for the Android app can be saved. Don't talk about technical stuff, such as classes/methods/blabla. They won't care, unless they're a software guy themselves.

A question: How does the user experience of these apps feel, in comparison to a native Android app? I can see this idea working perfectly for games, but for apps?

Do you have any sample apps?

What do you need the money for?

tdullien 18 hours ago 2 replies      
This touches on an interesting conundrum: I was one of the founders of zynamics (exit to Google in 2011), and I have been looking for attractive angel investment opportunities in Europe for a while - and also have tried to volunteer some time to do startup mentoring.

At the same time, I still have a day job - in Zurich - so I can't go to the various "startup meetups" or whatever and waste time there :-)

So - how does someone with experience starting/running a very technical company with an interest in doing some angel investing get in contact with people in the EU that are promising? I haven't found a good way outside of asking around via email ...

acolyer 16 hours ago 0 replies      
I work with Accel Partners in London (http://www.accel.com/#people/adrian-colyer), and after many years in CTO roles, I'm certainly not afraid of technical subject matter. A quick read through some of my recent blog posts should demonstrate that: http://blog.acolyer.org. There always has to be a good business opportunity too though, not just good tech. We help our European portfolio companies establish a US presence and grow the connections etc. that they need: Accel has been operating in the valley for over 30 years! Without passing judgement on this particular opportunity, I'm always happy to hear from anyone in Europe doing interesting things with technology, aspiring to build a significant business around it, and potentially looking for VC investment. Our recent investment in Weaveworks (http://weave.works/news/seriesa.html) is a good example.

Good advice from mseebach and kcorbitt still holds true though...

corford 20 hours ago 1 reply      
You could try http://www.kima15.com although ceding 15% might be too steep for the amount they invest given you have a working, sellable prototype (I have heard Kima say they are sometimes willing to negotiate on this figure though).

You could also try posting to angel list (not easy to get noticed there though unless you already have a bit of a network).

ig1 19 hours ago 0 replies      
As a startup it's your job to convince investors about the size of your market. When a FoodTech startup or FashionTech startup pitch to investors they don't assume the investor will have an in-depth knowledge of their market, they have to demonstrate through data what the market-size is.

You can do this top-down (what's the size of the market for iOS-to-Android porting by agencies servicing line of business apps) and bottom-up (you spoke to 50x agencies in this market; 40% want to buy your product and were willing to pay X). But you need to have evidence to back your claims.

You can very easily explain what your product does without having to go into deep technical detail. Use your story to explain it: "Converting iOS apps to work on Android was costing us around 150k a project; we've built a product that allows us to bring the cost down to 20k by automating away most of the work. We now want to bring this technology to other agencies."

mmahemoff 20 hours ago 1 reply      
I don't understand why you couldn't just start selling it, considering:

* It could save developers many thousands of dollars.

* There's presumably a big market for it.

* The product is apparently already built and would be difficult for someone to clone.

It will be a lot more attractive to investors if you already have revenue and a plan to scale it. Especially in EU/UK.

Arbinv 20 hours ago 0 replies      
Honestly, I ended up moving to the US. Depending on what exactly you want a good option may well be to spend 3-4 months in an accelerator in North East US or SV and then take a view on the long term. A lot depends on where you see the market. This route will expose you to the eco-systems and give you a good sense of if you want to stay the course in the US and seek venture funds.
jacquesm 18 hours ago 1 reply      
I've forwarded this to a company that does lots of mobile (and invests too). Best of luck!
Tlesenechal 20 hours ago 0 replies      
Hi,I am working in a tech incubator located in Paris.I think that first, you should build a kickass executive summary, and target key micro vc/ angels in your sector.Then, try to get intros with them via your network or contact them on linkedin.Don't forget that you won't have a second chance, so target them well, and get ready before meeting them ! Good luck !
pbreit 19 hours ago 0 replies      
If you already have a decent consulting business I would try to get it into shape where you could make it publicly available and see if there's demand.
stfnfhrmnn 20 hours ago 0 replies      
Have you looked at some crowdfunding options, like seedrs, crowdcube or others? Those could work supplementary to 'traditional' investors.
fdik 20 hours ago 0 replies      
In short: forget it. Go to the valley or to China. The situation is ridiculously bad in Europe.
solve 20 hours ago 1 reply      
And once you solve this, how will you meet the people who will eventually make the biggest investment? (The acquirers.)

Being in the right part of the US, you can meet all three - future employees, investors, the decision makers in charge of acquisitions, valuable introducer middlemen, while you're at the park or chatting with people at meetups or anywhere. Amazingly, you can meet them just like any other normal people at any stage.

You may aim to strike the "best of both" by staying in EU. Very unlikely. The extremes wind up being far easier and more enjoyable than trying to balance something in the middle.

Ask HN: Good code to read for a beginner
points by greggyb  10 hours ago   6 comments top 6
joshschreuder 6 hours ago 0 replies      
If you're into web dev, the annotated source to Backbone / Underscore are interesting reading:



huehue 2 hours ago 0 replies      
Check out the practical chapters from Practical Common Lisp.


avinassh 5 hours ago 0 replies      
It may be difficult for a beginner, but try to read and understand Tornado and Flask's code. (They are written in Python
logn 8 hours ago 0 replies      
My $.02, when I started programming I tried the same thing by buying a book where a guy explained game programming by taking you through steps to write an entire game he made. It made me want to quit programming. I found looking at small algorithms a lot more helpful. A good source for those is to read code of sorting algorithms and data structures. Then try to build them yourself (e.g., read the source code for a linked list, then build a circular linked list).

I don't see the need to worry about style if you're a beginner.

mod 5 hours ago 0 replies      
I would just pick a popular library in your language of choice.

It'll probably have some great code and some rough edges. It's okay. Learn how to get shit done and learn elegance, too.

Or you could pick a common theme and look at various implementations of it. Look at twitter api libraries and see how they differ, perhaps?

Ask YC: Are there ideas that are done to death?
points by pharaohgeek  14 hours ago   5 comments top 5
smt88 13 hours ago 0 replies      
Nothing has been done to death, nor will it ever be. There's been a lot of research that first-movers are almost never the ultimate victors in an industry. Furthermore, being a "victor" (no matter how huge) doesn't last forever. Every company has a rise, decline, and death.

Small companies can always, always disrupt a giant. The reason is that a giant, in order to sustain itself, must cater to everyone. It's impossible to do that well, and they'll always leave niches that are under-served. That's where a small company can come in, dominate that niche, and slowly take over the market. Clayton Christensen has famously researched and written about that process.

That said, ideas are meaningless. No one succeeds because they had a great idea, except maybe the Tim Ferrisses of the world who "bend the rules" and screw people over.

All that matters is execution. You might have an online dating idea, and it might be great, but can you actually execute? Launching a consumer brand costs millions these days because of the high costs of customer acquisition. Do you have that money? Would investors feel confident giving it to you?

Or, if you want to start a B2B company, do you have an unfair advantage that will catapult you over all the other people doing the exact same thing? Do you know lots of people in that industry, or were you yourself one of them, so you understand them particularly well?

Don't get hung up on ideas. No idea is new, and usually if you have an idea that no one has done, it's because it's a terrible idea. Don't be afraid of competition. You don't have any until someone is actually taking your customers away from you, and tiny startups don't tend to have that issue for a while.

MalcolmDiggs 4 hours ago 0 replies      
Well, if you've never heard of a company offering that service/product, then you're probably not alone there.

Someone offering a product doesn't mean they have saturated the market for it, or even made the average customer aware that they exist.

Even if they do exist, and they have saturated the market, the fact that you still want to build a different product might mean there is innovation left to do in that space.

So no, I don't think anything is really done to death. If you want to do it, go with your gut.

mod 6 hours ago 0 replies      
Slightly off-topic: you probably shouldn't do a secure messaging app.

Security experts agree: if you're not an expert, don't build security apps / systems.

Back on topic: I say if you can come up with a plan to compete with existing competitors, and it seems reasonable to you--go for it.

eddie_31003 13 hours ago 0 replies      
I think there is always room for a better mouse trap.
hyp0 13 hours ago 0 replies      
search was considered done to death before google. of course, it really is done to death now...
Ask HN: What is your process for planning/starting a new project?
points by brentm  9 hours ago   1 comment top
Gyonka 9 hours ago 0 replies      
Your process sounds pretty effective to me, especially for a shop with 4 people. I've also only really got experience working with smaller teams. The only thing I would say I do differently before I commit to any ideas and wireframe is to ask everyone part of the team what they think, especially if they are not developers.
Ask HN: Whats the best career advice youve ever received?
points by dpmehta02  18 hours ago   6 comments top 6
brd 15 hours ago 0 replies      
In regards to speaking out: "Ask yourself what you'll get out of it before you say it" if it's only to make yourself feel better its probably not worth it.

The advice I give constantly: "Be the squeaky wheel" in reference to the idiom "the squeaky wheel gets the grease". Let people know you exist and what you want and you'll be surprised how often you get it.

An interesting point an exec made to me about how to choose what to do with your career: "Find the biggest lever"

enigami 3 hours ago 0 replies      
My boss once told me 'This is not the right place for you' -- I consider this as the best career advice i've received so far, because it came from a person who really cared about me and knows me.

What followed next is interesting...I am chasing my dreams now

mattm 13 hours ago 0 replies      
Read 15 minutes per day about your industry or improving your skillset. No matter where you start, within 5 years you'll be in the top 5% of your industry.
RogerL 9 hours ago 0 replies      
It wasn't advice so much as a question. Lead would walk by my desk each day and ask "what are you going to do to excel today?" There's a pretty big difference between getting the job done and excelling, and the latter is more fun to boot.
bhhaskin 18 hours ago 0 replies      
Never sell your self short. Your time is valuable.
orky56 10 hours ago 0 replies      
Do what you love. For everything else, love what you do.
points by careerpal  12 hours ago   2 comments top
smt88 12 hours ago 1 reply      
This is a pretty small thing, but you should really be using SSL ("https://...")

There's just no reason to use unencrypted connections anymore. The cost of a SSL cert is minimal, the installation isn't difficult, and it's a big benefit down the road, because the HTTPS version will be canonical to search engines.

points by sharedmocha  15 hours ago   1 comment top
justfalcon 13 hours ago 0 replies      
Funny, I was trying to buy this domain a few days ago. I am planning an strikingly similar site/idea. I was thinking of approaching it in a slightly different manner but like the idea of having "planned trips." I would love to chat with you further if you'd be willing to.

Here are some things I noticed after looking through it for a few minutes:

- I would plan on using something other than Wix to host your site for starters (at least I hope you have something else planned...anytime I see a Wix site, 99.9% of the time I immediately leave)

- There are some grammatical errors and typos on your About section

- I've never really been a fan of black page backgrounds as I kind of find the site a little difficult to look at. Specifically the dark homepage slider image. I would come up with a different color palette, maybe something that uses some blues, whites and orange...

- Or at least change the font color to one easier to read, purple on black has always seemed problematic to me. (I've been looking at Proxima Nova font a lot lately see: https://typekit.com/fonts/proxima-nova)

- The boxes that have "X days," throughout the entire site, are off center, which is strange to look at

- Also, when you look at a trip (for example the NYC one) you lose the footer for the site.

Do you plan on having user accounts? The site copy doesn't explain how those trips/places to see go from the user to the site. Having user accounts would seem to bring all sorts of benefits to both the company and user - being able to save/favorite certain locations, maybe even add reviews on popular spots...though my immediate worry would be nothing more than an specially organized yelp.

Since there only appears to be two test trips to see - does this create trips based off of location & travel time? Like, if I want to go to NYC for 4 days, is that the only level of input from the user? The site copy says "pick a plan that works for you" but there aren't any additional filter/input layers.

For example, if I want to go to NYC for 3 days. I want to be able to say: I want to go to NYC for 3 days, am staying at "X" and only want to walk (or input a travel radius...) and want to see "X, Y, Z" (perhaps restaurants, tourist attractions, museums, etc) <-- this is where building a user profile that has some personal "taste" options would also be an added benefit.

How are you integrating with Google Maps?

Anyway, I could go on for a long time about this as it's something I've been starting to piece together a plan for...let me know if you'd like to chat further or want me to be more specific with the few things I pointed out.

good luck

Ask HN: What are some strong ecommerce solutions for native Android apps?
points by alexyes  15 hours ago   discuss
Ask HN: Is there a design ranking site where people score website visuals?
points by andrewstuart  14 hours ago   2 comments top 2
Ask HN: Is any company in Cape Town looking to hire a developer?
points by gherkin  19 hours ago   discuss
Ask HN: Why do people hate PHP so much?
points by udswagz  22 hours ago   20 comments top 13
feedjoelpie 20 hours ago 0 replies      
Mostly because the legacy of PHP as a toy project carried forward forever. Here's a great tidbit about why all the original functions have ridiculous, inconsistent naming schemes:

> "Well, there were other factors in play there. htmlspecialchars was a very early function. Back when PHP had less than 100 functions and the function hashing mechanism was strlen(). In order to get a nice hash distribution of function names across the various function name lengths names were picked specifically to make them fit into a specific length bucket. This was circa late 1994 when PHP was a tool just for my own personal use and I wasn't too worried about not being able to remember the few function names."

That's right: Every one of the original function names has a different character length because length was used as a lookup. There are a lot of clowny things like this that have never been stamped out of the language.

Add to that its history of being a beginner language that most of its early adopters sprinkled into HTML and where many people who mayyybe have no business being professional programmers started making a career out of it. This severely undermined PHP's credibility as a language for professionals even though good software can be created in PHP in the right hands.

That all said, I spent about year coding in Hack, and while the parts that still feel like PHP are annoying, it is awesome in so many other ways. Hopefully it either starts to unseat PHP or PHP turns into Hack at some point.

api 21 hours ago 1 reply      
Inconsistency, very prone to security mistakes, poor type system, and some people just find its syntax "ugly." For example lots of folks hate $strings and $_WTF['bbq'] type syntax. Perl is another language whose syntax draws a lot of haters.

I'd say the second problem is the most objectively bad. It is very easy to write PHP code that exposes you to all kinds of known exploit classes like SQL injection, command injection, cross-site scripting, etc. The language seems to encourage poor practices like building query strings directly from remote input without the use of a true query builder.

PHP also has a problem that it shares with JavaScript and to a lesser extent Java -- the quality of the user base and user-contributed code is often very poor. If you look for PHP code on StackOverflow or Reddit or similar sites, you are likely to get something that is horribly wrong, comically inefficient, or whose use will immediately introduce a dangerous remote security vulnerability. This comes from the simple fact that it's often a beginner language, so you have a lot of inexperienced people participating in forums and contributing sample code.

davidw 22 hours ago 0 replies      
I'm a web developer too, and I've worked with PHP professionally. It's not a great language in terms of features, but there are worse.

One of the good things about PHP is that it has a very low barrier to entry, making it easy for people to get up and running.

I think, though, that that sometimes leads to one reason why people dislike it: a company gets up and running (which is a good thing) on a hideous pile of crap codebase (not so good) and then decides to hire some more serious developers.

I've been in that position, and it is not fun.

ts-jondin 22 hours ago 0 replies      
Inconsistency, would be my topmost argument, in general.Among many other things these include what PHP dodges underthe term "language construct" which when searched producesa wikipedia stub article with the only examples in PHP.

Failed closures that lack proper scoping, while they have been improved the underlying problem remains.

Continuation on inconsistency is that functions are not first class even though the syntax is the same for closures:

function foo () {} <--- This is a function

$foo = function () {} <--- This is a closure

Inconsistency; Cannot access functions (closures) directly from arrays.

$list["something"] = function () {};

$list["something"]() <- fatal error

What is "truthy" and what is "falsy", not unique to PHP but that doesn't mean PHP should do it.

Assumptions such as how it interprets numbers in octal

Functions do not follow any specific naming standard, i.e. some array functions are prefixed by array_*, some are not.

Include and require scoping is messed up as anything that is not a variable is mashed into the global scope.

Lastly in my post but far from all issues with PHP;A crap-load of legacy because "we can never break anything"

giaour 17 hours ago 0 replies      
PHP gets a lot of hate because of internal inconsistencies and sometimes bizarre pass-by-reference semantics, but I mostly get annoyed at how dog slow it can be.

When PHP is fast (and it often is!), it's because the functions you're using are written in hand-tuned C. The kind of "modern PHP" that I write professionally (think Java or C# without types or a compiler) is often disappointing performance-wise.

HHVM is slowly proving to the word that this is not due to PHP itself but to the Zend runtime, but it'll be a while before HHVM takes over.

LarryMade2 9 hours ago 0 replies      
Take your pick (probably a combination of the below):

1) it is more popular then what they are using, developing or have skills for

1a) they use language x which does something different that they feel PHP sucks because the lack of it.

2) they got stuck using it and prefer language y instead.

3) They really arent all that good programmers and rely on pre-implemented security features to save their butts, and PHP doesnt meet their dependencies

4) they are invested-in or represent language/platform x and PHP is a compelling contender.

5) they prefer to argue instead of fostering as accessible/usable alternatives for for one reason or another

Just as COBOL, FORTRAN, Visual BASIC, Perl, etc. are reviled by some, they still get jobs done. In some respects it may suck, others it's just fine partly based on intended application and/or coding skill.

If PHP was so bad in all the respects argued, there would be a much more compelling alternative, but it isn't all that bad, and actually quite useful... and popular.

haidrali 19 hours ago 1 reply      
I am also a developer with experience in PHP(Cake, Codeigniter) Python(Django) Ruby(Rails) according to my experience PHP isn't a bad language and i don't hate PHP its just matter of fact i don't prefer to work in PHP( or any of its framework ) the reason is RAILS offered so much to me in context of Rapid Application Development that neither of PHP's framework offer

This is what i thought

franze 22 hours ago 0 replies      

> An array in PHP is actually an ordered map.

frostmatthew 22 hours ago 1 reply      
I'd suggest reading PHP: a fractal of bad design http://eev.ee/blog/2012/04/09/php-a-fractal-of-bad-design/
deekarma 15 hours ago 1 reply      
It's interesting to read all these comments and more interesting for me to constantly be hearing "But hey, Facebook's built on PHP".
mfc5 21 hours ago 0 replies      
Here's a whole list of reasons: http://phpsadness.com
sighsighsigh 20 hours ago 0 replies      
Weak refs are a joke in PHP. All problems stem from that.
ryanloring 19 hours ago 0 replies      
Because people are stupid. And stuck in the 90's. That's the main reason. Other reasons include self-hatred for spending so much time on RoR's/Node's penis. That's definitely the second leading reason. Making less money then "stupid PHP programmers" cause they seriously thought they could develop real applications after learning JavaScript. That's pretty high on the list.

Look the bottom line is PHP has some weird issues (naming inconsistencies, parameter ordering, security issues with deprecated functionality, etc. etc.) but you can find issues on the same level with ANY language. Professional PHP dev's can consistently build large enterprise applications that are readable, scalable, maintainable and performant. Anyone who tells you otherwise is simply not familiar with the transformation that PHP and the community has gone through since version 5.3.

Ask HN: How to find a student job as a programmer?
points by wofo  20 hours ago   10 comments top 5
onion2k 20 hours ago 1 reply      
To answer each point in turn;

1. You're a new developer with no professional experience who wants a reasonably well-paid job on your terms rather than an internship/junior role. You're going to end up doing the boring stuff. On the specific task you mention - that's either a fairly trivial exercise in regular expressions or a reasonably interesting task refactoring a codebase to use a proper database abstraction. Either way it's not that boring. I can think of much more boring coding things.

2. Don't look for roles at big companies then.

3. Every company has things that look bad from the outside but there's usually a reason for it. Don't judge. You'll be responsible for writing some pretty horrible code during your career. I guarantee it.

4. Some startups have plenty of cash and are absolutely desperate for developers. Look here: http://workinstartups.com/ (if not there, there might be a more Netherlands specific version somewhere.)

5. Yes, you can network. Finding events is easy (Google, Meetup.com, etc). There's loads of them everywhere. Also, ask your tutors/professors. They'll be pretty well connected. And go old school - Google for local software companies, find their email addresses/phone numbers, and reach out to them. You will be amazed how happy people are to help you.

EDIT: One more thing.. don't underestimate the value in getting a job that isn't anything to do with coding. For example, working in a restaurant would give you plenty of 'soft skills' experience dealing with people. Being a 'people person' will set you apart from other developers later in your career. It's worth thinking about.

ruigomes 13 hours ago 0 replies      
I'm in a very similar situation and about a month ago I posted this exact same question here on HN.

Since then, I went ahead and built a functional job board for part-time jobs for students/parents/etc.

I'm currently looking for some early adopters who have part-time jobs to post (for free!), so if any readers have part-time jobs to fulfil, email me at hello@ruigomes.me.Even though I'm currently booked for months, it'll help people in the same situation I was a month ago, and in the situation the OP is now :)

nickysielicki 18 hours ago 1 reply      
Does your university have a job posting site?

I found my student job out of sheer luck, mucking around in bash before an exam and suddenly someone was peering over my shoulder and gave me an email address for their boss, I had a job interview a week later as a junior *nix sysadmin for my university.

You might not find the same luck, but you should definitely try to find something on campus. My boss is very flexible around exam time, and it's just a laid back atmosphere where you learn a lot.

Zekio 20 hours ago 0 replies      
you could choose a low salary and work with a start up for experience, unless you need the money.personally i would go with a start up with a low salary since my country pays students and don't care if you have a job on the side.
ichramm 18 hours ago 0 replies      
I'll go with number 4
Too old to start IT career?
points by Cozyskier  21 hours ago   15 comments top 11
nickysielicki 18 hours ago 0 replies      
Unless you really hate your job or are having trouble finding work, you may not want to go down this path. We need more informations about your skills.

Have you dabbled in programming before? What languages?

Do you use a unix-like operating system? Windows? How comfortable are you with inner workings of your preferred operating system?

If you use unix, how comfortable are you comfortable with command line tools like grep, sed, and/or awk? Do you primarily manage your system using a GUI?

WRT security, do you know much about IP? Are you aware of differences between unix sockets and ip sockets? Are you aware of common vulnerabilities for outward facing services? (ie: sql injections)

Without knowing a bit more about you, it's difficult to say. I can't imagine it'd be a good move for someone with an MBA in a separate field to move to the IT field if the above questions are not trivial to you.

d4rkph1b3r 16 hours ago 0 replies      
Well, it depends on how much money you want/need to make and how long you want your career to be. If you want to retire at 55 then it may not be worth it. It may take you 5 years or longer to go beyond 'entry level' in an IT career. So you may (probably will) not make six figures during that time. Does making ~60k while you learn the ropes sound good?

There is some age discrimination (less than people make out imo) in the IT/programming world, does that bother you? Does the idea of being on a team primarily of younger folks sound fun or terrible? :-)

The company I consult for hired a new batch of HTML programmers (very entry level), many are college age and we had one guy who looks to be in his late fifties. shrug

At 44, is your ego prepared to be constantly battered? If you do It/programming right, this never goes away, as you'll continually hit plateaus that are painful to overcome.

Basically I'm trying to say that there's no 'yes/no' answer to 'are you too _______ (old/young/smart/etc) to become a professional ______ (programmer/It/security expert)'.

It's all trade offs, and depending on which ones you are OK with making will influence your decision. I find programming incredibly rewarding, but I very much liken it to a difficult sport. How bad do you want it, and are you willing to endure the challenges of getting there?

kazinator 15 hours ago 0 replies      
At 44, the smarter thing is to think about how you're going to retire in 20 years or whenever. Not a good time to be taking any sort of pay cut!

Programming is a nice hobby. In many ways, it is a nicer hobby than it is career. Some die-hard programmers dream of having more money so that they could work strictly on whatever hacking interests them. I don't know whether enterprise risk analysts regard enterprise risk analysis that way, but I'm guessing no.

If you want to do programming and get paid for it, and get paid well, then connect it to your present work. Do some programming which helps you analyze investments or perform enterprise risk analysis.

If I were an MBA enterprise risk analyst (but otherwise the same person that I am, with my software skills) I would definitely not change career to programming. I'd grab all that enterprise money I could and carry on my programming projects, where I dictate the requirements, design, implementation and all the rest of it, and where my name is on everything at the end of the day.

akg_67 15 hours ago 0 replies      
Unfortunately 44 is too old to make a career switch especially to programming/development. In my personal experience, Ageism is much more prevalent in IT and Technology field.

Once you hit mid-forties, it is very difficult to find a programmer/developer job even when you have been in technology all your career. I know people, in 40s and 50s, who took over a year to find a development job after being laid off from their previous development jobs when company got bought out or folded. Personally, I will not recommend a career switch to development in mid-40s.

But not everything is lost. If you can learn development on your own, consider launching side projects in your domain of experience or scratch your own itch. Also, freelance and consulting opportunities will open up with time.

bhhaskin 21 hours ago 1 reply      
You are never too old. It sounds like you are interested in software development and software engineering which is a whole different ball game than IT (although often IT will overlap, but not always). If you are highly motivated and driven to learn new things on your own you will do great.
giaour 17 hours ago 0 replies      
Since your MBA is in a different field, it probably won't bring you the same salary premium if you become a junior developer. Would you be ok with a steep pay drop?
debacle 21 hours ago 0 replies      
You are not too old, but unless you go into enterprise/corporate IT or plan to do consulting/freelance, you may find a lot of ageism.
Cozyskier 21 hours ago 0 replies      
The reason I post here is that I can see that there is a depth of knowledge and professional experience that I can't tap into with mainstream media. I'm behind saving for my retirement and I really to step up my game for my family. Very open to suggestions and ideas.
Cozyskier 20 hours ago 2 replies      
How does Machine Intelligence and Deep learning fit into programming? What type of background does a person need to get into that ballgame?
Cozyskier 21 hours ago 0 replies      
By the way, I'm also a Navy Reservist...5 months before I go Inacitve.
Cozyskier 20 hours ago 0 replies      
I've been very fascinated by Mindops.com, Metamind.io, and others...
What python framework can be used to build a REST api?
points by udswagz  20 hours ago   9 comments top 5
iurisilvio 15 hours ago 0 replies      
Werkzeug is the Flask HTTP handler. It can be useful for you. I know restpy [0], based on werkzeug.

[0] https://restpy.readthedocs.org/en/latest/

smt88 20 hours ago 1 reply      
Just because a framework offers views doesn't mean that it's too heavy for you. If no views are being processed, they're adding a negligible amount of overhead just from loading the code.

You don't necessarily even need a framework. You could use some libraries. You only need: routing, HTTP request processing, and HTTP response preparation.

fclaerho 20 hours ago 0 replies      
If you're still looking for something, I've hacked a wrapper over Bottle to ease the implementation of a REST service, it's small (2 python files including Bottle) and might fit your needs: https://github.com/fclaerho/rest
chudi 20 hours ago 0 replies      
you said that you don't want any flask, but have you looked at Flask-Restless ?

Flask just gives you the routing part maybe you can even strip flask out of it and just use wsgi.

You can try http://python-eve.org/ too

avinassh 20 hours ago 1 reply      
have you looked into Tornado?
Ask HN: Are Internet speed tests accurate?
points by jamessun  22 hours ago   2 comments top 2
med00d 21 hours ago 0 replies      
The accuracy can vary, but for the most part I've found them to display results that are right in line with what ISPs quote their speeds to be. Ookla explains the way that their speed tests work here -https://support.speedtest.net/hc/en-us/articles/203845400-Ho... and that's the idea behind all of them.

Probably the most inaccurate representation of speed that I've come across was when I had just done a firewall replacement for a customer and I didn't catch that their ISP had the speed/duplex settings on their equipment set to a hard-coded 100/Full-duplex. The firewall that I installed was set to auto-negotiate and since the ISP's equipment was hard-coded, the firewall negotiated at 100/Half-duplex. If you're not familiar with what half-duplex means, basically it means that you can still send & receive data, but you can only do one at a time -vs- full-duplex where you can send and receive at the same time. The problem with a speed test is that the download test only downloads, and the upload test only uploads, so in the case of the duplex mismatch, the speed test looked fine. As soon as users came in the next morning and put the internet connection under load, they began complaining about internet speeds and we realized that we had a problem with the duplex settings.

Another way to test is a utility called iperf, but it's a lot more complicated and requires you to have access to the remote machine. - https://iperf.fr/

Joona 22 hours ago 0 replies      
No. Servers get saturated, some links are slower than others and your ISP may prioritize the traffic. Best way of testing I know of is either using your own server or grabbing a null file from a known host (at least funet in Finland).
Ask HN: My son wants to make side money programming
points by Vivtek  1 day ago   50 comments top 29
underyx 1 day ago 1 reply      
Hey, I work at a startup in Budapest (allmyles.com), I'll ask the team if we could teach him a thing or two by passing off some work. We mainly work with Python, and having him around (office is next to Dek Ferenc tr) might prove fun for all of us. Remote works for us as well, of course.

Disclaimer: We're rather bootstrapped, so I can make no promises. (Jeez, we might not be able to afford a 15 year old programmer.) An even larger issue might be that I think it's illegal to give work to anyone under 16. I'll have to ask around and if you send me some contact info to bence.nagy@allmyles.com, I'll get back to you once we've got things figured out.

crdb 23 hours ago 3 replies      
I'll take a different tack.

In my world (data) there is a lack of developers - or just people of any kind - with sound understanding of the relational model and its (only relatively correct) implementation, SQL. SQL is a very declarative language, high level and intuitive and easy to write correctly. With a good RDBMS, it's also easy to optimize when you are resource constrained.

And literally EVERY company out there has a database that needs to be queried, reports that need to be put out, databases that need to be normalized, data warehouse schemas that need to be drawn up, data sources to be joined together, questions that need to be answered and relatively few people to do the work.

I would say start with bases in set theory and logic in parallel with C. J. Date's books (which are easier than Codd's original paper as a starting point). An additional benefit of starting there is he's less likely to shoot himself in the foot with ORMs later on.

Regarding where to look for work, talking only about Singapore and ASEAN companies, I get contacted several times a week by agents, headhunters, and executives from local companies who have these problems. I can't speak for Europe, but here, a cold approach or a well formed reply to a job ad with "data analyst" in the title offering cheap ("because 15") but high quality remote work might work.

Beltiras 23 hours ago 1 reply      
Python. Fullstop.

Is he interested in games? Make him implement a roguelike, or study Panda3D, if that's where he leans.

Does he like to design UX? Use one of the wonderful web frameworks (my fav: Django, but also tornado, Flask, Pylons) and do some webdesign.

Useability applications for the Desktop? https://wiki.python.org/moin/GuiProgramming more frameworks than you can shake a stick at.

Best calling card you get when looking for work is pointing to what you built. Rent a DO dyno and post the work there. Showcase cool stuff.

karterk 1 day ago 0 replies      
I started along the same path 12 years ago, so I can share my experience.

* I started with PHP. My suggestion today is to start with Django (Rails is fine too, but Django has less magic and so things are lot more explicit)

* Bootstrapping out of nowhere is difficult. He will have a lot to learn from the knowledge perspective. So, looking out for opportunities, negotiating payment etc. can be draining. This is where you can help so that he focuses on learning his craft first.

* It will be tempting to work for free. Advice him against that. He can work for a low fee, but getting paid puts the work in the right context.

* Stay away from portals like Elance and ODesk.

* Working as an intern at a company would really help him with the other meta aspects like planning, team collaboration etc. which are all important to pursue his long-term goals.

nkuttler 23 hours ago 0 replies      
It seems like almost everybody who replied is a web developer, and assumes your son wants to build websites. Let me suggest something different.

Figure out which part of programming he's interested in, why he likes it. Is he good in maths/physics, does he want to write games, websites, apps, etc.

If he's just interested in "programming" in general, get him a nice book on algorithms and suggest different languages he can use to implement them (something C-like, a scripting language, a functional one, a modern Lisp dialect).

Oh right, get him to use Linux or BSD, as that will give him access to a ton of free development tools. I also mention free because I don't think he should focus on making money at 15, but find something he enjoys learning. If necessary, you could provide incentives to learn this properly, instead of following possibly short-lived market trends.

luch 1 day ago 0 replies      
Generating money from programming is hard, really hard. I'm a professional developer (though a junior one) and I can't find ways to do it reliably.

If it's still interested in programming, here is my list of languages :

- Desktop : Python obviously. You can make little graphical interfaces, easy scripts, manipulate data in Excel or Word, even some remote automation since there are network libraires.

- Web : I would recommand against full-blown web frameworks like Django or Rails. Start small by using some simple static sites using HTML+CSS and then learn to build dynamic ones using PHP and Javascript.

I would also add that there are others ways to make money than programming : I know a 17 y.o. which rigged up a farm of Minecraft servers for his highschool and he's being paid by his classmates for the hosting.

codingdave 23 hours ago 0 replies      
It depends on why he is trying to make money, and how quickly he wants it. But if this is the start of a long-term career plan, then I suggest doing some small projects for free to learn more skills and build a reputation.

If those projects go well, he will quickly get referrals to do more, and then he can charge. On the other hand, if they go badly, people don't feel like they lost money, and instead will feel that they gave a 15 year old a chance... and may even give him another one when he is 17.

It is amazing how quickly expectations rise alongside bill rates.

chippy 23 hours ago 0 replies      
How much does your son want to do programming? Does he do it for fun already?

What other interests does he have? Are there parts within these interests that could have relevance for programming? For example he might like bird watching, so perhaps a mobile app for birding might be good, or he might love platformer video games, etc etc.

In short, he should do what he is interested in, don't worry about the choice of technology - by far the most important thing is that there is some interest, passion and enthusiasm. The choice of technology is less important than the choice of what to do.

jakobegger 22 hours ago 0 replies      
If he wants to do freelance work, I suggest browsing job boards on university websites or on facebook. There are always lots of people looking for part time developers there.

But as an alternative to freelancing, I'd recommend making a little useful app and selling it on the web or on one of the app stores. I make Mac software, and there's a big market for useful utilities on the Mac App Store. The hardest part is probably coming up with ideas for apps; when you're 15, you just don't have a lot of experience with the kind of problems people have.

Here's an idea for a simple app, to illustrate what I'm thinking about: Make a CSV file converter that can convert between comma-separated-files and semicolon-separated files. If you add hungarian localisation, you even have a unique selling proposition.

As for what programming languages to start with, I'd probably pick Objective-C / Swift if your on the Mac, and C# or Java if you're on Windows, and C++ & Qt if you're on Linux. These languages are popular, in high demand, will probably still be very relevant in 10 years, and you can quickly get an internship in many companies if you have basic knowledge of those.

Why? Native development has a bit steeper learning curve than web development, but in general the tooling is better (IDE, documentation, etc) and there's less competition.

davidw 1 day ago 0 replies      
I'd recommend this book and the bootstrapping community in general:


He could probably do ok with Ruby on Rails, Django, Node.js or something like that.

vayarajesh 23 hours ago 0 replies      
If he is interested in web development I think Khan Academy is a good place to start (https://www.khanacademy.org/computing/computer-programming)

Great teaching lessons and lot of jobs around the world for the web

toyg 1 day ago 1 reply      
15 is late -- by mainstream reports, at that age you're either a billionaire already or you're never going to make it. </joking>

Back in my days, I'd have built websites for friends and some would turn into (badly) paid gigs. If he's got other interests (sports club etc) they could become engagements.

If really he wants to do websites, you'll have to start with JavaScript/jQuery, then graduate to server-side (node, PHP, Python/Django, Ruby/Rails, pick your poison).

Consider that the real dazzle these days is mobile, and it's not that much harder than making websites (or he can make mobile-optimized websites, which can be almost as cool). It might be easier to get engagements on that side at the moment, since most people/clubs/businesses already have a website but they likely don't have an app.

edtechdev 1 day ago 1 reply      
There's contract work - like creating little websites or web apps for people. So, learn things like Wordpress, CSS, Javascript, image editing, to start.

If I were him, I would first ask around - family, local businesses, organizations, etc. to see if someone needs a website or internal database or something like that, and then learn what you need to learn to do it. Another option might be to find groups or small businesses or individuals that do coding and see if he can learn from them and help out.

What I wouldn't do is just try to learn programming for its own sake - such as taking a course or buying a book without any idea of how it might be useful. He'll just forget it and perhaps even decrease his interest in programming. Flip it around and find a project first, a reason to learn programming.

sheraz 22 hours ago 1 reply      
Love an entrepreneurial spirit!

Bust first, some comments/questions:

- Programming is too broad. I would sit down and get him to think through what he means when he says "make money programming." This can go in a lot of directions (games, setting up wordpress sites), SEO, data scraping, etc.

- Get to know the local ecosystem. Check http://www.3cosystem.com/budapest to see what meetups are coming this month. (Disclaimer - 3cosystem is a pet project of mine). Go to those events and ask the same questions here. See what is in demand. See who is making money locally and abroad.

- I just checked, and there are quite a few events coming up this month. That is a good opportunity for both of you!

Good luck!

barrystaes 21 hours ago 0 replies      
Yes experience is important. I'd say "software development experience = spending time hitting walls".

So find an interesting wall, and let him spend time on hit. For me the interesting things where thrill to see the computer do things, but for others that may be a paycheck.

Do not make cheat time by arranging or buying stuff, except for maybe a laptop. The time consuming obstacles motivated me a lot, i spent more time and effort in learning than i would have otherwise. I went through several programming books that way, just to satisfy my curiosity. Not deliver to some boss.

Later, ofcourse i descided to work for a boss, but by then i discovered what exactly i really found interesting.

facepalm 1 day ago 0 replies      
My personal opinion is that JavaScript is the most fun and the most versatile. For example if he is into making games, creating HTML5 games with JavaScript works very well.

Not sure what is best for generating money.

But for learning, starting with a personal project (like a game) tends to work well.

WorldWideWayne 22 hours ago 0 replies      
Don't count out C# and SQL via SQL Server because C# runs everywhere and has got the proper tools to support it running everywhere (mobile, web, desktop) and SQL Server because it's the easiest to start using with C# if and when you get to that part...

Other languages like Python, PHP, Javascript etc. need to be shoe-horned into their mobile, web or desktop environment and don't have really good tools for one environment or the other. Furthermore, those languages come from the open-source world, the "Bazaar" if you will and they're simply not engineered as well as an industrial language like C# or Java.

glxc 23 hours ago 0 replies      
Learn programming fundamentals through TopCoder and HackerRank, which have programming puzzles and teach algorithm and data structure fundamentals

Then also get involved in an open-source project, just keep looking for interesting subjects and find one you like. Programming is more about managing projects, and it will give you something to put and talk about on your resume, and meet new people, and lead to jobs

Everything you need is online. "Pick a job and become the person that does it" - Mad Men

nnain 22 hours ago 1 reply      
Honestly, if the lad's driven and 'wants to make side money programming', he should be curious enough to ask this question. I find it weird that people are suggesting SQL or Swift or Python, without even knowing what he's like. Maybe he likes microcontrollers. Who knows!

That you can mentor him is great but programming needs an innate interest. You can't really do his homework.

steedsofwar 23 hours ago 0 replies      
If it's solely for the purpose of making money (as opposed to learning for the challenge/curiosity) then do some research: freelancer.com, odesk etc etc. I'd check which technologies are in demand and go from there. It's also important to play to your strengths, for instance i find web development very finiky, i tend to excel in more meaty things like transaction processing. hth
thejew 1 day ago 0 replies      
I started at 15 (15 years ago). Although today I am a Python guy and generally a little anti PHP. I think that the ease of PHP with web servers translates almost immediately with beginners. It will teach him to search for what else is out there. Plus if he is going to be doing little church/synagogue websites, he start to grasp HTML/CSS/Javascript at the same time. Same way I started.
bobx11 1 day ago 1 reply      
Maybe you guys should offer wordpress services for setting up websites. Then you would be:

1. working within a large piece of software (learning)

2. up and running fast and feeling good about making progress

3. able to use google to resolve more of your issues since stackoverflow and many blogs talk about the common beginner mistakes

4. have more customers up front (since money is the motivation) where many people are willing to pay for wordpress setup and management

fjord777 16 hours ago 0 replies      
Python, specifically winpython 2.7.xYou can see variables in the Variable Explorer and ipython is the default shell. Easy to install packages using the WinPython control panel.

Download it at https://winpython.github.ioWindows packages at http://www.lfd.uci.edu/~gohlke/pythonlibs

kamalisreddy 23 hours ago 0 replies      
I suggest he start with creating his profile at odesk.com and freelancer.com . Initially, he needs to apply for smaller projects and at significantly lower prices than the other bidders. He can build a good portfolio and start moving to bigger and paying clients.

He could start with web development initially. It's the fastest way to get going. Then move to other subjects like algorithms, machine learning, Big data.

Ask him to build some stuff which can solve some real world problems that he faces in every day life. If other people also face such problems, they will pay to use his tools.

Good Luck

jkot 23 hours ago 0 replies      
Programming is very competitive market. Python is probably good choice for first language. Together with programming language I would recommend to learn some database, perhaps Cassandra, RethinkDB or SQLite.
gghootch 23 hours ago 0 replies      
A lot of kids start with Wordpress customization or selling themes on ThemeForest.
jacquesm 1 day ago 1 reply      
KISS: Python, Ruby or PHP, Django, Rails or Yii.

If any of those take the world will be his oyster.

Thiz 23 hours ago 1 reply      

The money is in mobile right now, and for the foreseeable future. Try Java for android too. In a couple of years he'll be making good money without leaving home.

Or anywhere in the world for that matter.

willholloway 1 day ago 1 reply      
A $450 Seiki 50" 4k display makes an excellent teaching tool. It's so large you can see code from a higher elevation so to speak. Visualizing and "seeing" how a script flows become much easier. You can stand by the display and point to how a function call executes the code where the function is defined and things like that.

This is the stack I would set up with, optimized for ease of use, elegance, and market demand:

Debian sid or Ubuntu

Tiling window manager


Python flask on the backend

Bootstrap on the front end.

A hacker that is comfortable with Linux and the command line, python, html, css and js can find work anywhere.

Ask HN: How to get started with paying side projects?
points by zorba  9 days ago   discuss
charlieirish 9 days ago 3 replies      
It's great that you're ready to take the leap in to making profitable side projects. Typically most side-projects fall in to two categories:

1. They never launch

2. They never make any money

If you can avoid these two pitfalls, you will likely achieve one or more of a) earning; b) learning; c) increasing your 'luck surface area'. So, it's a good opportunity if you can do it. There are plenty of reasons why you wouldn't have launched including:

- you kept your idea secret

- you tried to do too much

- you underestimated the areas that you're not skilled at

- you assumed that if you built it they would come

- More here: http://www.startupclarity.com/blog/launch-first-product-what...

The reasons for not making any money, or rather not making enough money that you wish to pursue it are multitudinous but include:

- you didn't choose a profitable product idea

- you underestimated the slow ramp of death: http://businessofsoftware.org/2013/02/gail-goodman-constant-...

- you charged too little

- you didn't solve a problem for people who were willing to pay you

- More here: http://www.startupclarity.com/blog/find-profitable-product-i...

I hope that helps and Good Luck!

petercooper 9 days ago 1 reply      
My business is formed of once side projects that gained traction and I doubled down on. My "in hindsight" advice is to choose whether a project is to be optimized mainly for fun, learning or money ahead of time - each radically changes how you (should) begin.

The first two are kinda easy, but if it's "money", work from the money back to the idea rather than figuring out how to make money from a certain idea. Who's spending money, where, and on what? What sort of people do you have exposure to (on Twitter, HN, wherever)? How could you improve on something people already spend money on? Etc.

rachelandrew 9 days ago 0 replies      
I think picking the right idea is the most important thing. A lot of the "never launched" side projects I see were just too big an idea to do as a side project. You need something relatively small, that you can build and launch quickly in a short amount of time. Find a problem that people are willing to pay to have solved, but that is relatively small in terms of time to develop a solution that will solve the problem.

You can do this as a side project because there are lots of things that can make a great side project, bring in a few 1000 dollars a month or more, but wouldn't be interesting to someone trying to launch a business they want to scale.

Look at tools and plugins for software people use already, especially software that has a reasonable pricetag and that people us in their businesses. Anything you can sell to people for whom time is money is a really good start!

I launched a side project 5 and a half years ago which went on to become our entire business. I wrote about that, in a way that I hope will help other people do the same, in my book The Profitable Side Project: http://rachelandrew.co.uk/books/the-profitable-side-project

heintzsight 17 hours ago 0 replies      
Ambition is a form of hope. By definition, you have to be an optimist to start anything. So it's important to counter this with a healthy sense of realism because the truth of the matter is that calling it "difficult" is an understatement.

Know your business model. Know how many steps it takes for you to monetize anything. Know your audience.

I would also say it's important to find good advisors. A good accountant/CPA is very important and it may be worthwhile to meet with a good lawyer. We created CEA (certified entrepreneurship advisor - https://ceanow.org) after seeing how much good advice is so needed and have courses on business planning and entrepreneurship.

cykho 9 days ago 1 reply      
1 - build an online portfolio of work (if you don't have one do personal/free projects to build it.

2 - go on elance/odesk to find some paying clients (pay is low, but easy to find). You can also use this to try different things and discover what kind of work you enjoy best. you can also call some technology consulting firms - they are always looking for talent.

3 - specialize in that area. tailor your website/blog to talk exclusively about that technology. between the inbound from your site and client base from consultant you'll easily be able to build an overwhelming referral stream.

bchjam 9 days ago 1 reply      
Well, do you want to challenge yourself technically or are you more interested in making money? I think that the approach would be different in both cases (and following the money you may still feel unfulfilled intellectually).

For me, I wasn't sure if I still wanted to program, so I went back to the things that got me excited when I started (math models of perception) and I fell in love with it all over again. Now my dilemma is turning that back around and actually working on what I'm most passionate about in a full-time setting. In the meantime, hobbying it is better than not doing it at all

mandeepj 9 days ago 0 replies      
Please refer to this thread - https://news.ycombinator.com/item?id=8844083
steakejjs 9 days ago 0 replies      
In my opinion the best way to start a profitable side projects is to limit the scope of the project.

I fall into the category of starting too many things that I don't finish. I've recently realized that the size of the things I was working in was just way too big, especially since When working on a side project you are working around your life schedule.

After limiting the size of my projects I've found I am completing all of them

kidlogic 9 days ago 0 replies      
Take my advice with a grain-of-salt - I am not a strong developer. However, I do have experience in the Operations side of small businesses.

Since this will be a side-project (and your time is limited), try automating as many aspects of the business from the beginning. I am not implying that you should BUILD automation into the onboarding process, but use services like Zapier to make your life a bit easier.

walshemj 9 days ago 1 reply      
You also need to check with a lawyer to see if you will run into legal problems with your day job and to check what IP implications there are.
tjlivesey 9 days ago 1 reply      
Choose something that interests you and something you want to use yourself if possible. If you can also try out a new language or some new technologies along the way, even better. If you build something with no expectations of making money, then everything is a bonus and you have had fun and maybe picked up some new skills. I would say for most side projects, the majority of the value is not gained from the revenue. Having said that, completing something and putting it out there is the most important part. Good luck!
leesalminen 9 days ago 0 replies      
Keep your eyes open, ears at attention and talk to all different kinds of people.

If you really pay attention, something will stick out at you.

You'll likely have many ideas. Research them all, come up with some kind of a plan for each. Sit on them for a while...one of them will jump out at you.

wj 9 days ago 1 reply      
It sounds like the book Start Small Stay Small by Rob Walling was written specifically for you. I really enjoyed it. He also has a free ebook of his blog posts at softwarebyrob.com.

His advice exceeds anything I could offer you.

hackhowtofaq 7 days ago 0 replies      
jsonmez 9 days ago 0 replies      
I did a short video on this topic, since I get asked it so much.https://www.youtube.com/watch?v=CjAf0TvrhYI
dmourati 9 days ago 0 replies      
Try odesk. Set a high rate and be choosy in who you work with.
jqm 9 days ago 0 replies      
Getting started with side projects is the easy part. Getting finished is the real trick. And the payment part seems to come largely after the second step (if at all).

I build small web apps for companies on the side. Little data management things the office can share... something like you might make with Access but obviously a lot nicer, more customized and networked. I host them also and charge a monthly fee. I don't think this is a way to get stinking rich. But it keeps me busy after work.

jbranchaud 9 days ago 0 replies      
A lot of people have been linking to Assembly lately, but is there anyone actually supplementing their income with it? Is it at all common to do so?
spiritplumber 9 days ago 1 reply      
Make sure that the people who you are working for during normal hours don't try to make predatory claims on your side-project IP, to start with. Apply the minimum amount of violence necessary to ensure this, preferably zero.
Ask HN: How many of you wish to quit a job to build a startup?
points by atrust  1 day ago   16 comments top 9
nsetu 2 hours ago 0 replies      
With an aim to have a start-up of my own, I decided to first give up my permanent job and work as a contractor. This I thought was safe than going out all by myself. I now have a company of my own but I work at client sites. Initially this all seem to be right thing and I also thought of taking up some freelance work which could generate profits for the company.

But, due to my full time job I can hardly focus on my freelance projects let alone targeting those deadlines..

And also I think to bag onto some good projects its essential to meet right people and win projects- which all comes down to networking skills.

jpetersonmn 22 hours ago 0 replies      
I used to have that dream, not so much any more. I work in IT but have been programming in vb.net and python for the last couple of years. I've created several in house utilities for troubleshooting of our main software and automation of internal processes. (I work for an electronic testing company) I've started many side projects, however the excitement usually wears off in a couple weeks and they don't get finished. I'm dedicated to finishing my current project (been working on it several months now) but after that I think I'm going to focus on smaller side projects that I can finish in a week or two, or perhaps trying to help with some open source projects. I tend to shy away from sharing my code with others. I'm self taught and feel like it's probably real substandard compared to the "professionals".
foxpc 1 day ago 1 reply      
I'd say it's a dream of every developer.

I'm currently working full-time developer for a single product. But trying to find at least a few evenings a week to work on my side project that miiight just take off. I'm a bit sceptical about the success but you never know! At least I'm having fun doing it, right?

Proleps 22 hours ago 0 replies      
I've thought about starting my own company, but I don't want to start a startup. I want to start a company without investors that actually makes money from the beginning.

Although it is something I think about from time to time, I am sticking to the job I have for a while. I learn a lot on the job and it's a nice place to work.

codeonfire 1 day ago 0 replies      
As soon as I hit my "quit and build a start-up" targets, I'll be doing just that. Can't really stand being an employee much longer. I'd rather deal with users and clients than coworkers and middlemen managers.
aswerty 1 day ago 0 replies      
I quit about 2 months ago. Currently researching a new tech stack and in the process of designing a web application.
hackerboos 1 day ago 1 reply      
I'm trying to get things started on the side whilst working full time because rent.

I kind of regret not making more of an effort to do this whilst I was in university; I had so much spare time!

hashtag 1 day ago 1 reply      
Just working on projects on the side. Nothing I'd call a startup yet and certainly nothing I'd be dropping everything to dive into at this moment.
deegles 1 day ago 2 replies      
Can't. At least not in this country. I'm on a visa.
Ask HN: Your favourite software engineering whitepapers
points by fishnchips  1 day ago   1 comment top
eveningcoffee 1 day ago 0 replies      
> I already have a rather long list of worthy whitepapers now

So why do you not share them with us? :)

       cached 20 January 2015 13:05:02 GMT