That is, you need to trade in the single highest margin business a fella can find himself in so that you can compete in the single lowest margin business a fella can find himself in. You'd be better off packing it all in and getting a bartender job at another resort on that same beach.
So yeah' here's hoping that somebody builds this thing. But I sure don't want that guy to be me. And if you're asking advice, I'd recommend not letting it be you either. Sad, eh?
From what I understand: go to a touristic location, and instead of spending it taking a rest, doing tourist stuff or whatever, stay in a room full of stranger nerds for the whole day staring at the internet. How is it a retreat?
> When you finish working for the day, why not just be on vacation for the next few hours before starting again the next day?
How it's different from what you're doing right now?
You need to rent out the whole resort (or a good part of it to get the right atmosphere), and provide a little help with getting VISA entry to the appropriate country and the such.
Understand, that tourist VISAs may be denied because you're not strictly a tourist in this case but are going there to work for a month or two.
But actually seriously, when I go do actual things, I start to get real ideas. GTFO
Of course if the tech stack kept changing it would be frustrating for the designers to have to junk their designs on a regular basis. But if you have spent a day with them, then you'll be able to make that argument in their language. This will allow you to empathize with their problems, but will also allow you to get inside their OODA loop  and identify things that they may be taking for granted or gaps in their comprehension that are biasing their decisions.
You don't need to be in an adversarial relationship with them, but the weakness in their design process is coming at a cost in engineering resources which they clearly aren't including in their calculations. You can point this out in a non-confrontational way by explaining the time cost of your lost work, and reminding them that 'a stitch in time saves nine.' It's not like you can pass the buck onto Apple or your framework supplier every time the spec changes, any more than the designers have the option of pretending the screen has a different aspect ratio or whatever.
1. OODA is short for Observation-Orientation-Decision-Action, and the 'loop' is the dynamic application of this process in a fluid situation - originally, in military combat. http://en.wikipedia.org/wiki/OODA_loop
"Startup School 2011" : http://lanyrd.com/2011/startup-school/coverage/
"Startup School 2010" : http://lanyrd.com/2010/startup-school/coverage/
In the meanwhile, here a recap: http://nowaternomoon.com/post/34062996874/my-key-takeaways-f...
>If you ever do find yourself working for a startup, here's a handy tip for evaluating competitors. Read their job listings. Everything else on their site may be stock photos or the prose equivalent, but the job listings have to be specific about what they want, or they'll get the wrong candidates.
>During the years we worked on Viaweb I read a lot of job descriptions. A new competitor seemed to emerge out of the woodwork every month or so. The first thing I would do, after checking to see if they had a live online demo, was look at their job listings. After a couple years of this I could tell which companies to worry about and which not to. The more of an IT flavor the job descriptions had, the less dangerous the company was. The safest kind were the ones that wanted Oracle experience. You never had to worry about those. You were also safe if they said they wanted C++ or Java developers. If they wanted Perl or Python programmers, that would be a bit frightening-- that's starting to sound like a company where the technical side, at least, is run by real hackers. If I had ever seen a job posting looking for Lisp hackers, I would have been really worried.
If you're on HN and state plainly that language is no obstacle, I assume you have an interest in meeting driven, energetic individuals like yourself. Whether that's because you're interested in meeting others who will help you grow intellectually/emotionally/spiritually/etc. or because you're interested in meeting the Larry to your Sergey will help guide your specific choice, but either way you'll be able to apply the above principle. Whatever you do, pick a place with high barriers to entry. How high? What kinds of barriers? Depends on what kinds of people you want to meet. If you want to meet other students who, unlike yourself, were unwilling to learn a new language, study abroad in the UK or Australia. If you want to meet some ballsy-ass motherfuckers, study abroad in Shanghai. Etc. You get the idea. (Really though, I met a couple who just came back from 3 years in Shanghai, and they both said anyone and everyone there who spoke native English was somebody worth getting to know.)
This isn't to say there won't be many, many other factors involved in your decision. Certainly, all other things being equal, cities with tech industries are preferable to cities severely lacking in tech, cities with angels/VC's are preferable to cities without, etc. But if you just weigh things like that, you may as well "study abroad" in SF, no?
The first two programs are both in Budapest, and the second one focuses on computing while the first one is (obviously) more focused on mathematics. If you have a theoretical bent these are good choices.
If you want to go to a different/interesting/pretty city, study in Kyoto. I've met folks who studied at Kyoto University. There's a tech industry there, since Nintendo is in the area (and small game startups have grown up around senior folks who have left Nintendo). Or you could live in Tokyo or Osaka (big cities with tall buildings).
I would love to travel to both Japan and South Korea, but I'm sure they're not for everyone.
The talks were largely uninteresting. I got far more out of the meet & greets which happened the night before.
Ultimately I voted with my feet and left early.
I met a couple people, but wish there was more time between talks to chat with people. Perhaps if there was designated signposts/corners-of-the-courtyard for random topics, like "Funding" or "Solo Founders" or "Web" or "Mobile", etc... then it would have been easier to seek out like-minded folks.
I agree with previous posters about poor logistics. I'm not sure why they didn't just let us into the auditorium before 11:58am. That would have greatly reduced the congestion in the lobby area. I was worried there'd be a stampede :-) to see Zuck.
I was too tired (old) to drive up to SF afterward. Too bad Box (or some Palo Alto company) didn't host the party, so we could stay down near the campus afterward. :-) I'd have paid to go to the party if it was just on the Stanford campus (at the student union or whatever).
It's my 10x better test. In general, I think all three are good to know, and each are good at what it does. Ruby is in the 'everything is an object' world, and does it well. It optimizes for programmer speed, rather than execution speed.
Node.js is like being dragged halfway to lisp and functional programming. Learned a lot here, but having callbacks is almost like having to program with continuations all the time.
Go is for systems programming, and it's got its own take at concurrent programming. It's worth looking into.
Either way, just start at one, and eventually do side projects in the others. Can't hurt to know them all.
Last a note about Ruby, I think the VM is amazing the API is great and programming in ruby you can throw things together blazingly fast and clean, so its also a good choice. Overall though I'd say Go, I think its the best language to come around in a long time and people will adopt it
Node is better for streaming/real-time applications. You can build any type of web app with it, but it's best known for chat/real-time stuff.
That said, I actually love Node and plan to use it as much as possible, over Ruby/Rails/Sinatra.
On the minus side, JVMs take a long time to start up and don't really interface very well with native code (JNI sucks). The JVM also tends to be pretty poor at using memory effectively. All objects need to contain class and lock pointers, for example. On a 64-bit machine, this generally means that the minimum size of an object is around 16 bytes (may vary by JVM).
Will Java still be used decades from now? Of course. I mean people are still using FORTRAN, COBOL, and Lisp, some of the first compiled languages ever to be developed in the 1950s and 1960. (Yes, Lisp is that old-- and FORTRAN came first.)
How popular will it still be in X years? Who knows. Consult a fortune teller-- sorry, "analyst."
We can still "see" (if we try hard enough) COBOL being used. Have no fear, Java (and even the JVM, but to a lesser extent) will be safely oboloscent by the time your grandchildren are programming. We are still very much in the Bronze Age of programming languages and environments. We have a very long way to go.
Java as a language is still dominant in the enterprise and the growth of Scala/Groovy will see it branch into new areas. Oracle has been a fantastic steward of the platform to date so overall there are lots of positives ahead.
More info: http://krebsonsecurity.com/2011/11/ddos-attacks-spell-gameov...
1) Send email to <large_site_here>, asking for a large ransom, preferably in Bitcoins.
2) If <large_site_here> does not pay, fire your packet cannons at them.
3) Rinse and repeat.
Pages is currently being hit with a DoS attack.
Contact me if you want some more thoughts / have any questions.
Otherwise Thailand would be nice. Cheap. Great food. Decent internet in parts. Good beach. Bali will suck a bit because of all the tourists (Bali is Australia's Cancun). But inland it is much better.
I have a full time job as well and do not have the time for pet projects. After work I get home and have some family time until it's bed time. Then my wife watches some TV while I work for about 1 hour tops.
As you know, 1 hour is NOTHING when developing. I take at least 45 minutes to get into a groove and ultimately I do nothing of substance.
I envy single people in that regard, they can work until their eyes drop out of their head. Don't waste your time! You hear me single people! Don't waste your time!
Now, seriously, I don't have large blocks of free time anymore. So I had to change tactics. In the morning, I wake up first, so I start boiling water for the coffe, turn on the PC and check emails/facebook on my phone. My wife wakes up, we eat, dress up our baby, and she leaves with him. Every other day I have 20 minutes of free time, that I use to code or play games. Then I read books on my commute, when she's breastfeeding I read documentation, new technologies, my rss, and late at night while she is taking a bath, I have 30 minutes of coding or gaming.
And that's it. The New Reality. 30, 50 minutes, interwoven with 5 minutes throught the day. But no worries... the life of a husband and a father is what I want. It's a matter of priorities.
#2 - get up early. I get up an hour and a half early to work on side projects in the morning. Since my wife and baby sleep in a little, this gives me valuable time to get stuff done without interruption.
If you can work from home, do it. It saves valuable commute time that can be better spent on side projects.
From what I can see (myself included), there's more tendency to make pet projects more technically complicated than needed (usually because they're thought of as an opportunity for technical experiment & also less responsibility if things break), and these complexity will make project context switching much, much more painful, which will lead to less time of meaningful developing.
Some tips: What are you spending your time on? TV? Lawn work? Date nights? Going out? Commuting?
Outsource the lawn work. Quit watching TV. If you have shows you watch with your significant other, then take a laptop in and work casually while you're watching. If you have more than a few shows a week, then you might need to consider cutting back.
If you have a long commute, stop it. Either move or find a different job. Another popular suggestion is to take mass transit and work on the way, but in my opinion that time is too interruptable (YMMV) - between other passengers, having to stand up for the elderly, change stations, make sure that you don't miss your stop, etc., my tack was to eliminate the commute altogether.
Ultimately it's your life obviously, and only you can say what can and can't be cut out, but if you honestly can't cut out anything to make more time for your dreams, then perhaps they're just hobbies? That isn't meant to be a critique, but if you can recognize that you have a programming hobby, it might turn out to be more enjoyable than always fretting about how to find time for them.
Of course I wish there was more time in the day, and I'm sure I don't get as much done as somebody with less family obligations, but I still get plenty of things done. While I've certainly been in the same boat you're in, what I ultimately realized was that my problem wasn't time, but about making effective use of it, and committing to a single idea to completion.
I've started a million projects that will probably remain unfinished, all the while lamenting that I didn't have enough time to get them all done. When I found my first spurt of productivity was in realizing that nobody has enough time to do everything they want, and that in trying, I wasn't effective at getting ANYthing I wanted. After that, I found that by rigidly focusing on one project at a time made me get a lot more done. When I hit stumbling blocks, I can take a break and think about them, so that the next time I sit down to code, I have a clearer picture of what the problem was, what the solution is, and how I'm going to use my time effectively.
If I run into a problem after I just started out coding, I start doing something easy, but productive. This past weekend, while watching football on Sunday (poor Ravens), I was able to implement asset bundling for my JS, CSS, write some fabric deploy scripts, optimize my PNGs and convert them to Sprites.
Anyway, like I said, I've had instances where I genuinely didn't have enough time, but I was able to reprioritize my life to get more time. I've had times where I just thought I didn't have enough time, but I was able to refocus to solve that problem. Side projects are a funny thing, because nobody's expecting you to get them done, and it's not paying your bills. If you need, get a project manager, or get your wife, or a friend, or somebody to hold you accountable to a deadline. Pick a date and give status reports, on ONE project. If things slip, they should be disappointed, and make you feel bad. Make yourself accountable, even if it's to somebody else. All of the above worked for me until I was able to be a more focused self-starter when money wasn't (directly) involved.
Good luck either way.
But, when you say a zillion projects, you automatically reminded me of how I use to be. My mind is like a buzzing bee, always having ideas. So I've got some more advice for you:
Look at what you HAVE to launch for pet project #1. The smaller details and functionalities can be added later on in v2 or whatever. I always had issues not being able to complete projects, because I was keep on coming up with "cool new additions that I insisted I needed to add". Don't, it will only delay you more and more, and you'll never launch.
Write down your ideas if you spontaneously come up with a new one for later, and brainstorm before you start working on v2 again. Then, repeat above steps. Or, start a v1 of another project. But working on multiple things at the same time isn't productive.
Different people like different approaches, but this one worked for me after getting very frustrated with myself.
I have all the time I need.
I'm not a fastidious planner with a Type-A personality and an obsession with maintaining lists. I'm actually terribly lazy and my wife might have to remind me a couple times to get something done before I actually find time to do it. I think I've just structured my life around what I love to do that it all falls into place with the least amount of effort on my part.
Things that contribute to me having enough free time to work on my side projects:
- I don't spend much time watching TV, playing video games, or engaging in passive activities (I save them for when I need a rest) - I live close to where I work so that I don't waste hours commuting - I keep my circle of friends small and plan my social engagements ahead of time (I usually plan them around the time I want for working on my projects) - I do chores, run errands, and keep up with all the little things using a todo list. If I need to pick up groceries I'll do it on the commute home. If I need to run a bunch of errands I'll schedule that time in advance. - I get up early and get my exercise in before I start my work day - I never work at my full time job for more than 8 hours (very few extraneous circumstances will change that. I break this rule on occassion) - Wife and I are rather independent people and we like our personal time which helps too ;)
Time is the one resource that we cannot acquire more of. We're all spending at the same rate as one another. I believe it's how you choose to spend it that is the most important. I tend to be very self-centered and introverted and structure my life around spending as much time on the things that will make me happy as I possibly can. I don't like planning and living on a schedule so I just make sure I'm in the right place at the right time to do the things that I want... kind of like 'wu-wei' I guess.
I go to the gym during lunchtime. Unfortunately that is easier or harder depending on where you work.
I think one of the best pieces of advice that is being repeated here is to have just one project at a time. I think this is golden, if you are pressed for time then more than one will kill you.
Then I switched to 5 day work weeks and began commuting with my wife. We only worked about 10 minutes apart but were 30 minutes each away from our place. This gives us 30 minutes of pretty much one-on-one time where we can sit and talk to each other. Or just space out together. It's really quite wonderful. It also keeps in contact with each other more... because if she has meetings or something comes up, we let each other know. Before we'd rarely send text messages to each other. Now, it's a bit more frequent.
I only work on 1 project. That seems to be a general consensus here, and it's fairly relevant. Everything I work on stems from this single item. If I want to design, I do it. If I want to develop, I do it. DB stuff? Done. Want to do sys admin stuff? Save it for work tomorrow.
One thing I never do though, is neglect my wife. If she wants my full attention, she has it. Doesn't matter if I haven't ':w' in an hour and my laptop is about to die. I push it aside and focus on her. Life become copacetic.
Here are a few things I took into consideration when making this move:
1. My employers current codes of conduct contract prevented me from earning income elsewhere. Moving to 3 days a week allows me to both get clients and keep my current work relationship intact.
2. The last 30% of my income was taxed at the highest rate (Canadian tax). When I took the time to do the math, surprisingly it wasn't all that big of a hit (at least it's not for me).
3. Doing this removes any complications around code-ownership, copyrights or product rights.
Just another option to consider for those who are really serious about their start up, but can't find the time or money otherwise.
I work as a fulltime developer, have a wife, two kids and one on the way. My wife also works part time
The biggest roadblock is sleep. Here is my daily schedule:
5:30 Wake and Meditation
7:30 Make Breakfast for everyone
8:30 Start work
5:30 End Work
6:30 Make Dinner
7:00 Eat Dinner
8:00 Play time with Kids
9:30 Get kids in Bed
10:00 Do dishes
10:30 Side Project time!
12:30 Go to bed.
During the last 3 years I have built:
From my perspective, anyone without a wife/husband and kids in tow really has little excuses. Generally the issue is either being overcommitted or just laziness/procrastination.
You will only understand that if you someday have your back against the wall wishing you could back back to your pre-married pre-kid lifestyle.
Might find some helpful answers here.
I bring my laptop with me in hopes of working on the bus during my commute, but the bus is often far too packed for me to even have the arm room to pull my laptop out of my bag. Because of this, I sometimes just jot notes in a notebook, but that doesn't get me very far when the majority of what I need to do is get down to actual implementation.
I don't really have any fantastic advice other than saying it's a huge juggling act, and you need to find the right balance that works for both you and your family.
Then make time: go on a part-time job (some places offer 4 days weeks), either freelancing or as an employee.
Lastly, over time it will help to work on pet products rather than pet projects.
-Focus on one project at a time, picking the one most interesting rather than the potentially most profitable.
-I like the quote "a mountain is climbed one step at a time". Ambitious pet projects can be overwhelming, but small steps of progress eventually lead to the goal.
-Cut TV time, web time, facebook time and hacker news time.
-Some people get up early to work an hour to 1.5 hours every morning before ordinary life intrudes.
-If possible reduce commute, work remotely a day or two or go down in time permanently to a 4 or even 3 day work week, if financials allow.
-Real work can be done in 1.5 hours (agree 1 hour is often too little). Try and schedule uninterrupted blocks of time. Regular blocks of little time accumulate quickly.
Fortunately for me, my girlfriend works as a nurse and has lots of afternoon/night shifts, which is great for me so I can dedicate myself to some pet projects.
However it's not easy, it's very complicated to explain to her that "I don't want to go out because I'm working on this bug...".
So you have to balance your life a little more, instead of taking 2 months to complete your project, maybe it will take 3 months. And that's fine for me. Some times can be a good thing to get away of your project and come back a week later with a fresh mind, it makes you actually want to work.
With that said, after 6 months with lots of interruptions including holidays I was able to complete my app http://codebugapp.com/ , I just released last week.
While most commenters here are right about schedules, That can be hard for some people. What I find is most important is communication with your stakeholders (i.e. wife/gf/kids) and maybe not setting an entire schedule for your whole day , but maybe a set time block a few days a week for "pet project work". What is really important here is do the same for your other responsibilities. Like Tuesday nights is "watch TV with the wife and kids" night and wednesday night is "I work on my project" night.
Most important to remember is Keep Trying!
Also, keep in mind that context switching is expensive -- switching from one project to another requires a change in your mindset and maybe even the technologies/syntax you're working with. It's very easy to burn out just switching between projects.
Here's a schedule that I follow:- Wake up at 5:30am. Hit the gym, eat breakfast, go to work.- Work from 10am - 6pm.- Be back home by 7pm, eat dinner. - Work on pet projects from 7:30 - 10:30pm. Go to sleep so I can wake up early again.
I've realized that consistency is really important. 3 hours may not seem a lot every day but if I do this everyday for 2-3 weeks, that adds up to a lot of time spent towards one project.
Make you pet project your relaxing time, unless you truly enjoy what you are doing (especially initially) it might be a good idea to try another pet project. This is the key.
I've done many pet projects because I was truly enjoying myself doing them, even waking up earlier so I can work on my project before going to the office. BTW Weekends and holidays are great times as well. Recently celebrated our 10th anniversary I know how hard can this be with a family.
Nonetheless, I'm running my own startup for the last 3 years now (11 people at the moment) because one of those pet projects. But also I pretty much stopped doing pet-projects other than Google style 20% free time within the company.
There are boundaries though. I don't hide in a hole away from my wife and daughter for a weekend. It goes in chunks of time. Family is a priority for me, and I can't justify shutting them out so I can code for a weekend. As a result, I need to work in 1-4 hour chunks. Four hours is pushing it (either because of sleep or a daughter craving time with me on a saturday). Hockey, music, cooking... those things can always wait when I choose.
I also constrain myself to small pet projects. Many times the projects cannot be completed, and I'm ok with that. I usually work on projects to prove out ideas or learn something... not finish them. Sometimes I share stuff on my blog or github. However, my work is usually rough around the edges. My pet projects are not meant to be polished and beautiful. They are for me to learn or just do something crazy and cool.
Having a child will cut off your free time like a tourniquet. However, I've found that having a child has also helped me focus. My seven years as a father have arguably (and ironically) been my most productive for my career. I have a hard time explaining that, other than I've had to focus and really come to terms with what is important - both at the macro level of choosing an activity and at the micro level of how pretty I want my side-work to be.
A project doesn't have to be stressful or unenjoyable for you to make progress or learn something.
You don't need many hours, you need to make a good use of the hours you get.
For example, I know that I will have only 3-4 hours on Saturday and Sunday. If I don't do what I need to do, I will have to wait another week. As a result, I am really focused on the core of my pet project.
This works for me. I know people that prefer doing it a few hours a night, but I rarely can. At end it is just a question of focus and organization. If you do those two things well I am sure you will find the right amount of time for your projects.
What I ended up doing is always having a Netbook or at least a Linux phone with me and hack that 10-15 minutes in the bus or underground. I'll sometimes sit another minute in the train station to finish things up or use that one minute I get free when the kids sleep and my wife's busy to just get another piece of code written.
It's amazing how much I even get done that way. I think only now I really value time.
If you don't have a lot of hours to put into them, just reduce the scope and do something you can complete in a few evenings / nights. Then if you're happy with it, you can iterate and get a real product out of it.
I elaborated more on the subject on my blog a few months back if you're interested: http://marcgg.com/2012/01/09/start-working-on-your-side-proj...
Looks like most of my commits are 9pm on wednesday.
1 - Wait until they go to sleep. Usually 10pm. Con: Most of the time you are really tired by then. Most likely won't happen.
2 - Wake up really early. 5am.
Doing either of these means you need to sacrifice entertainment. I rarely have time for TV or video games anymore. Be warned single devs!
Use time trackers like Toggl to watch what you do with your time. Cut the fat out.
Also get enough sleep. All these answers with sleeping 5 hours a night are bullshit. You cannot do stuff that requires concentration quickly if you are not well-rested.
Keep going, less is more.
Why did you make this a self post instead of a comment?
1) It's self contained. No dependencies on third party OO libraries or frameworks.
2) The code is very readable.
3) It's a canvas library, so it's fun to work with if you're into graphics and visualizations.
4) You'll learn a lot about how many JS projects are built, documented, and tested, if you get it to build and the tests running on node.js.
Here is what I would do:
1) Check out the project and get it building.
2) Read all the files in the util folder. You'll see a lot of methods added to Object and Array.
4) Then take a look at the base class: https://github.com/kangax/fabric.js/blob/master/src/object.c... and an inherited class: https://github.com/kangax/fabric.js/blob/master/src/line.cla...
5) Search for instances of the "bind" method, and see how they're used.
Finally, this is just a personal opinion, but I don't like Crokford's chapter on OO JS. I just don't think it presents your options well. If you decide to write a large project in JS using OO techniques, I think you'd be better off utilizing an OO library, compiler, or framework like TypeScript, Google Closure, Prototype or CoffeeScript, than you would charging forward armed with Crokford's chapter on OO.
As far as print goes, you'll want these books in your reading list:
JS The Right Way: http://jstherightway.com/
If you write a lot of js, you'll probably write messy js, but you'll understand how it can so easily get out of hand.
Then read a lot of code and the other resources people have linked to here. Having done a lot from scratch will motivate the solution a lot more.
You will have actually run into the problems they are telling you to solve and understand why it's good js rather than just taking their word for it.
Very well written, well explained, and it points to many more best practices.
I assure you, its worth the money.
Note: I am in no way associated with the publishers or author apart from being a beneficiary of this awesome repository of knowledge. This is not even an affiliate link.
There are lot of examples which will teach you great stuff.
That means you should only learn from people who recognize how broken js is, and thus of course js: the good parts sounds like the right direction, whereas I think Resig is a religious zealot and shouldn't be listened to (the guy actually thinks broken js as a first language is a good idea).
Lastly, js is broken in many ways, don't use it when you don't have to, that means avoid node.js and use a good server side language instead.
tl;drjs sucks, don't listen to people who don't ack that, learn to avoid the sucky parts instead.
And more downvotes from the zealots... HN is so predictable these days.
Don't worry about it. Nobody going there to live is having problems with visas. Living in Asia is very fluid. You don't have problems there. You simply plan A, plan B, etc. If plan A gets blocked, then you happily go with plan B while you work out plan A. Or maybe you go with plan C just for kicks. No matter what happens, you don't sweat much of anything. That's Asia. (I'm in the Philippines)
In general, if I were a woman, I would have felt pretty unwelcome at the event, in general: of my small amount of wandering around during the breaks, I saw one attendee wearing a shirt with the text: "SELECT * FROM girls WHERE free_sex=TRUE;". More distressingly, I saw a speaker (Ben Horowitz ) wearing a shirt with the text "No bitch-ass-ness" on it; I suspect that this may have been a cultural reference that I missed, but that sure does seem as unwelcoming as a shirt that would say 'man up and do it' might.
The content was, in general, high quality. I wish that the experience, however, had been designed to avoid shutting out half of the population. A good start for making Startup School more inclusive would be to adopt something along the lines of the Conference Anti-Harassment Policy ; I hope that Y Combinator will do something along those lines next year.
 Yes, I know. This is part of Horowitz's persona: he wants to come off as 'edgy', compared to, for instance, Ron Conway; he wants to show that he's hip and with it. For instance, as I recall, he used the word 'fuck' a few times during his speech. This is fine; now we get it! You're one of us! You can be edgy without being a dickhead.
The whole ethnicity balance was pretty far out there, too. Considering it was held in Silly Valley, I would have expected to see far more of a mix, but that didn't seem to happen, either.
I wonder, are both observations the same effect in action or something else entirely?
Id be curious if the gap was smaller watching the webcasts?
We should also keep in mind that this community has always been aligned more with the engineering side of entrepreneurship and less on the all the other equally important functions, which tends to make the community somewhat insular and under-represented.
I make a list of the type of company I want to work with (I want to be paid $X, they should use this technology, I want to solve this problem or work on this project) and then I backtrace it and figure out which companies match those criteria.
Then, I contact those companies. I set up meetings when I can. My goal is to learn:
* What sort of projects they work on * What challenges they're facing (geez, our biggest client needs _IDEA Z_) * What skills they look for in new hires / freelancers * Other companies in the area / tech / market
Then, I do two things
If they mentioned a huuuuge problem / pain point they're facing, I send them a follow-up email talking about the problem they mentioned, what I can contribute to solving it, and suggesting a time for another meeting.
I follow up with any other companies / people they mentioned and set up a quick coffee meeting.
Periodically, I'll check in with my contact. Nothing spammy, just an update about something relevant to their industry / problem.
Rather than fight over the same jobs that everyone else sees on 37Signals / Reddit / GitHub / HN hiring / Craigslist / LinkedIn / Etc, I want to be at the top of mind with the companies I want to work with.
Every job I've had â€" salary or consulting - has come from someone inside of the company calling me up, telling me about a position they have, and asking me if I want to interview. This bypasses the slog through submitting a resume and fighting against 20+ other candidates for a position. This gets me the positions I want working on the problems I want to solve.
Chasing listed jobs is a mug's game for two reasons: (i) you need to compete with a mountain of applications, and (ii) people often list jobs that they aren't entirely serious about filling. Even if you have a strong resume and put 30 minutes into writing a good cover letter for each applications, the odds really are against you in this case.
Factor (ii) is still a problem if you get an interview because many organizations put multiple random barriers ahead of applicants. For instance, if you don't pass some test or flub a question or one of the fifteen people who talk to you just doesn't like you on an animal level you've wasted all the time you've put into the process.
Anybody who's using a recruiter, on the other hand, really wants to fill the position. The odds are in your favor because the recruiter is going to walk if the company keeps putting candidates through the gauntlet and rejecting them.
So how do you get people to call you?
Be active on the web. For me that's meant developing a few side projects and also developing connections and adding some content to LinkedIn every day... Even when I'm not looking for work.
If you get yourself known you can quit wasting time looking at job boards.
To grow your professional network I would recommend to attend to meetups, hackathons, user groups or even better to get involve in the organization. It worked pretty well for me.
I met some incredible people and got some good jobs offer.
I like that they have to disclose ballpark salaries. Makes it easier to get a sense for how the company values developers.
My previous position was via a university career fair when I was still a student.
(Sadly, the same trick doesn't work for boyfriends.)
This meant that my list of places to apply to actually grew every time I went to go and knock a few off my list. I met a lot of interesting engineers this way and generated a lot of leads that I wouldn't have found through HN Hiring or other boards. In some cases I found jobs that weren't posted online until after I found out about them in person.
go to offline networking events.
get to know your local group for whatever you program in. Seattle-python-interest-group has periodic job emails, and more importantly if I asked them for help I would probably get a couple responses.
I don't look. When I want a new job, I stop ignoring recruiters and wait to see what comes along. I've never waited more than a few days to have a pile of interesting opportunities. (I also end up with a much bigger pile of bullshit talent-trawls, but that's beside the point)
I wish I could say this was a function of my being awesome, but I think it has more to do with the job market in my area (PDX). There just aren't enough senior developers to go around.
- careers.stackoverflow.com - prospects.ac.uk (Though you need to have been a student to register) - s1jobs.com (Mostly so I could have at least seen one ad a day) - talentscotland.com - workinstartups.com
I'm a freelancer, and most of my work comes via referrals now. Not always, but it's been the case for the past few years.
Wasn't much different back when I was looking for full time work though. Even though I only worked for 2 companies, I use to get interviews through referrals, or through past colleagues that left and wanted me to come aboard.
Find the type of company you want to work for. Narrow your list down to about 5 of those companies you'd like to work at.
Now sit down and write a personalized cover letter for each of these companies and the role you'd like to play in said organization.
Now email each of the companies hiring depts, founders, etc with said letter and sit back. If you wrote a truly compelling cover letter (you should have if you are actually passionate about working for the company) you will most likely get some sort of response.
Rinse and repeat if no success.
As a multi-time founder and hiring decision-maker I always enjoyed a good cover letter and great interview more than a resume. Even when it comes to technical knowledge the most important thing to me is that if you did not know it you were smart enough and capable of learning it.
If you can knock it out of the park on a cover letter and show why you're excited to be a part of said company then they would be foolish not to hire you.
EDIT: Obviously you should still send a resume as well. But sending one without a cover letter in my opinion is the equivalent of career suicide.
Get involved: speak at user groups and conferences. If possible, step up and manage. You'll get work sent your way, and once you've built up a reputation (like when people come up to you at conferences and know your name but you don't know theirs), you can often drop the idea of needing work on Twitter and get a good response.
It links to a bunch of job sites. No referral links or anything.
The best part is that it also shows jobs that haven't made it to formal listings yet.
It's at http://www.jobquacks.com - regrettably I haven't built in support for mobile yet..
I'm a UI designer
Also I'd stop redirecting everyone to AppointmentReminder.co & having users login at ReminderBookHQ.com for one thing, its bad user experience and its not great for SEO.
Sure you can claim that you have an EMD (Exact-Match Domain) but it doesn't really help SEO, in fact Google recently released an update to tackle EMDs even further. Likewise, it doesn't help you have rivals with the same name on a different tld - patio11 - appointmentreminder.org
The one question I have (and it isn't a critique, mind you) is that each of your plans seems to coincide fairly identically to AppointmentReminder.org (Patrick's offering) but is more expensive. Is this a white label offering of his? If not, what additional value to do you feel you're offering for the extra coin, or do you just believe that he's leaving money on the table?
p.s. I own MissReminder.com if you want to buy it. imho potential for much better branding... ;-)
(Excellent==Successful. Money & fame are more difficult to control.)
1. Choose a small subset of available technology, learn it intimately, and embrace it. Then evolve that subset.
2. Understand the pros and cons of various data structures, both in memory and on disk.
3. Understand the pros and cons of various algorithms.
4. Understand your domain. Get away from your computer and do what your users do.
5. Be ready, willing, & able to deep dive multiple levels at any time. You must know what's going on under the hood. There is a strong correlation between "number of levels of deepness understood" and "programming prowess".
6. Use your imagination. Always be asking, "Is there a better way?" Think outside the quadralateral. The best solution may be one that's never been taken.
7. Good programmer: I optimize code. Better programmer: I structure data. Best programmer: What's the difference?
8. Structure your data properly. Any shortcomings there will cause endless techincal debt in your code.
9. Name things properly. Use "Verb-Adjective-Noun" for routines and functions. Variables should be long enough, short enough, and meaningful. If another programmer cannot understand your code, you haven't made it clear enough. In most cases, coding for the next programmer is more important than coding for the environment.
10. Decouple analysis from programming. They are not the same thing, require different personal resources, and should be done at different times and places. If you do both at the same time, you do neither well. (I like to conduct analysis without technology at the end of the day and start the next morning programming.)
11. Never use early exits. Never deploy the same code twice. Never name a variable a subset of another variable. You may not understand these rules and you may even want to debate them. But once you start doing them, it will force you to properly structure your code. These things are all crutches whose use causes junior programmers to remain junior.
12. Learn how to benchmark. Amazing what else you'll learn.
13. Learn the difference between a detail (doesn't really make that much difference) and an issue (can end the world). Focus only on issues.
14. Engage your user/customer/managers. Help them identify their "what". Their "how" is not nearly as important.
15. Write a framework, whether you ever plan to use it or not. You'll learn things you'll never learn any other way.
16. Teach others what you know, either in person or in writing. You'll accidently end up teaching yourself, too.
17. Always tell your customer/user "yes", even if you're not sure. 90% of the time, you'll find a way to do it. 10% of the time, you'll go back and apologize. Small price to pay for major personal growth.
18. Find someone else's code that does amazing things but is unintelligible. Refactor it. Then throw it away and promise yourself to never make the same mistakes they made. (You'll find plenty.)
19. Data always > theory or opinions. Learn the data by building stuff.
20. At some point, run your own business (service or product). You will learn things about programming that you'll never learn as an employee.
21. If you don't love your job, find another one.
For example, my cursory read of your list of programming success stories plus "they've made a difference, they're well known and respected" suggests that you might care about your status among geeks in particular. There's nothing wrong with that, but it would counsel very different career moves than if you cared about your status among "the typical person who reads the New York Times." You might, for example, aim your moves towards a high-status industry that skews geeky (like, say, videogames, which is across almost any other axis a terrible place to work), startups, advertising firms which employ anomalously high number of PhDs and get disproportionate love from geeks, etc etc, and away from where many extraordinarily talented programmers are likely to work (in a dark hole writing important code that the world will never know or care about even though it keeps their planes in the sky, moves their food to their table, makes sure that when they call 911 a phone actually rings, etc).
In terms of being financially successful? There are many, many approaches to it. Most of them boil down to figuring out how programming solves a problem for a business, quantifying that value, and then shaking the money tree.
I think HNers sometimes have an unnecessarily narrow view of the solution set: for values of financially successful which include "I don't need to be a billionaire but I'd sort of like to earn, I dunno, doctor money rather than marketing manager money" it includes things like "Run a small boutique consulting firm", "Become an individual specialist in a few very valuable things and just charge market rates for them", "Use your programming expertise to found a non-tech business and ROFLstomp on one core area of operations due to your unfair advantage", etc etc etc.
Make a list of the differences beforehand and go through them one by one with him. Make an agreement beforehand that if it gets emotional, you'll take a break on the current item and revisit it after you've each had a chance to process it.
Also, ask yourself if there's anything you can do to change how you perceive those faults.
For example, I used to get defensive about my code when my partner criticized it in a certain way. One day I realized that, if I just wait 5 seconds before responding and remind myself that my partner has the best intentions in mind, the emotion drains away.
Partnership is harder than marriage. I think this is part of why HN places so much value on co-founders who get it.
You also learn if your friendships are true friendships where the person is as willing to look at themselves as much as point fingers.
Ultimately you have to get and stay on the same page. Knowing how to disagree, and know who's driving the bus ultimately has to be in place.
In any case though, you're in a relationship with someone and communication is important. Your co-founder and you should be constantly providing each other feedback in order to be better partners. Be sensitive on how you word it when you bring it up, but if you stress that it's for the good of your friendship AND the business you've started, he should be able to take it in stride.
The real answer is that those aren't terribly likely to have specific events as those events generally arise from existing communities. Simply put, you should be using Meetup and Lanyrd to get involved in your local community, and by being active in those communities you'll almost certainly be in the know for future hackathons.
Where I'm at (Annapolis), I'm kind of in a middle ground between two big metropoli, DC and Baltimore, so I maintain membership in local groups and Facebook groups that I generally don't show up to much (sorry everybody) because they're slightly further away from where I want to be, but by being involved in those groups, I hear about pretty much everything.
Another option is of course to ask here, and specify your location, and you'll likely here about something.
Edit: I don't know where you're at, but a great way to get plugged in (if your area has one) is to attend a StartupWeekend or two, even if you have to travel a bit to attend one. In my experience, they're run by avid technologists that have substantial connections in the tech community. At worst, you'll find out about a Facebook group or mailing list to join, at best, you'll get introductions, face-to-face meetings, etc.
It is this specific case that we are solving for Indian startups along with a global billing solution at ChargeBee.
Regardless of whether you need ChargeBee or not, shoot me an email (in profile) and will be happy to share the options available.
Specific to your question: Without SSN even after incorporation in Delaware it is a struggle to get a merchant account. I have helped a few businesses in India get merchant account there and it is from my experience. I incorporated ChargeBee in Delaware, but thankfully I have SSN. Without revenue not many merchant account providers that claim to do this won't touch you; that is just reality.
My suggestion to startups is: use the easiest available options to get started - we do it with PayPal, 2Checkout etc., I know it is not anywhere near what you can do with Stripe or a BraintreePayments, but you can do with the available options, build traction and focus on the hardest problem - which is getting attention of your customers and get some early adopters. In the meantime, we can help you started with other options and seamlessly switch over for new signups. You will save $1k USD initially plus all the additional paper work, franchisee tax (even incorporating in October will entitle you to pay $440 USD in tax in March next year - delay it by couple of months you save that as well).
But, if you do want to go ahead with incorporation here are couple of blogs: Girish of Freshdesk wrote about this and I wrote a followup on payments as well.
You can read those here:
We are also working with couple of Indian banks and in turn with Reserve Bank of India to solve it well. We should have something soon to avoid all this round about way of incorporating outside to do something straightforward.
It is not fully international but at least EU and Canada. Another option is PayPal.
The folks at http://spreedly.com also seem to be pretty good but I've not used them so can't say anything.
How do you plan to take the money back to India?I know that Charles Scwhab has a checking account with no foreign transaction fees, including free ATM usage worldwide.