Or is there anything specific in S3 feature that you need replicated?
S3 is expensive for use cases like an image sharing service. Running your own servers with dedicated, unmetered bandwidth (or at least metered bandwidth in the 20TB+ range) is cheaper.
If 11TB of network transfer is spread out evenly over the month, a 100mbit uplink would handle it with plenty of room to spare. (Your traffic is probably not evenly distributed, it's probably very bursty.)
Another interesting project is Snabb Switch. If you want to learn networking at the lowest level and highest speed possible in software, Snabb a great platform for experimentation.
Finally, I'll throw in http://terralang.org. It's not networking related. But, I think it's terribly interesting and not getting any attention.
The Kernel language is small and simple, yet offers a huge contrast to how you would think about programming in most other languages - namely because other languages have reduced their model of computation to reduction.
Kernel is influenced by the Lisp family, but offers somewhat of a duality to it. In lisp, everything is passed implicitly reduced unless explicitly quoted, then they are passed verbatim. In Kernel, everything is passed verbatim unless explicitly evaluated - the callee then, has complete control over how something is evaulated, rather than the caller. (And consequently, it's trivial to simulate lisp's computational model in it)
Reduction then, is just a special case of a much more general computational model - passing arguments around. Other languages have coupled the idea of argument passing with reduction, such that they need to invent compiler hacks like macros or code generation when it turns out that reduction is not what they want. Or in some cases, we've created languages specifically for template-based programming, where we want to splice bits of code into an otherwise static block of text. Such templates are trivial to do in Kernel.
Another nice feature of Kernel is that of encapsulation types. One can define a new type which consists of a constructor function, eliminator function and a predicate to test for the type - and combined with the powerful information hiding that can be achieved through Kernel's environment model, one can implement sophisticated type systems using very few primitives, and without special compiler support.
Elixir is a really cool language, and also a great way to learn functional programming. But more than that, it gets all the non-languagy stuff right. The build system is amazing, your code hot-reloads out of the box, dependency management is very well done (source-only, git-friendly, project-local, etc), the community is very friendly and going fast.
And code scales by default. I might exaggerate here, but sometimes it feels like need to really try to write code that's hard to spread across servers. If you consider it's non-trivial to even use all your CPU cores on Node.js, the Erlang VM will blow your mind.
If you are involved in data analytics then you could always immerse yourself in the Hadoop stack e.g. Cascading, Spark, Mahout etc. It's a platform that is increasingly become a fixture in enterprise companies and plenty of new technologies. For me the future will be "container driven development" where everything will be deployed as a container and dynamically wired together. Loads of new technologies e.g. Docker, Consul and plenty of challenges still around.
None of what I wrote is around languages/frameworks though mainly because I think that the majority of them won't be really used in 5-10 years.
I would not care of the 'hot' stuff too much - frameworks come and go.
I'd try some Clojure (you're familiar with the JVM and IDEs, but one should learn a bit of Lisp once in life). Or Scala.
IMHO you'll become a far better developer if you devote the majority of your time to learning advanced algorithms, ml, and ai as opposed to the new hot framework.
There is much brewing in language land. Rust brings a set of ideas that other languages will borrow (pun intended). But..
Elm restarts programming, treating events as lists, and this is how programming will change over the next 5-10 years in a most fundamental way.
Taken together programming is climbing out of the miserable non-composable mess that having been stupid bread-and-butter bit-fuckers have put us in. Elm just leads the pack.
You may not understand its ways, that is exactly because you think being a bread-and-butter bit-fucker is a feature, while it most definitely is not. It is a bug and it infests the code you write, up to the point where unlearning is an unsurmountable effort.
When elm's wave is through, the computer will replace you, and with it children will design much better programs than you do. Please stop making sense now.
On one hand it has a simple ruby-ish syntax and a solid MVC framework (Phoenix).
On the other hand it has immutability, concurrency through processes and message passing (which is awesome!) and a bunch of other functional goodies.
I'm not sure how widely applicable it is now, as it's still in its infancy, but it's the first "hipster" language I've used in a while that felt like it had legs.
It's got a few quirks, but the language designers are improving it rapidly and the number of libraries available for it is increasing drastically.
To name a few features I really like about the language: multiple dispatch, flexible type system (use it if you need performance; ignore it if you want pretty code), powerful macro system, extensive debugging system (instantly view AST, LLVM, and native assembly output to optimize), easy parallelizability/vectorization, and just an overall beautiful language design (unlike C++ or Matlab for instance).
Things I dislike about Julia, but that should be changed soon: unintuitive automatic memory allocations (everything seems to allocate new memory by default which is a pain for tight loops because you have to write layers of functions that all take tons of "output variable" parameters), incredibly slow start-up times, and documentation that leaves a lot to be desired in terms of details (I normally have to call methods() in a REPL to figure out exactly what I need to pass into functions). Also, the module system seems a little more confusing than it needs to be.
As you probably know C++11 is already around and majority of compilers already support it. What most people don't know is that C++14 is ready to kick some ass too! It introduces for the first time in C++'s history functions as first class objects and allows you to pass them around as function parameters!I think this is really exciting and I also encourage as many people to take a look at this new and very promising developments of C++ language.
On the other hand, Apple's Swift looks promising too - functional elements, type inference, speed, good compiler and so on. Not to mention it's being used with tons of great frameworks Apple provides for iOS and OS X development. It sure doesn't hurt to take a look into it too.
All in all, it really is an exciting time for us developers. There are really tons of cool tools and languages that allow us to get things done at the speed never imagined before.
Now, we should also look back at the fundamentals and ask ourselves could we design, not only program? That's not the skill you can pickup in couple of days reading bunch of tutorials and forums about your next cool language. I think, learning how to think about particular problem and how to approach it is more important than barely know how to code the first solution that comes to your mind in the new ultra fancy language.Think about it...
I'd punt on learning a new language and instead master a new skill - up your stats knowledge, force yourself to learn how some algorithm works, whatever,.. these things are all infinitely reapplicable skills, whereas a pretty compiles-to-JS language or prettier-C-derivative generally aren't so much.
You wouldn't believe how much playing around with these units will help to influence your design and development decisions in other areas.
Sure, there's a lot of hype around newer technologies. There's never a shortage of hype. But the glow around virtually all of them will fade, probably sooner rather than later.
Ruby and Python are no longer considered hot and new, but not so long ago they were. Java and Perl had their share of hype back in the day, but the luster has certainly wore off by now.
Too many people involved in the tech field are endlessly chasing the next shiny thing.
If that's the case, you don't need to learn a hot/new technology, you need to cast a wide net and get a better grasp on today's software ecosystem in general, until picking up new things is no longer hard.
You could nonetheless kill two birds with one stone if you hacked on something current but wide. Docker and its ecosystems come to mind.
Decide and have clear what is the question, then look for the answer.
For the fun of learn, pick anything you can do and put some time of it. If you are like me, you will read some info about X and and if it pick you interest go ahead.
But without a direction, you will waste time. You will dismiss things that are good and double-focus in things that not..
"I am facing a lot of challenging (which ones?) data analytics and software development problems during the day (which ones?)"
"Data analytics (and his not-famous cousin reports)" is far more about re-shape and clean data than do cool algorithms. The last mille is the easy and the 909% (yep, 909%, not a typo!) is the hard, in opposite to normal development.
Having a clean, well defined schema/database/warehouse/etc is the thing here. Run your super-fancy mathy-thingy on it? Others have solved that!
Most likely, non-normal-dev will have a bigger impact on this kind of jobs, so not just focus in tech.. (and I don't drink the fallacy that your selection of tools not matter. But is also a mistake think that are the only thing that matter).
Also, check out Cascalog. Data processing on hadoop clusters has never been this simple and fun. Much better than Pig/Cascading/etc.
 http://clojure.org/ http://incanter.org/ http://cascalog.org/
And I'm learning Swift to incorporate into my iOS apps. I've accumulated over 300 urls for anyone who wants to learn Swift: http://www.h4labs.com/dev/ios/swift.html
I've only been in contact with TaskFlow, the state and workflow management library that OpenStack uses, and I'm very impressed how well-engineered it is.
On a related note, OpenStack uses RabbitMQ, and that seems to be trending too. Not a huge hype, but a steady adoption by both open source community and enterprises. And if not RabbitMQ, then being familiar with some kind of asynchronous messaging framework certainly wouldn't hurt.
Now from reading these comments, it looks like Elm and Elixir are good to learn too.
So the problem facing someone that's just starting out, is what to learn? Where do you start? The options are many and can be confusing.
- datalog is a DSL for querying (recursive/linked data) http://www.learndatalogtoday.org/
- The introduction to Reactive Programming you've been missing https://gist.github.com/staltz/868e7e9bc2a7b8c1f754
Also, if you want a brief overview of different paradigms you should check "Seven Languages in Seven Weeks" (https://pragprog.com/book/btlang/seven-languages-in-seven-we...)
Haskell gave rise to bunch of strongly typed DSLs both for front-end and backend development.
Agda is sort of derivative of Haskell, and gives you powers to reason MUCH MUCH clearer about your code and what you want it to do.
I have wet dreams of using those languages on my everyday development. Esp Haskell.
When I catch some time I will fiddle with Elixir also mentioned here in comments.
On the more practical side, I think data science is a very useful tool, so learn everything there is to do with data today, from machine learning and data mining in small scale to big data processing.
I personally prefer Scala as I like strongly, statically typed languages, but I've played about with Clojure and it's very nice, too. A vast number of benefits come from having a rich immutable collections library.
(I'm biased, I'm currently seconded from Pivotal Labs to Cloud Foundry development in the buildpacks team).
It's an opensource PaaS. A full, all-the-stuff-you-need-is-in-there PaaS. You can take it and run it in a private datacentre.
For large companies, this is A Big Deal. Right now, in most F500s, deploying an application takes anything from days to months.
Except if they've installed Cloud Foundry, where deployment time drops to seconds to minutes.
For startups, it will soon be a big deal, because Cloud Foundry gives you a smooth path from just-playing-around (deploy on public cloud with Pivotal Web Services or IBM Bluemix) through to running on AWS (with the opensource distribution or a commercial derivative like Pivotal CF) through to running on your own hardware in your own datacentre.
CF is still evolving fast. The execution core is being rewritten currently and will probably hit feature parity early in 2015, carrying along with it the ability to natively allocate, mount, manage and monitor Docker and ACI container images.
It gets very little buzz on HN, because what interests us is building our own stuff out of cool, smaller components. Plus the main organisations driving development (Pivotal and IBM) have focused their marketing and sales at big companies, not startups.
Systems of this reach and influence basically appear once in a generation. I'd hop on while it's fresh, if I was you.
Are you taking into account that markets are closed right now?
"We built the first community cellular network in a rural village in Papua, Indonesia, in early 2013, with support from USAID and the Blum Center for Developing Economies. That first network is still running today, and today we continue to add new networks, constantly bringing connectivity to new users and communities worldwide."
Haven't met the rest of the team, but the CTO, Shaddi, is an awesome guy.
Yelp for low-income people in the developing world. They just did a pilot in Hyderabad (India), and helped pregnant women living in slum areas discover hospitals around them offering better, cheaper care then they were receiving elsewhere (some were having to pay bribes to get care at government hospitals).
We have addressed every 3x3m on the planet with 3 common words. More memorable, faster and less errors than alphanumeric systems. Currently in 8 languages with more including Swahili & Arabic coming. This could mean an address for the 4 billion unaddressed, as well as water points, schools, managing disease outbreaks.
More here: Vimeo.com/what3words/about.
I work for what3words.
Their mission is to give everybody in the world an address. Something that people in the West take for granted, but isn't available for most of the globe's citizens. This is also a major opportunity business-wise of course and if I could invest, I would.
I'm not directly associated, but one of my friends was an early employee who worked on some of the early prototypes and helped set up a location in India. They make a cheap (a few thousand dollars vs tens/hundreds of thousands of dollars) and compact (Read: portable) eye-exam device that interfaces with a smartphone for its camera and processor. Think of a traveling doctor bringing eye exams to patients in remote villages. Pair that with some of those cheap adjustable glasses (http://www.ted.com/talks/josh_silver_demos_adjustable_liquid...) and you've got a means for providing first-world eye care to the rest of the world.
I think the company is still based in Cambridge, MA.
It is like Kiva , but we crowdfund loans mainly for basic needs of people eg. sanitation(build toilets), water connection, education, enterprise development, energy (solar connection in remote areas) in India
Recently we launched a platform for crowdfunding donations for causes and social initiatives. https://milaap.org/open
Disclosure : I work at Milaap as a senior developer
Based in London and Nairobi, they've built a Bitcoin-based service that enables migrants & expats to send money quickly and safely back to their relatives (called remittances in FinTech parlance). I'm not directly associated with them, but we've met many times at Nairobi's monthly Bitcoin meetup.
The company is building a mobile based care platform for patients with diabetes or at risk of diabetes along with a Square equivalent device for diagnostics. While cost is one of the issue for patients, it is not the only one. Quality of care varies significantly across a city and the moment you step outside a major city, there is little to no specialized care for chronic conditions that need some form of training for managing the condition. A mobile phone with some form of internet connectivity is ubiquitous these days. So leveraging that to reach as many people as possible makes sense. There are over 80 million people with diabetes in India and another 80 million are expected to develop it over the next decade or so. Add to this the costs and quality of life of patients who have to suffer the complications (kidney failure, amputation, etc), and any improvements that can be made to these numbers with technology is worth the effort and makes business sense too.
The problem isn't India specific. China, US, Europe and the Middle East have similar or higher prevalence rates. It is just that India makes sense as a place to start doing things.
It's been a few years that we have been working on this. We mostly operate out of Bangalore but we have an office in Boston too. Feel free to drop by!
I met the team, pretty strong, might have worked for them but they didn't want engineers working remotely (they're based in NYC).
Started by a serial entrepreneur from Boston, right now they're building tools to help NGOs reach people in abject poverty, and they have some really big ideas for the future.
They're based in the Philippines and actually are currently looking for developers to come over on 6-12 month fellowships to experience life there and contribute to the core product. If anyone is interested, I can link you to the relevant posting.
(not affiliated, just think what they're doing is awesome)
My friend is the founder, working in Ann Arbor with an amazing group of aeronautical and electrical engineers, medical researchers, and others. They're building hardened VTOL drones to take medical supplies, samples, tests, back and forth from hospitals to rural India. They have a great team and deep relationships with the NGO and health sectors in India.
Pangea was part of the first class of Impact Engine (http://theimpactengine.com/), a for-profit social venture accelerator originally run by Chuck Templeton (found of Open Table).
We're working to help aid and development organizations gain better insight into how effective and where donor money is going, monitoring and evaluating organizational goals, and aggregating raw data into useful reports for both the organization and donors.
Is search platform (as a service) for e-commerce websites to boost on-line sales through a complete and manageable integration. We are providing Amazon search experience for small/medium e-commerce web site. With advanced UI components and analytics.
The company is base in Riga, Latvia
*Or 'Innovators' or 'Technologists', if you prefer.
GramVaani provides crowdsourced news and other ICT4D services to the underserved.
ultra low-cost irrigation systems
Akvo helps people bring international development to life, online.
To get a jumpstart on my New Year's resolution, time to air some grievances (with myself)!
1. Dammit Xan, when are you going to finish up those unit tests for tnzer? You're holdin up the actual 0.1 release!
2. I can't believe you haven't started implementing your bytecode VM yet! Are you waiting on a freaking miracle, or just piddling until you figure out whether you want to make classes and functions defined at object code load time, or have opcodes for registering classes and functions at runtime?
I can't go home until I wrestle myself in this year's Feats of Strength and get code for my VM, birchvm, up and running.
And thank you for being a big part of my small world :-)
All the best to the community. It's the only place on the Internet where comments are often more insightful than articles :)
map (\x -> chr (x + 32)) [45,69,82,82,89,0,35,72,82,73,83,84,77,65,83,1]
How about having a little new year party this 31st ?
If that's not possible, I'll take world peace instead.
2. Extend your skills into managing distributed software such as zookeeper, cassandra, etcd. In a cloud based world, machines can disappear at any time, hell entire Availability Zones can vanish because of an issue with the hosting provider. Fault tolerance is of the utmost importance. Distributed software such as zookeeper and cassandra are normally run in multiple AZs to tolerate such failure.
3. Learn about Docker and container orchestration. Like it or not, containers are the new level of abstraction and you should understand how they work. Knowing how to run a container isn't enough though, you need to understand how to run hundreds of them in an environment, which means some sort of system that handles orchestration. Look into Kubernetes, Mesos and Docker Swarm. All of these are in fairly early stages of public use - Mesos has been battle tested at Twitter for 4-5 years though).
I think these 3 things are really key for any person managing systems now and in the foreseeable future.
My last interview at amazon went like this:
Stupid trick coding question over the phone that I did not understand at all. Followed by 3 memorization questions. followed by one question I felt was valid and i know i got it right.
I was being interviewed for a specific product that was right up my ally. I could literally build what they had built easily, but they never once asked questions related to the product or my experience.
I looked at the product a year later and basically nothing has been done to it.
> I suffer from crippling anxiety [...] foggy Xanax brain.
Consider asking your doctor about propranolol.
It's a safe, non-addictive beta-blocker often used to treat high blood pressure, but it also eliminates the peripheral nervous system response to anxiety, the "fight-or-flight" adrenaline rush feeling: racing heart, shortness of breath, inability to concentrate, shaking, sweaty hands, blushing, etc.
It doesn't effect your mental anxiety, but it'll cut out all of the physical symptoms, which makes the mental anxiety much easier to control, without creating any sort of brain fog.
1 Iterative/agile software development. YAGNI. Build the bare minimum, then iterate when you learn more.
2. Hire slow, fire fast.
A really agile org would be hiring fast too. Now... I know a lot of this has to do with labor laws - hiring an actual employee brings extra baggage. And in the US at least, more people may want to be employees for reasons like health insurance.
Even with those considerations, companies should be bringing on more short term contractors, and the ones that work out stay longer. The ones that don't, for whatever reason, move on.
The same teams that will say "YAGNI, just build XYZ, ship it, etc" - iow, just get stuff out the door - will hem and haw and take forever looking for a perfect candidate that, in reality, doesn't even exist.
It's early in the morning, this sort of makes sense in my head, but I may not quite be making sense. But it's still a seeming conflict that bugs me.
Re crippling anxiety - I highly recommend improv classes.
This year I sent tons of CVs, very few responses, a lot of technical tests, some interviews where "you don't fit the profile"
Companies usually like me when I start working for them, but to "cross the chasm" is hard.
 Specifically, I cut out wheat and corn altogether, reduced my carbohydrate intake to less than 50g a day, and never ate anything with added sugars.
Some thoughts/tipps: Start your interview with: "I happy to be here ... am really nervous, i couldn't sleep last night." ... that removes questions marks in recruiters had about your eyes.
Don't tell em about xanax, better, don't use it.
@pookieinc 3+ years are not impressive ... i code for 15 years and possibly the guy who are you talking about your job too ... so don't behave like the god of coding.
@pXMzR2A 270+ job applications ... hmm your resume must be shit or you apply for jobs you are not qualified for ... i would love to see it, there must be a major bug in it :)
... and btw. congrats and merry christmas
I'm attempting the numbers game approach (apply for 100 companies, 5 will get back to you, select from those 5), but I've hit the edge of: what if there are none that are willing?
Thanks for the luck, will keep banging head against wall until a job is found. Happy holidays!
Thank you for reminding us not to give up. A lot of your story sounded familiar, although you were way more persistent than I was. I'm 33, and recently got rejected from two different bay area "dream job" companies after making it through several phone rounds in order to fly out for in-person interviews. The more recent of which, I got nervous the night before and only got three hours of sleep. The hardest part of that rejection was wondering "what if" I had been just a little bit sharper.
After the second rejection, I accepted a position with a small defense contractor near my home in Washington DC. The bureaucracy and mindless restriction are sources of endless frustration. The combination of billing by the hour and a long commute leave very little time and energy for keeping up the job search.
Reading your story reminds me I have very little to complain about. Thank you for posting. I'll use some of this time off to send out some more applications. Hope you have a great Christmas and good luck once the new job starts!
I hear you about the anxiety. I managed to land an interview with nvidia in 2001 and was so nervous that I couldn't eat or sleep for the 24 hours before the start of the interview (then ate lunch with them at their cafeteria and was wolfing food down like an animal). Didn't fare well, but a year later of hunting and working as a substitute teacher, I ended up working with a great team at FedEx for a while and went to being a "computer scientist" at the army research lab after that.
Anxiety is a challenge, but it can be overcome! I'm even in the process of starting with "toastmasters" to get me out of my comfort zone and learn how to be "on" around strangers.
Again, congratulations and thanks for sharing!
Is the BigCo interview process just that arbitrary?
In the last 8 months, I have submitted 270+ job applications, received 3 interviews, got rejected by all three, none of which were high reputation companies.
Great to hear you had a success! :)
In parallel to interviewing at that company, I also created my profile on Underdog.io. I spent Dec. 5 to Dec. 16 talking with 7 different companies in New York. I saw that their Salary range is lower than in Bay Area so it did not go far.
On Dec. 13, I created my profile on Hired.Me. Since then I have had 5 offers. I have made strong connection with one of the company and will be having in-person interview in a month (I have 3 week family wedding planned in Jan :)).
From my experience, there are so many companies looking for quality engineers. If you are having hired time getting hired, I am open to talk with you. I personally don't pursue working at big companies for the sake of them being big. I am looking for a company where I fit in based on my programming design sense and culturally.
I'm 27/M/Single/SF - so I don't have much constraints as someone who may be older with family or in non-tech savvy part of the county.
In a way it's kind of belwildering how radically different seem to be the job hunting experience for many HW users.
You see so many posts like "I had multiple six-figure offers", or "it's impossible to find enough candidates for the position" and then you see posts like this.
For networking (and general interesting fun) meetup.com is my favorite thing ever. People go to businessy/techy meetups for the express purpose of meeting interesting people. Many of them end up literally standing around waiting for someone to walk up and say Hi. My go-to greeting is "Who are you and what do you do?" It's blunt. But, it gives people permission to just go ahead and introduce themselves to me without the silly social dance around finding an appropriate opening. We're all here to meet. Meet me dammit!
If you do this enough, you'll have awkward moments and you'll meet a few jerks, but mainly you'll get to practice meeting interesting people in a fairly safe way. If you screw up, you'll likely never see that person again. If you are awesome, you still probably will never see that person again, but you just might actually make a long term contact.
My wife thinks full a head of hair on men looks feminine. My reason for sharing this is to illustrate that many of us bald guys presume to know what people think of it. We don't. Life long and prosper, my bald brother.
Wearing a motorbike helmet without worrying about messing up hair? Check! Travelling extremely light on holiday because I don't need any product, shampoo, etc.? Check! Coming out of the ocean and in to the bar without worrying about what my head looks like? Check!
I'm another "shaved at 27 and wouldn't want it back". I love being bald. Just make sure you keep it a good bald - don't let it grow in to half an inch long fuzz if you know that doesn't look good. Don't be lazy. Me, I shave with a battery powered electric about once a week. Takes me ten minutes.
Another tip: I find collared shirts suit bald men better. Depends on the shape of your head, but for me a t-shirt makes me feel a bit like one round glob of human torso, whereas a nice collared shirt gives the whole upper part of my body a bit of character. Or a t-shirt with a blazer. Or find a hat that works - I love the flat-cap style. YMMV. But be conscious of it, it'll help.
It is what it is. Make it yours.
And yes, Meetup is gold. Remember: everyone else there is in the same boat. Nobody else knows anybody either. Everyone is aching for someone to dive in and start the conversation. If that person is you, you're already miles ahead. Have fun with it!
I had long hair in my early 20s, but by the end of that decade I was thinning considerably - family trait that I had worse than my father's generation.
I tried to keep some kind of hairstyle far longer than I should, and stressed about it. Then one day I decided to just shave it off. I bought a set of clippers, and cut down to 1-2mm all over my head. Best. Decision. Ever.
Now I don't care about bed hair, hat hair, shampoo, windy days, etc.
My wife likes to stroke my head and even though she said she never pictured herself with a bald man, she thinks it looks really good on me.
Would I prefer to have a full head of hair? Sure, but I really appreciate the extra freedom of not having to care about what is going on in my head, and I've only had to replace those clippers once or twice, saving me a fortune in haircuts!
There is definitely a social impact, especially when dating, but also in other areas. When you turn on the TV, how do you figure out whether a non-hero character is a bad guy? If he's bald, he always is. There is definitely a heavy cultural bias against bald people.
Aesthetics is a big part of it though. People with hair can pull off a lot of looks that simply are grotesque on bald people, but the good news is: it's something you do have control over. The worst thing you can do when bald is being fat. So work out, and wear nice clothes. These things matter a lot more when you're bald, you'll notice the impact immediately. In fact, these things matter a lot more as you get older in general.
Confidence is another thing you can actively work on. People tune you out if you think you're not interesting. While the deck is stacked against you a little bit due to things outside your control, the biggest impact on your confidence is, well, your confidence. If all else fails, learn to imitate confident people and don't be discouraged by failure. One of the things you can learn from observing confident people is that their failure rate is not actually that low, for the most part they are just really good at concealing or downplaying failure. If you suck at networking, that's not due to baldness, it's because you don't enjoy networking to begin with, because you don't have a lot of practice, or because you get discouraged easily. I can identify with that, but believe me it's something that gets better if you're determined to become better at it.
A certain percentage of people will never date you, never trust you, never want to listen to you. This applies to everybody on the planet. Sure, that percentage will be much lower for a non-bald good-looking person, but the essence of the fact remains: you can't make everybody like you. Try to train your internal classifier and filter for those whom you can build a relationship with. Attempting to win over people who reflexively dislike you is a fool's errant; there are lot of "low hanging fruit" you can pick up instead using a fraction of the energy.
The nice thing about people who make a lot of snap categorizations on a whim, like never date|befriend|trust|invest in|talk to a guy who has attribute X, is they come around just as fast if they see you're successful. A lot of people only like you when you win, so go out and pick battles you can win. The goal is, much like doing a startup, to make it unreasonably expensive for people to dislike you.
I've got a slowly growing bald spot myself. I'm either going to have to convert to Judaism or just shave it all off.
I've embraced becoming bald. I keep it very short and rocked the look. A simple electric razor is enough to keep the longer portions around my head in check. Every now and again I use a blade razor to give myself a clean bald look.
Now onto networking. It's a skill, and like any skill it can be learned. There is a lot of material about how to converse and become interesting, but all of them require practice in front of people. It sucks for the first few times, just like starting a new workout routine. It will feel discouraging when you don't see results the first few times. Keep at it. It helps to keep track of the number of people you talked to and roughly how long you talked. You can then try and increase those numbers just like adding weight to a workout. After a while you will start to notice it's coming out naturally.
The best way to keep people interested in you is to become interesting. Yeah, that's a "DUH!" kind of statement, but buried in there is a grain of truth. Sit down with a pen and paper and start listing all the cool things you have seen and done in your life. What makes you excited? What makes you wistful? What do you long for? Use that list as a foundation, even if you only have a couple of items. If it's blank, then you have the opportunity to explore many different experiences and see which you like and don't like.
The hardest part of all of this is getting started. Intertia is a hell of a resistance. Start small and get into a habit. Habits can be hard to start, but they are also hard to break. Starting small helps get over the initial inertia with small steps while you build the habit. Once you start getting into the rhythm, you add harder and more difficult steps to build up your habit. This is how you build any successful system or learn a new skill. Be open to mistakes and failure as an opportunity to examine and learn. Turn hostile criticism into positive critique.
None of this is easy, but with repeated attempts it does get easier. You still have your 30s and 40s to be a god damn rock star.
I lost most of my hair by 28 as well, and while I fretted about it, I've gotten over it. I didn't have problems getting a girlfriend, and she doesn't mind :)
All that said, the two people I know with hair implants have never looked back. It's not cheap, but your appearance is with you all day.
Source: I started going bald when I was 17. Shaved my head clean by the time I was 19. I'm now 27 and if I had the choice to have my hair back I would turn it down.
I wish I could put it in a better way, but this is just what it is - accepting it and moving on. Focus on things that you get with age - wisdom, charm, knowledge - a of it, experience in relationships, and ability to avoid mistakes and help others avoid them too. Knowing what matters and what not and then prioritising life accordingly is what we can do best that people younger than us usually can't. So that's there.
I recently read it and it's great. The book has less than 200p, but still covers the most important parts of C++11, albeit not in great detail (the reader is pointed to "The C++ Programming Language" by the same author for that). Read it! And watch the youtube video in .
 https://www.youtube.com/watch?v=xnqTKD8uD64 http://www.amazon.com/Tour-In-Depth-Series-Bjarne-Stroustrup...
Go and do a trivial project in it, cppreference.com and cplusplus.com have c++11 tags on the new features. I'm sure you've had ideas recently and I'm sure the project is less trivial than you thought!
I think looking at language features first is "a solution looking for a problem" attitude.
(Disclaimer: the C++14 version is still missing proper references to the official C++14 standard)
Also, this talk would give you a very general overview of the new features of the language:
Another book that can be a refresh introduction would be:
Don't get me wrong. The new features are great. I love nullptr, fixed width integers, to_string, stol, etc. but I sometimes work in environments with very old compilers that don't offer these features. And when the only code you have is written for C++11 or newer, it can take a great deal of time and effort to make your code work on the older systems.
Also, if what you need is in the standard, then don't use any external libraries. There are a lot of great libraries out there (Boost, Crypto++, etc.), but they add complexity and build dependencies and can cause all sorts of support issues. If you add Boost only because you need to parse arguments, then you're really causing yourself and developers who come after you more trouble than it's worth. So every time you think you need an external library, think twice and talk it over with other, more experienced developers.
When I need more features than the older standard provides, I'll use a newer standard, but I strive to only use the exact features I need (don't go wild and convert your entire code to C++11). And as a very last resort, I'll use an external library (but only a mature, widely used one) when I cannot easily write what I need with std C++.
Hope this helps. And whatever you decide, I'm sure you'll enjoy working with C++.
After reading these two books it definitely changed the way I see and work with C++, I fell in love with it.
So reading old code-bases is very common, you still need to understand the old C++ anyway:
Professional C++, Wrox, Jan 2005
Then to get yourself up to speed with C++11 and C++14:
Professional C++ 3rd Edition - Wrox, Sept 2014
Some things are hard to come by in any shorter sources. And at times you have to dig into the standard.
An example of rather obscure thing in C++ which changed in C++11 (sequencing): http://en.cppreference.com/w/cpp/language/eval_order
And another thing which can be pretty confusing without carefully reading the standard. Copy elision vs move constructors...
See http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n324... 12.8 (Copying and moving class objects), #32 - 33
If you just want to skim - A Tour of C++ should suffice.
"Effective Modern C++" goes more into the details and is next on my queue.
I've done a bunch of Ruby, Java, and some Lisp programming since my last stint with C++. It feels like a whole new language.
"C++ Primer", by Lippman is the book that we try to follow.
I hate C++ with passion for almost two decades. But I recently started working on KDE sub-project and found it very nice.
I feel the only way to "repay", is to pay it forward (since in general it is unlikely your helper will have the same need as you).
Two weeks ago I did up my list of influential people - it came to 49 names, including some familiar HNers I've never met and some business people I've worked closely with for years. I sent them all an identical 2-3 line thank you email. I didn't see value in personalising it - it's hard to quantify or put into words. And judging by the responses I received, not enough people take the time to do that.
Do it in an honest, real way. It can be as simple as, "Hey, thanks! You had a good influence on me." Or, "Man, I would not have made it without you. Thanks."
And mean it. That takes looking them in the eye and speaking from your heart, and they can tell. Special dinner, or treat is optional and fun, but just meaning it, getting their real attention for a moment to say it is what counts the most.
Most people, who are helping others in this way, don't expect much. They do it because it's the right thing to do, and that has it's own rewards.
In my experience as both mentor and having mentors and supporters of various kinds is seeing the other person realize some goal, or see success or just be happy is pretty gratifying.
Now, your last paragraph gets right to the meat of the matter, IMHO. Yes, you can't really do enough. This kind of thing isn't about dollars or points, or any other such thing.
It is all about being a good human. When we are good humans, we tend to be surrounded by others who appreciate good humans, and it's catchy too.
So pay it forward. Be a good human when your time comes and feel all that those people you are thankful for do, and then tell them that, and close the loop.
They will very seriously appreciate it, and you will feel damn good about it all.
"In the 1990s, an eighteen-year-old headed to Australia to realize his worldly dreams. With little money or support, he struggled to survive there. Twoyears later, he was earning an annual income of $250,000; by the age of twenty-six, he was a multimillionaire. Yet, worldly success was merely a way stationon a journey that began years ago. As an eight-year-old, he saw a vision of God in a dream, an experience that left him with a sense of deep joy and peace.The dream triggered off his desire to meet God, to see a manifestation of the Divine. He practised astrology, intense meditation and tantra, yet God wasnowhere in sight. Deeply frustrated, he dived into materialistic pursuits to distract himself from the restlessness within. After years of living the goodlife, he found he could no longer ignore the old restlessness; worldly pleasures just couldnt fill the void within. He moved back to India and finallydid what he had always yearned to do: renounce the world and become a monk. In the Himalayas, in terrifying silence and solitude, Om Swami practised intensemeditation. Death was always close as he confronted starvation, the fierce elements and wild animals. Finally, his sadhana brought him to the ultimate"
"JESSICA: Alright. So, I am going to echo one of Gregs picks because it was on my list but for a different reason. Seeing like a State is an amazing book. And I think its drastically changed the way I look at software, not for the same reason as Greg talked about but because it shows why what we do is hard. Seeing like a State talks about all the subtleties of human systems and human interactions at the local context level. It talks about all the improvisation that everyone does on a day-to-day basis and how in real human communities, were constantly changing the system to adjust to a slightly different reality, to corner cases we hadnt seen before but now we have. Its shifting and its not well-defined. And suddenly it makes complete sense that the hardest part of software is figuring out what we want to do. Thats it. Its a great book."
Mathematics: Its Content, Methods and Meaning. Highly recommended overview of math by some HNers so I figured I would check it out.
Venture capitalists at work. I didn't realize there were more "at work" series books other than coders and founders, so this one sounds right up my alley.
Information Rules, a book that's supposedly dated on economics and how it applies to the internet world. Recommended on Chris Dixon's blog and looked interesting. Thought I might get some new insights to bitcoin or something with it.
And Walter Isaacson's new book, the innovators.
Really. It's fascinating. You not only learn how to read EKG's (obviously, after reading the book, you're still not qualified to argue with a seasoned practitioner), but you also learn a lot about how the human heart works.
Much more accessible than I thought.
Slavoj Zizek's Absolute Recoil: Towards a New Foundation of Dialectical Materialism
Evgeny Morozov's To Save Everything Click Here: The Folly of Technological Solutionism
William Gibson's Neuromancer
Vernor Vinge's A Deepness in the Sky (Zones of Thought)
Any one series?The Foundation series, Isaac Asimov
Other personal favourites include:The Alchemist, Paulo CoelhoThe Book of Disquet, Fernando PessoaThe Count of Monte Cristo, Alexander Dumas Extremely Loud and Incredibly Close, Jonathan Safron Foer Jonathan Livingston Seagull, Richard BachThe Wizard of Earthsea by Ursula K. Le Guin
disclaimer: I'm the author
O'Reilly - Scott Murray - Interactive Data Visualization for the Web
Data Visualization with D3.js Cookbook
A First Course in Probability
Rails AntiPatterns - Best Practice Ruby on Rails Refactoring
Bayesian Data Analysis Andrew Gelma
The Pragmatic Programmer
Bishop - Pattern Recognition and Machine Learning
O'Reilly Mining The Social Web
Neuromancer - William Gibson
Predictable Revenue - Aaron Ross, Marylou Tyler
The Fountainhead - Ayn Rand
The Ultimate Question 2.0 - Fred Reichheld
The Singularity is Near - Ray Kurzweil
Moonshot! - John Sculley
Zero To One - Peter Thiel
Republic - Plato
Meditations - Marcus Aurelius
Nineteen Eighty-Four - George Orwell
Fahrenheit 451 - Ray Bradbury
The Mysterious Island - Jules Verne
Discipline of Market Leaders - Michael Treacy, Fred Wiersema
False Memory - Dean Koontz
NOS4A2- Joe Hill
Revival - Stephen King
Barbarians At The Gate - John Helyar and Bryan Burrough
Into Thin Air - John Krakauer
How To Measure Anything - Douglas Hubbard
and any collection of the works of H.P. Lovecraft.
Conceptually it shouldn't be hard to do such a thing, as long as the EPUB isn't DRM. An EPUB is just a ZIP under another name, and is basically a collection of web pages along with some XML metadata. You should be able to unpack the EPUB and read it/annotate it with a web browser and any existing web annotation tool. If you saved the annotations to the same file tree, you could pack it all back up and ship the annotations with the file (you'd need to add any new files to the manifest to ensure that the file still validated).
That would be clumsy, but portable.
(percentage of the way through the text)%
HIGHLIGHTED TEXT OR NOTE
I find it suits my use case.
You made it through by being versatile. Not by starting to learn while you were job hunting, but being prepared when jobs were aplenty.
You had to be ready to be employed in a non-VC funded world, doing boring things.
Learn some boring stuff, even stuff that gets laughed at on HN. .NET. Java. In places like Houston, there's TONS of jobs, but they're not in Rails or Clojure or Angular. They're in .NET, writing apps for big oil or healthcare.
Though it wasn't as big then, I think learning dev-ops will really take someone far when no one's writing Twitter aggregators or social networks for quadcopters.
tl;dr When times are lean, boring languages in boring companies that make real, not VC, money is how you stay afloat
Keep in mind, besides the dot-com crash and then the sept 11th attacks, the real macro environment of the early 2000s was outsourcing. Everybody believed you could just hire a team in India or Russia for pennies on the dollar. It would take another 5+ years for that trend to reverse as companies recognized the challenges in moving their development resources off-shore.
As I stated, I responded to the off-shore movement by switching to a less-affected industry (aerospace/defense). Most "market corrections" really affect the most vulnerable segments of the job market: entry-level and near-retirement.
If you didn't have every single acronym in the job req and 5+ years of experience with each, the employers simply were not interested. Things like, you'd used Eclipse but not IntelliJ disqualified you because IntelliJ was requested. Some job reqs even requested more years of experience in some technology which had only been around for half the time mentioned.
Sending 100+ resumes a week without any callbacks became the norm. Recruiters could simply sit back and wait for the resumes to come to them. If you weren't actively looking, no one would call you.
Enterprise market was essentially the only game in town. Any kind of web dev just died overnight. I managed to start and finish a masters degree before things got better again.
After a couple of months, I started cold-calling businesses as a consultant/freelancer - got my first gig at $20/hour, and then a more reasonable one at $55/hour, since then I've been passed around via word of mouth. I found that clients were more amenable to contracts than FTE because they all needed work "for now" but were petrified of commitment since they had no idea what the future would be like. Anyway, I stuck with freelancing and have never since taken a salaried job.
Basic advice - don't sacrifice your salary for stock options (unless you're a founder and already have enough emergency fund saved up to last you through another crash). Don't trust your "like a family" employer to take care of you, don't believe that HR has your best interests at heart. You're in business for you, not your employer - treat them well in exchange for them treating you fairly, but not out of some misplaced sense of "loyalty". The rest of it is just, save up and live simply - programmers aren't investment bankers.
One of the big challenges was that large companies were the only place to get hired - the few startups that were around were often zombies leftover from the dot-com times; it was clear they weren't going anyplace, and (perhaps exaggerating slightly here...) nobody was starting anything new. Keep in mind though a lot has changed in 15 years - it took a lot more capital for infrastructure in those days so there were fewer companies starting up anyway.
For people my age and older... we saw the pre-dot-com slowness of the early 90s, we got caught in the dot-com downturn, we got caught again in the post 9/11 downturn, then we saw our house values melt down in 2008... so as far as I'm concerned, in good times be painfully frugal and stash cash because the bad times are just around the corner...
Yes, there was a huge market through Y2K and the dot-com bubble for people who knew how to operate a keyboard, and that market collapsed. But those people where as much developers as I am a surgeon because I know how to apply a band-aid. Personally I was glad the bubble burst, because it became increasingly harder to avoid landing in a place where most of the "developers" weren't utterly incompetent.
HN isn't a representative audience though. Most of those people wouldn't be on the early 2000's equivalents of HN either. If this is a bubble and it bursts, most of HN-ers that get affected won't be out of work for more than a month.
Many may have to take a boring enterprise gig, but that's pretty much how the second wave of internet-companies started: bored and with time on their hands, many hackers started to work on what was then called "social software" projects, which eventually resulted in a wave of social media startups.
Things may be different in SV, especially when it comes to the balance of wages vs cost of living, but SV is an outlier.
About 40% of the twenty-somethings in SF moved out. SF itself was so dead that one day, at rush hour, I saw a completely empty street in downtown. I asked a cop if something was stopping traffic, and he said no, it had been like that for a few days. Many empty buildings in SOMA.
I had an automatic system predicting the death dates of publicly held dot-coms, based on their assets and cash flow. I keep it up for reference:
(Where it says "Chart is not available for this symbol", that means the company is so dead.)
When the crash happened, I started to get calls from developers who wouldn't take my calls a year earlier. Many had a few jobs within a short period of time. I remember placing one guy three times in two years due to closings.
Many recruiters couldn't generate enough revenue and subsequently left the market, which was actually a good thing because the market had become flooded and needed a purging. Salaries came down a bit, but candidates at this point would put very little value on stock options. Options went from being looked at as a large piece of the package to being considered the equivalent of lottery tickets.
To be insulated, I'd encourage you to try to become 'known' in your space. Those with solid reputations and networks were always employed, even if they bounced around a bit.
This boom is honestly (IMO) 1) more stable, as many companies actually do have business models and revenue and 2) more exciting (technology stacks are more interesting, tools have improved by leaps and bounds, very interesting companies are popping up.)
My advice is to be constantly learning (both theory and practice); watch trends and become familiar with where they are going (if an exciting new technology comes along, learn some of the basics, even if that's just a "hello world" equivalent - I don't recommend doing a deep dive of anything truly new unless it really blows your mind or you think it's going to become lucrative); try to generalize your skillset a bit - there's a tradeoff here of course, as specialists will often get paid more while the getting is good - but it means you'll never lack for work (and may get stuck with some more drudgery since you're the jack-of-all-trades, master of none.) I'd also recommend trying to get multiple income streams going, whether that's from your own services business, freelancing, or just software-related consulting, so that if/when the crash comes, you've already got your own personal safety net.
I basically learned something I thought I knew - debt is bad. Really bad. We survived but it was only because we clamped down super hard and interest rates dropped.
When times are good, cut your debt so you owe nothing. Get some savings but once you have some savings pay off the debt.
I knew lots of people who were still employeed but were freaking out because the stock market was collapsing and they were overleveraged - they had borrowed against their home to buy stock.
When April 2000, hit everyone stopped watching their stocks shoot up to watching their stocks crash - same lack of work getting done but gloomier and more suicidal.
My advice to you is:
network, network, network - now before you need it.
Something that I find hard to do myself sometimes.
Then again I have been through a bunch of crashes/mini-crashes already.
But in 2000, you could not rent a Uhaul - they were all reserved for people leaving ahead of you.
Every boom time gets more and more selective here.
Tech is not a long term career move - the ageism will get you if the boom/bust doesn't. Plan for a life outside of tech if you can.
The froth is happening. I am betting on a crash somewhere around mid 2016. Stock market is looking frothy with the real economy doing nothing. .... just like in 1991, 2000, 2008
The main downside was that smaller companies kept going out of business (which is why I had so many jobs in that time period -- two of those companies disappeared entirely, one of them taking a month's worth of salary with it, which super-sucked).
A key thing, though, is that lots of really, really, really marginal developers got hired in the late '90s -- I worked with some of those at the first company that went out of business -- and they very possibly never got a job in the industry again. Crashes make companies a lot more selective, just as bubbles make them hire any warm body who can possibly even theoretically write code.
Think also about Paul Graham. Y Combinator is a case of him monetizing a reputation that he earned (and, yes, he actually earned it) by standing up for startups in the depths of winter. I, for one, plan on making a strong and vocal case for Real Technology (it shall rise again) after the Snapchat/Clinkle frivolity blows up and humiliates the current cool kids. Being able to explain why shit went to hell ca. 2017, as it will, is going to help us make a case for building something better in the next iteration.
That said, it was a bad time for entry-level salaries, and graduate school admissions were ridiculously competitive in 2003-05. If you had a $60k offer (that'd be $72k today) you were in the top third of CS graduates, and non-STEM graduates were lucky to see $40k. I'd guess that the more experienced engineers didn't see a massive salary drop (maybe 10-20% at worst) but it wasn't a good time for job hopping. Certainly that feeling that one could get a 20% raise, just by walking across the street, died out.
It was a good labor market for finance because there was a lot of cheap talent. First-year Goldman Sachs analysts were only in the $60-65k range. (Bonuses could be 50-100%, but they were also working 60-110 hours per week.) Undergrad quants (that's rare but the positions exist) were generally getting $80-90k offers.
People expected housing prices to come down, but they didn't decline by much because there was this other bubble that was building at the same time...
First one was a startup acquired by a big corporation in 2000, but they gave up on us a couple years later. How much the larger economic climate affected that, versus the indisputable fact that we were spending a lot more than we were making, I don't know.
Got another job before the severance ran out. Second one was a small startup, which ran out of cash and failed to make payroll a few months later. The owners wanted to keep going on a shoestring and offered me equity to stay, but I didn't want to take that gamble. Again, I can't say how much of that was due to the economy (harder to find investors in 2002 than in 2000), versus the fact that the company was spending money and not making any.
Got another job right away. This one was a profitable government contractor, I stayed there for years.
My first piece of advice is to always have current, marketable skills. You don't have to chase every trend, but you should know more than one thing, just in case that one thing becomes the next buggy whip.
My second piece of advice is not to put all your eggs into one basket. Salary is more reliable than equity. Savings will get you through rough times.
At the time the crash was just starting to happen, I interviewed at Sun for a job in the Java compiler group.
Their office was just off the De Anza and 280 exit in Cupertino. They told me how their neighbor Apple hadn't been doing well,and how they were gradually taking over all the office space near them. The folks I interviewed with thought Apple would be history in a few years, and being a hardware company that was doing well, they would deal with the crash just fine. I believed them.
Apple made a complete comeback.Sun went through many rounds of layoffs before it was swallowed by Oracle.
Luckily for me I ended up taking another job at a company that was one of the few to do relatively well during the crash.
Till this day I am grateful I did not take the Sun offer.
The next crash probably won't be cyclical in your city. The money will come back, but it will come back somewhere else.
If your priority is to stay in the city where you're living, be prepared to make that work (which means being flexible about what you do), or be prepared to move (which means being flexible about where you live, and being in a relationship where moving for work is OK).
The only area that was really hiring at the time was the Government, and I lived on the east coast so I was able to work for a Government contractor a few months after graduating. It took quite a bit longer for some of my friends to finally use their degree and some still never have.
And by "diversifying your skill set" I don't mean just being proficient in more than one area, but also being perceived as being proficient in more than one area. This is probably hard to do without switching jobs. You have to sell yourself as being "good at both A and B" during the interview and only then will the perception take root.
Incidentally, this was a double-edged sword for me, since peoples' perception of me being a designer (I had merely added a couple art samples to my resume) always seemed to pull my career in a less technical direction than I wanted to go, partly because I stayed at the same company so long.
2) I did take a pretty dull "and stressful for being that dull" job with an insurance co. as a senior developer after the startup (probably closer to 'small biz' at that point) I worked for had a major restructuring. The dull job did allow me to focus a bit more on some other freelance/networking opportunities.
3) As a few have noted, the biggest thing afterwards seemed to be the outsourcing wave. That plus the sudden glut in the market seemed to nearly wipe out entry level opportunities. There was a period of time where I (being only 6-7 years out of college myself) don't recall working with a single new graduate.
Actually it felt great. Like a return to the basics.
Money was flying about in all directions and all you needed to do was stick your hand up and grab some of it. Your silly internet company would get $25 Million for the worst idea you could think of. If you'd read a "For Dummies" book, you could take your pick of $75/hr contracts or just grab as much $200/hr freelance work as you felt like. You could stick that surplus money into the market by picking any stock with an "e" in front of the name and watch it double in value every few weeks.
Then 2000 happened. And it went back to normal.
Not a disaster. Not the end of the world. Just back to regular jobs for regular companies with regular business plans for regular developer wages. If you were good at what you did, you were fine. If you were a converted business major, you went to law school. No sweat.
Everybody (at least everybody I was aware of) saw it coming. We were in a bubble. Yahoo wasn't going to double a fifth time that year, so it probably wasn't a good idea to accept that 10x leverage your brokerage offered and dump your life savings into it. We still partied like it was 1999 (since it was), but we were all ready for the day when the party ended.
Then it did. And we went on with our lives.
We might just do the same thing in a year or two. And again, it probably won't be that big a deal.
Before:* Pay increases of 10-50% each year or two as you changed jobs.* Finding a job was a matter of sending your resume to 1 or 2 decent recruiters, then fielding the endless calls about opportunities.* High quality, challenging technical interviews from senior developers and engineers.
After:* No significant pay increases anymore.* Recruiters that never answered emails or calls (explained below).* Low quality interviews given by hiring managers, or in some cases by contractors with little experience of their own.* H1-B visas bringing in floods of people who largely could not solve problems and who needed to be given every solution just short of typing the code.
Prior to dot-com bust, recruiters were professionals who had a fair grasp of the technologies and industries they were involved in. They seemed to treat their jobs as actual professions rather than as temporary stepping stones to something else.
After the bust, companies reigned in their (perhaps overly aggressive) hiring and IT growth, leading to perhaps an over-abundance of recruiting firms. But at the same time, new recruiting firms emerged staffed by low (no) quality keyword-searching resume-pushing monkeys who would work for peanuts. Thus, the real recruiting firms cut staff so severely that the remaining few were buried under resumes of all the IT people displaced (let go).
Companies still had positions open, even advertising them, but hiring managers were very reluctant to actually fill those positions. Despite approvals to hire, nobody wanted to take the risk of actually spending the money on more staff.
This led to the growth in low skill H1-B labor, which further reduced the need for quality recruiters. It all became a game of numbers, a race to the lowest common denominator.
When that didn't produce positive results for industries, corporate management (who could count money but could not judge IT quality) made the next obvious step - offshoring. This further ruined the environment.
Basically there was an 8-10 year dark age in IT (unless perhaps you were in Silicon Valley... I can't speak for that). It still hasn't recovered fully, and it probably never will.
> What were job-prospects like?
IIRC development went off a cliff. Even people who were in secure industries were at risk because of the deflation in salaries. IT/Operations was reasonably safe.
> How were your wages affected?
Roughly cut in half overall. Through the worst of it in two years then back to normal.
> Well-insulated if/when the next crash happens?
Aside from a good savings account. Don't be afraid to pick up a little ops experience. Most people I knew who sailed through the bubble spent a few years doing in-house work for some non-tech company. There is always work closer to the business side. When times are good it's all about wish fulfillment with new services/features etc... During a downturn it's ruthlessly about costs.
- where in your career you were- where in location you were- what kind of employer you had
Far and away the hardest hit during the last crash were new-grads who had accepted job offers that hadn't actually started yet. Those jobs immediately went away and there was nothing to replace them with. I know of lots of people who left tech in general after this, and others who constitute a "lost" generation that has always made less money/done less interesting things because of this. Everyone up the experience ladder did better in an almost exponential way. That is, junior devs either spent a lot of time unemployed or accepted jobs at salaries well below what they were expecting. More experienced devs ended up hunkering down in "boring" jobs and saw their wages stagnate for a few years etc.
SV and the west coast in general got hit much harder than the rest of the country. NYC, Chicago, Texas, Minneapolis, Atl, etc had down cycles but their diversified employer base meant that it was muted by comparison.
Besides the obvious dying of unsustainable startups and their employees, the people in tech. services were much more impacted than other industries. Particularly hard hit, were body shops and the big consultancies. Finance, insurance, pharma, etc all took much less of a hit.
I'd add that along with the dot com bubble, several other factors added in to make the last crash particularly brutal. Lots of enterprises used the 2000 bug scare as an excuse to retool and there was tons of work that went away after that ramped down. Then 9/11 came along and put a major hit on companies willingness to spend on infrastructure.
As far as being "well-insulated", there isn't much advice to give. These are macro factor trends that impact everyone. The advice for this is the same as for dealing with any risk. Keep your spend rate low, have a safety net, diversify your skill set and have a strong professional network that thinks highly of you.
I can understand why it happened. No one was educated some guy would get millions of funding for nothing but hype and high tail it out of there. People had money and were just cramming into places that didn't have a plan. I could literally walk into a place and make an animated gif on a webpage and people would oooooo'.
When it crashed it was literally like a vacuum and we all lived our life like 'that' didn't happen.
1) There are industries like health care and insurance that have traditionally been good places to hang your hat during a downturn. If you can learn about regulations, trends, and domain-specific tech in those fields, you will always have a job.
2) Both in the dot-com era and more recently, there were loads of people who entered the industry because they saw dollar signs. If a downturn hits, many will be quickly weeded out because they won't have put in the hard work to round out their skills and portfolio, or thought about their long-term career progression. You can avoid being pruned by planning ahead and taking action now to make sure you've got solid credentials.
My first east coast gigs were freelance work that I took from video production shops who got into the business of building websites during the boom because it was such a big money maker. After the crash they had laid off all the unqualified staff (random employees who learned dreamweaver and were therefore somehow qualified to build websites) and started scooping up people with actual technical education (me) for dirt cheap ($25/hr).
I moved to the Bay Area about 2003-2004 and the situation was a little better but I still had to look for work aggressively. Fulltime positions never were presented to me, though there were a lot of on-site freelance gigs out there so I didn't notice. I think companies were still wary of staffing up. I was getting paid what I thought were amazing rates at the time ($45/hr). Back when I was starting out I was always the youngest person on any team by a stretch. A lot of staff guys were 15 to 20 years older than me with a family and kids. Some were even older. Might have something to do with who they chose to lay off a few years before my time, but never asked.
Because of the freelance vs staff situation I basically never took a fulltime job and stayed freelance ever since. Though after I moved to LA I was offered staff jobs circa 2006 onwards and it started getting aggressive after that but I stuck to 1099's. I think a lot of guys who entered the market when I did went the same path.
I graduated from ArsDigita University in 2001. Right time, right place to see stuff completely implode. I must have sent 100+ resumes during 2001, and temped at Harvard for a while until getting a job through a friend in Feb 2002, in Java development. It wasn't great, so I kept up the job search and finally went to grad school in 2003 while finding a part-time consulting job, also in Java. That kept me afloat until I graduated in 2006, and moved out of the USA.
Looking back, the companies acted like they could do no wrong, and it bit them hard. ArsDigita was a dot-com darling for a while, but it did crazy things like sign ten-year leases for a branch office that could seat 20-30 people and they had 2-3 actual employees in that city.
I remember in ArsDigita University, we weren't based in the actual office but a place about a metro stop away (where ITA Software based themselves a decade later, yay lisp), in the basement. We started the program in September, and one day in March we were let into a larger, nicer office on the first floor and were told that AD also rented this part as well, anticipating another 20 or so programmers would work here as well. It remained empty until we moved out of the space later that year.
I submitted 45 applications. I ended up with two interviews. It took me 4 months to get my first job. I was being paid about half of what I was making as a high schooler in 1998.
In the end it was one of those strange blessings. That company ended up being a fledgling Quickoffice which launched me into my startup career.
Still, it was quite tense at the time.
By the time I graduated in 2001 my cohort were taking jobs at Staples selling computers so there's that. Many people were getting into graduate programs to wait out the downturn. I am not sure how this affected minimum education standards for new hires down the road.
I did OK but there were some lean times.
The market, at least in Dallas/Austin was barren. The only new job postings on job boards were repost by recruiters looking to pad their portfolios.
I keep lowering my expected hourly rate/salary weekly. When I got it down to 50% a recruiter called me back and got me something.
> Did recruiters simply cease to exist?
All the opportunistic, bad recruiters crawled back to whatever hole they came from. Same with all the unqualified "bandwagon programmers" who cashed on the bubble and gave all of us a bad reputation forcing hiring managers into brutal interviewing processes.
Recruiters were let go too, agencies closed or downsized. A few good ones remained.
> More to the point, what advice do you have for developers who want to be well-insulated if/when the next crash happens?
Well first, you got to have some sort of financial cushion and a plan to cut down expenses to the bone: the day I was laid of on 2001 I canceled my phone, cable, any other superfluous monthly expense. Also moved to smaller apartment as soon as I could. I knew it was going to be rough for a while.
Next is to know which industry to aim for: after 9/11 lots of money flowed to military contractors so I started aiming for that industry. I ended up programming for a company that provided services for the military until the market recovered.
I saw decent developers laid off, but good developers kept on. I saw companies desperately hunting for business (and signing ruinous contracts to have revenue). I saw promises to employees that had been made in exuberance broken (we'll open a London office). I saw poor business practices--lay offs the week of Thanksgiving, for example. I saw the business I was a part of get smaller and smaller as the fat was trimmed.
However, for good developers, there were still raises. I know some great people who were hired away, so I think that the job market still existed. But you certainly weren't getting the exuberant benefits in the new job.
I was too young to be on recruiters' radar, so I can't comment on that.
As far as insulating yourself, I think the best things you can do are:
* be humble * learn new skills * be cognizant of the business and the value it provides to consumers, and where it is weak * know if the business is profitable, and how (1 big customer? 1,000,000 small ones? advertising) * save a large chunk of your salary, and not just in your 401k * keep your network alive (maybe be an informal recruiter? http://www.mooreds.com/wordpress/archives/1728 )
Afterwords there was not much work for a short while until I took a 6 month development gig (writing a Sharepoint clone) for a company in India at a not very high consulting rate, but by the time I was done the job market was better for remote workers.
The good developers I knew went into a holding pattern, sitting at whatever job they landed until things improved. It only took 2-3 years before the demand started to come back. At that point, there was another split, where the really good people went off to new jobs, and the less talented stayed in the same corporate jobs. This then left a few really good years to be working as a consultant, as the corporate teams had lost all their talent and needed help. The guys I know who rode that consulting wave have all since migrated into director or VP positions at consulting firms, and are doing quite well financially, even if they have sold their soul tot he corporate world.
Of course, not everyone went the consulting route. Many of us just stuck with coding, but found better places to do it, for better salaries. But most people my age (40s) have no interest in riding the startup wave again.
As for what I did during the crash started my own web/usability company in 2000. Nothing to do with the crash (the company I left was successful and bought a few years later would have made a lot more money if I'd stayed and waited for my stock to vest ;-) Just wanted to get out of management at the time.
Just because the VC / startup market was crashing and burning didn't mean that a whole stack of existing companies didn't want to get on the web at that time ;-)
From my perspective a lot of it depended on where you lived.
The folk I know who were working in the US at the time didn't really notice a lot of difference if they weren't in the valley or NYC. Because outside of those areas the crash didn't cause that large a change in the job market. In the UK (where I live) not a lot changed outside of London, and maybe Brighton.
If you were in SF or London though you were facing a lot of skilled people hitting the streets at roughly the same time. Which obviously drove wages down. For a time it was a employers market.
For me the biggest visible changes I saw were:
* on the bright side: far fewer idiots were hired
* on the dark side: far fewer newbies were hired and trained on the job
* I got fewer calls trying to poach me, and lower offers for London jobs
* I faced a lot of competition from other folk starting their own agencies after leaving a failing startup
The biggest problem was faced by complete newbies or folk still finding their feet since there were far more experienced folk around in the job market. And they got hired first.
Advice for developers who want to insulate themselves:
* If you're working now save money. Money gives you options.
* Be good at your job.
* Understand how to communicate to third parties that you are good at your job.
* Stop thinking that all work outside of the non-VC funded world is dull an uninteresting. It isn't.
* Have connections outside of the startup echo chamber.
* Live, or be willing to move to, locations that aren't flooded by hundreds of people just like you.
The thing that stands out to me the most about that period in time was how flat it was. No significant pay raises, no new hires, nobody leaving (where wasn't really anywhere decent to go). The team and the work fortunately stayed interesting.
Take that for what it's worth - I'm just one data point. Also, the last couple years have been too good to us in our industry, but I don't think it's anything like the absurdity of the late 90's, so I would be surprised if there was a crash that hit as hard.
Also, to echo what others here have said, we didn't know we had it so good until we suddenly didn't. If you're in your first job in a fabulously-funded tech startup with bizarro perks, brace yourself that it may not be normal. :) But appreciate it while you've got it!
So, geeks were given millions and felt like they had to impress the investors. So if the competition moved to a new office, they moved to even bigger ones. If the CEO was driving a Porsche, they got a Ferrari. So you could tell a tech startup was in a building by the multiple Porsches parked outside. The same principle applied after the crash - you could tell a tech startup is crashing due to the multiple people coming out with cardboard boxes. Every day another startup next to us did the cardboard box dance. Our turn came as well of course. My next job lasted 2 months as that company tanked as well, and as a new recruit I was first to be let go. Next company lasted a bit longer but at that time the city was changed. Before the crash I had to park my car at the other side of town and take a taxi to it when I needed it. After the crash I could park everywhere I wanted and at any time. After the crash I had periods between jobs that I couldn't find any work. At all, but I was lucky (and good enough) to ultimately get a good gig. During those dead periods though I had to leave the City which was probably the hardest thing for me as I really like San Francisco.
I don't regret a thing though. And I think the crash ultimately did good to the industry. It was too much before it happened. A strange gold rush with a total lack of common sense. The waves to follow are somewhat more sensible.
I also remember a few times where I was interviewing tech writers, and they would beg me for the job - they had been out of work for 2-3 years.
I don't think it will get that bad if the current cycle bursts. There's a lot more tech companies out there that are making money, and even if/when the VC money dries up there will be some jobs.
Besides that, I never really noticed the crash. Hiring was just as difficult since the average unemployed web dev didn't do C++ and machine control, so the glut of developers didn't really help us.
Later I went on to finish a masters degree in computer science and have two more kids.
Around April 2001, pink slip parties were still happening, but people were getting nervous. VC funding had completely shut off, I think.
Late December 2001, 2nd and Folsom -- tumbleweeds and homeless people.
Recruiters went from being suckups to being sorta mean. They never liked us in the first place. Interviews became brutal. The best way to survive was learning a little business and knowing the difference between a cost and a revenue center.
Now, while it was terrible for B2C, government consulting was booming. It wasn't the sexiest of work, but it was a good four years of my life.
I just wonder what would have happened if I could have grabbed the money and then go to school during the crash instead... Perhaps it wouldn't have made a difference.
2008-9 was actually worse... that was the first decline in revenues and it combined with changing climate toward outsourcing with our government clients.
At one point you see these things, pink slip parties.. fascinating stuff. http://www.investopedia.com/terms/p/pink-slip-party.asp
Anyway, we're not in a bubble, so don't worry. :)
Also, the "dot com bubble" makes it sound like it happened all of the sudden. Lots of smart people thought things were fishy by 1998. By 2000 everyone was convinced. Just because some people are talking bubble now doesn't mean things are going to fall apart next month. Make hay while the sun shines. And be careful about car leases and mortgages.
I was dumb, had a couple of options to jump ship from the place that laid me off, and I didn't take them as I was insistent on moving to NM where my girlfriend was in grad school.
Shoulda stayed in the Bay Area. Rule of thumb: if something smells fishy about your current job: start looking asap.
For example, a job posting looked something like 'Five to seven years of experience building hospitality services using Java Servlets and Oracle Databases.' They would get dozens of qualified resumes and could hire someone for significantly less their previous salary.
I have been continuously employed or have had substantial contracting since 1999 (almost all regular employment, except for no more than a total of 12 months of various freelance).
I can only guess why, but it is probably some combination of:
1. When the layoffs came, I was in the non-laid-off remnant, probably because I always situated myself to know how everything worked, soup-to-nuts: code, databases, servers, etc.
2. Constant re-education, and willingness to use languages and tools I considered to have technical deficits (e.g., ColdFusion).
3. Constant teaching. Was always teaching Java or, later, Ruby in the evenings. Stayed sharp.
4. Constant networking. Very important -> I networked both at the tech level and at the business level. Keeping in touch with VPs of marketing and business development meant that when their cohort was looking for devs, the business-side VPs would think of me. Techie-to-techie referrals were nil.
5. Maturity. Was recruited into an executive position in 2002 perhaps because of attitude + tech skills.
In a way it was good, as when I went back, I no longer did java.
(Edit): 6 months unsuccessful job hunting for dev roles, then after money ran out, back to home town and living in a place my mother owned and taking any job I could.
So...yeah.... if people like that were getting top salaries, then things were a bit crazy.
That job search took months. Without a degree or professional experience, I didn't hear back from anyone. Which really stunk, because back then you had to fax your resume and my local Kinko's charged something like a buck a page. I was stocking the sci-fi section at Borders and reading computer books at night.
There was nothing like today's open source community, no sites like Github. It you couldn't point to a commercial product you built, you had no business claiming you could program. Recruiters wouldn't even talk to me.
I got a job at a company that hired pretty much anyone and sent them to a two-week BASIC course and made them web programmers. Literally, the guy who sat next to me drove limos and had zero exposure to programming before taking the job. But they could bill for his time by the hour, so...great! You can read a bit about my story and the technologies I worked with there in my three-part blog series "Pick is a living fossil of computer history" https://davidmichaelross.com/blog/a-living-fossil-of-compute...
Once I took that job doing Pick, I heard from recruiters at least once a week...for Pick jobs. Again, unless you had a job with a certain technology, you couldn't get a job with that technology, because there were 20 other people with more experience willing to work for the same crappy entry-level wages.
The early 2000s were much the same until I dropped $1000 of my own money on a Java certification and suddenly I was getting calls about Java positions all day long.
My advice? I hate telling people to build up a Github profile because not everyone has the luxury of coding in their spare time. But that's one of the most visible things you can do to prove your knowledge of different technologies. Be glad you have it, and use the heck out of it.
Save up money so you can go for months without a programmer's salary. You might need to.
Accept that you might have to take a job that's not very interesting of glamorous. But never take a job in a technology as old as your parents.
I did what's now called DevOps, automating server and code deployment, monitoring, etc. I could do no wrong. Got promoted, ran a team before I could buy a drink. Got treated like a rockstar with every role I chose to take. People needed to scale and I knew how to do it without hiring a room full of network admins. Serious stock options. My compensation felt like it was following Moore's Law.
The startup I worked at failed. My friends, colleagues, former managers, almost entire network all got kicked to the curb around the same time. Recruiters dropped off the face of the earth. There was no one out there to reach out to.
I collected unemployment for a few months.
I ended up taking a basic IT admin job for a drug trial company at about 60% my salary. A friend of mine landed at a small business Windows IT consulting shop with a bonus structure I could kill, so I interviewed there. I ended up as a local field engineer driving around to different small business clients fixing windows desktops and printers, but with an extra hours bonus structure that had me back up to my previous salary in a couple of years.
In short, I went from a Unix/Linux rockstar to Windows network guy. Now I own my own language learning business and I'm back doing part time DevOps consulting (what's old is new again). I bill out at $225/hr because people want to scale again. It's nuts because just a few short years ago there wasn't a company on this earth that would touch me for $30/hr.
How does it relate to now? I just spent the past two weeks consulting at a couple of startups, including directly for a startup accelerator and wow, yeah. It's the same vibe.
I got back on my feet. Most of my friends did too. I had to fix Windows XP desktops for pipe supply companies and law firms for a while. I had to launch my own non-sexy business to really get out of it. Now my tech skill set and interest happened to be popular again, so I'm taking advantage of that and doing some consulting. I don't expect the tech stuff to last, so I prefer to look at my own small language business as my long-term gig. I don't trust this.
My advice... Industries go through ups and downs, so you will experience it at some point. I survived by becoming OK with helping businesses outside of the bubble. I built my own more or less non-tech business on the side that grew to where I can live off of that if I need to. I advise maintaining a good network across several industries. If the tech startups bubble pops, you can write code for industrial robot control panels or billing systems. Network in industries outside your comfort zone. My sister-in-law wrote systems on contract for a hotel. A friend of mine works on enterprise tax software for Mexican companies. If the bubble pops, have a diverse network to reach out to. The front door's going to be jammed with resumes from people like you, all at once.
Oh, and having a friend who is a very good engineer (ms cs from mit) take a job for $45k to put a dent in their mortgage.
I had left one gig and had started looking for the next one. One month I was getting multiple 6-figure full-time job offers. The next month the phone didn't ring.
I ended up going back to basics: marketing. I went through the online job boards and found which skills were still selling, then revised my resume to focus on those. I made my pitch better and started to talking to recruiters.
It's all still just a numbers game. There's a funnel of jobs you apply for. The next level is the recruiter interview, then the tech interview. Different rate quotes get different amounts of volume into the top of the funnel.
I ended up taking a 30% cut from my rate before. That went on for a few months, then the next job was back at my normal rate. In fact, the more I worked the market the better my rates got. I took a big hit for the several months it took to re-tool, but in general within a year or two I was doing as good or better than before. (The only exception is that the full-time job calls dried up.)
The rule of thumb here is that multi-skilled contractors can always find work as long as they have good marketing and sales skills. The guys who had been camping out at the same job for several years and not growing their skillset had the worst time of it.
Believe me that can change. In a heartbeat. February 2000 and February 2002 were like night and day. BSCS's become much more important as opposed to just experience. You will see more "BSCS required" in ads. Networking - people who stayed in touch with former coworkers etc. came out ahead.
My career started in 1996. I had very little college, but knew Unix decently enough to be a sysadmin. I started at a small ISP, followed by a dot-com startup, followed by another dot-com startup which I was at in 2000.
I thought technology stock price/earnings ratios were at historic highs in early 2000 and was expecting a correction. I expected the crash, although it was bigger and longer than I expected. I thought getting some Fortune 500 experience on my resume would be a good idea. By the end of the year I was employed at a consulting company that placed me as a Unix sysadmin at a Fortune 100 financial company. Actually within a few months the company laid off internal staff and told the consulting company (which was pretty integrated into the staff) that they wanted some consultants cut, which I (barely) survived.
One mantra of our large consulting company is we never had to worry about the next assignment and money, but that was not true. During good times, they made the lion's share of the consulting fees, during bad times they fired anyone who could not be placed almost immediately. So the security they promised did not exist. I had time clocked in at a good placement though so I was safe.
I also had my own startup side project which I killed when the stock market crashed. It was kind of like a Geocities for video games. It had begun to get traction. It was very dependent on disk space, and I had been thinking of spending tens of thousands of dollars of my own money, not just on some servers but on disk arrays. Happily I never bought them. I went with the times - more focused on traction and "eyeballs" than revenue (although I made some revenue from beyond.com which sold software online, it was a public company whose shares went from over $600 to less than $1 and then bankruptcy).
Nowadays my efforts are more focused on bootstrapping and getting revenue early. It's worth it for an angel or VC to goad you on to spending money and chasing traction. They have dozens of bets and only need a few to pay off, you on the other hand might waste years of your life. I spent little money (colo'd at my old ISP), and a year of time, and learned programming etc. better so it wasn't bad.
I visited the Bay Area in late 2000 and had a job offer also, luckily for me I did not pack up and move there.
In terms of insulation: * A BSCS helps* Having lots of money saved helps* Money saved does not mean 95% invested in Rackspace stock, since stocks can go down as well as up* Keeping in contact with former coworkers helps* Having some clean, well architected, "Code Complete" proper code on Github helps* Having a side income from your own personal web sites, apps etc. helps
Another thing - right now the Bay Area is hot and other US cities are not as much. But from what I heard from friends, things were bad in the Bay Area in 2000-2001, whereas in LA, New York, Chicago, Boston, DC etc., they were not hit as hard by the tech crash.
Also, some people I knew were buying tech stocks on the margin in 2000 or even options (10% margin). They lost a lot. Also, unemployed people can eat through their savings very quickly. But there is no better insulation than having a lot of money saved up.
I went on sabbatical in October 2000 to SE Asia to backpack for 6 months. When I left, my current company had an open return door for me in my position. I also had two other companies that I had been talking to about working for either of them when I got back.
When I got back in March, there were no jobs to be had. I had money in the bank though and didnt realize how bad it was. Six months after getting back we had a party where ~55 people showed up. All tech workers. Out of the 55, only 3 had jobs.
It wasnt for another 12 months that I found a job - falling back to my previous skill as an architectural drafter. Fortunately it was for a small design firm that was wanting to do more technical stuff - so we were designing datacenters, server rooms, corp stuff. It worked out well - but for 18 months it was really really really bad. I only survived because my family owned my condo and I had a roommate who paid me $750/month in rent which is what I lived on. I couldnt get unemployment because I voluntarily left for my trip - on which I spent almost all my savings.
I was a Windows developer at the time and I remember a co-worker of mine left to join a startup and make it big. He started work at 8am, was downsized by 2pm and the company shut-down 2 days later. I worked with another guy who was going back to school for a certification, one of those early for profit schools, they had apparently invested much of their profit and when the market crashed, simply fired everybody in the middle of a semester, locked the doors and walked away.
Many of my peers moved back in with their parents and for lack of a job, simply went back to school and got their M.S.'s hoping to ride it out. I know a number of people who left the field entirely and started all kinds of random businesses: personalized woodburnt gift "cards", home-made chocolates, etc.
The company I worked for ended up simply running out of money, nobody had liquid capital to do anything like buy things or be our customer. We simply stopped getting paid.
I left, and through some connections, found a paid internship in a different career to make ends meet, on weekends I refurbished people's decks and delivered rides to kids' birthday parties. Through a twist of fate, my wife was in a weird immigration status and couldn't work (in those days you needed a work authorization card while waiting for your green card and the government was way behind in keeping them up-to-date). We were literally eating Ramen and Taco Bell for most of our food. I grew up pretty poor so it wasn't too much of a downslope, but it was pretty distressing for my wife. One pay period, my wife accidentally threw away my pay check in the trash, we wouldn't have been able to make rent and would have ended up homeless if I hadn't gotten my company to void it and issue me a new one.
Then 9/11 hit and things got worse. Immigration processes absolutely ground to a halt. My wife lost a job she had been able to get on her work authorization papers when they expired and the Immigration service forgot to issue her a new one. I remember an exorbitant anniversary dinner we went to at Olive Garden. We saved up for 2 months for it. It cost about $35 for the two of us. We asked for another basket of all you can eat breadsticks and a pasta refill then took the entire basket and all the pasta home with us so we could split it on another meal.
The place I was working at was delighted with me, and as a reward offered me another paid internship. Nonplussed with their generous offer, I applied to something like 300 other open positions, but the requirements had become insane: 5-7 years experience in fields that hadn't even existed 2 years prior, for entry-level positions paying less than I was making at my internship! I stayed at my internship. When it expired they offered to convert me to full-time at the same rate, but with benefits now being taken out I was bringing home less money!
It was about this time that lots of the courtesy in the hiring process disappeared, things like calling back applicants to let them know their application had been reviewed but they had decided to go another direction, that sort of thing, simply stopped.
On top of all of this, outsourcing was becoming a thing, and tons of jobs were moving to India. Many major employers simply stopped hiring or fired all their technical staff and moved everything overseas. For most of them, it didn't really work out, but it had a major impact in the number of openings and the requirements for the openings. You literally didn't know if your job would exist from one-week to the next.
For me, things started to turn around some time in 2003-2004. My wife finally was able to work after getting her Green Card, my internship converted into a full-time position with better pay, cost to borrow money was stupid low (at the time) with bizarre favorable finance rules (that later got the country in trouble) and we bought a house and started building equity.
The housing market became insane and we sold our house, 2 years after buying it, for a 40% profit. In the meanwhile both of our careers had turn into actual careers and not desperate grabbing at scraps. Outsourcing started to show major weaknesses.
A lot of the excesses of the dot-com bubble and pre 9-11 were carefully scrutinized. Dumb shit like starting a company and spending half the investment money on lava lamps were understood to be a bad thing now. Actually needing a business plan became important. It stopped being possible for 19 year olds with 2 years of experience and a 9 page resume made up of fabrications to get hired into mature startups as directors of engineering and paid $200k salaries. Perl started to fall out of favor as a major force in the development of the Web and Java shops started to become a major "thing".
One, there were just fewer jobs and yet a lot of people competing for them, so it was especially hard if you didn't have a strong resume. Second, remote work was uncommon so if you didn't already live in a tech hub city you were pretty screwed. Third, performing the hiring process via the internet was iffy. Going through the process back then often involved stuffing a printed resume into an envelope and mailing it somewhere along with a printed cover letter, then waiting for a return letter or a phone call (which will probably just go to your voicemail or answering machine).
Granted, the tech field was a little better but not much, and not universally.
The word programmer refers to the literal act of writing the code, while to me the word developer implies writing the code, but also all the other "software engineering" aspects of developing software. If you wanted to be technical, you could say a programmer just codes, while a developer codes but also determines requirements, develops a specification/scope, etc.
I refer to myself with both interchangeably, and I assume most others do as well. I really don't consider them to be different in any meaningful way.
Developers are those that work at the next level. They have their fingers in the project as a whole, or at least in multiple modules. These people are are typically the leads, or senior people in the group.
For the engineer comparison... I would compare them to software architects. They probably aren't writing much code, but they are building out specs and test cases.
Where the engineer designs the bridge, the contractor handles sub projects, and the worker welds the beams... the architect designs the software, the developer manages interfaces and algorithms, and the programmer pounds out lines of code.
You say you take things seriously most of the time. Thing is, most people take things seriously too, and you need to figure out what they are.
To have friends is to give friendship.
And to give friendship is to pay attention to what things people take seriously.
And to walk in their shoes a bit, climb into their skin, feel what they feel when they feel what they feel.
Seriously, it's near impossible for your friends to walk away from you if you take the things they take seriously as seriously as they feel they should.
What I have noticed is that those friends whom I meet in person regularly have stayed friends, while those whom I interact with mostly online (due to distance or schedule) have drifted away over time.
Personally, I'm not too troubled by it. I don't think it should trouble you either - after all the other person too has lost a friend in you. But if it does, then I suggest meeting them in person if most of your interactions are currently online.
* Double your price. (You are probably charging too little. Grandfather existing clients.) If the plan is too cheap, you get too cheap clients. (In one of the last article he explains that he had to discontinue the cheapest plan because it attracted bad clients.)
* Change the names of the plans from Small, Medium, Large to Hobbyist, Professional and Enterprise (or something like that), so the clients autosegmentate. (They know that they are an enterprise, but they are not sure if they are medium or large.)
* Put usage quotas but don't enforce them. Use that information to upsell the customers.
* Try to find the enterprisely features and add them to the Enterprise plan (I'm guessing here: allow multiple accounts to see a half processed, read only accounts, save usual processing filters.)
2 other points:
An unlimited plan that is losing money is never good. Just because startups backed by VC money can loose money for a few years while building scale does not mean it is ok for the bootstrapped business to do the same. Depending on your situation and opinions it will vary.
The other point is that while A/B testing can be overused and useless if done wrong, this is one of those places where it really does make a positive difference. It will complicate (increase) your number of subscription plans, but it will let you test and hone in on the right mix of pricing without alienating existing users.
The business model of "promising" more capacity than you actually have is pretty common, especially with cloud storage provides. To some extent every SaaS does it. As long as you do the math and structure pricing accordingly you're fine.
You want the cost to explore and adopt to be low.
You want the revenue of a retained customer to be high.
Unlimited pricing is a good sales tool when it helps minimize brain damage for your customer. They will over-value it if trying to figure out every possible use is scary, or difficult. In other words, it gives them room to experiment and uncapture hidden value (for them).
What you need to keep in mind is whether or not paying for this trial and error usage makes any sense. In other words, are they exploring your service? If so, they are likely finding value that once discovered they will be willing to pay a reasonable rate for. On the other hand, if they are exploiting you, they are just farming out their costs to you and this will never end (it always makes sense).
So, try to figure out why they want to stop. If they threaten to stop becuase of the brain-damage/experimentation issue,,,try to find a way to work around that. If they simply feel your service is simply un-economical priced any other way, you may want to expore that more carefully. In this case, you may have a bigger issue on your hands.
This gives you some frame work to think about features. Features which are necessary to explore vs features which allow simply "power usage". May want to treat those features and those stages of using your product distinct.
Apache or IIS webserver
doT.js is a possible contender at http://olado.github.io/doT/
Etherpad server for content creation ( think Wiki or shared Google Docs where those invited can write, update and edit documents for later placement ).
Bootstrap framework - http://getbootstrap.com
Brackets.io by Adobe or text editor of your choice - http://brackets.io
BBEdit - text editor ( commercial product ) - http://www.barebones.com/products/bbedit/
Photoshop - images ( commercial product ) -
databases - ?
Any tips welcome.
Really a nice place to be, with structural editing, an extremely clear and simple routing scheme, functions all the way down, picking and choosing libraries (as opposed to frameworks) as some of the best attributes of this stack.
2. frontend: React.js + Emacs as a code editor
3. quick stuff, scripting: Python + Flask (optionally) + Emacs
Angular is on my "to learn" list, and I'm always working to learn more about CSS.
For data-crunching on the backend: Hadoop 2, Hive, Pig, Impala. Kafka. Storm for real-time stream processing stuff.
Other "go to" libraries / tools:
Lucene for search
Tika for document parsing
HornetQ for JMS / message queuing
Activiti for workflow / BPM
Camel for message routing
On the "to evaluate / learn" list: Spark, Samza
Any post that says "Remote" and is prominent on "Who is Hiring" or "weworkremotely" is getting 100s of applicants per posting.
If you're someone that knows someone that knows... that is the better way at getting a remote position for your girlfriend.
Lastly, you shouldn't treat online customer support as a "by-the-way" type of job. I have found that customer support is sometimes the only interaction companies have with clients and this can become a major lifeline/lead-feed if managed well.
"Careers" usually means HR, and unless there's a job already listed they're of no use.
Disclaimer: if your eyes are actually bothering you in some specific way, please see an eye doctor. Or if you have mild hypochondria, just see a doctor and ask; there's no harm in asking. Otherwise, if you're young and generally healthy and have nothing wrong with your eyes that you can discern, there's probably nothing specifically about your eyes to be particularly concerned about even if you use a computer 12 hours a day. Your cardiovascular health, on the other hand, would probably be something to watch.
I have 20/20 vision, but I have a $10 pair of reading glasses (+1 diopter) that I will put on when I feel eye strain setting in. This effectively moves the focal point of my monitor further away (close to the edge of my focal range), allowing/forcing my eyes to focus differently. After a few hours, when eye strain again sets in, I remove the glasses (hence moving the focal point back closer to me).
I've been doing this the past five years, during which I spend most of my waking hours in front of a monitor. My vision has not noticeably deteriorated, nor do I experience persistent eye strain.
I've worked tens of thousands of hours over the course of 30 years on everything from old, beat up, blurry television sets to crappy monochrome LCD and CRT displays to the latest and greatest of today, and have never once had eye problems beyond brief periods of eye strain on some devices when I went more than 10 hours at a stretch. That's on top of my childhood sitting close to the TV. I always wondered why it was bad to sit close to the TV, and yet OK to spend 8 hours less than 2 feet away from monitors based on the same CRT technology. Is there some secret, damaging radiation that only reaches a few feet from the television? And did we fail to fix it with the introduction of many new display technologies?
2. I build a tool if I want to read some news:
Try setting it to the smallest temperature possible for 30 minutes and then turn it off to see the difference. I have it on all the time (though people working with colors might not be able to use it)
But I have a second pair of "computer" glasses--basically, these are de-rated versions of my normal glasses. With these glasses, I can still see about 10-20 feet away but then things get blurry. The theory is because the correction is less severe, these cause less eye strain when I'm looking at a computer all day.
If you spend that much time using an electronic device (particularly a computer), you can generally afford to do better than the abysmal ergonomics of a laptop.
In addition, if you find you have signs of eye strain (headaches, among others), get your vision checked. Even a small irregularity can cause eye strain and this is a simple fix.
I also use slightly less powerful (by ~.25) contact lenses than I otherwise would. When my eyes get tired in the evening, I switch to glasses.
Oh, and I almost forgot: I also recently started using a chrome extension called "Hacker Vision" that basically makes all web pages reverse-video, so there's even less light hitting my eyes. It takes a little getting used-to, but I quite like it now. I hacked it up locally to preserve color and just invert value, instead of doing a straight rgb invert.
Blue light at night: http://m.theatlantic.com/health/archive/2014/12/no-ipads-in-...
(Yes, I know that this is not what you are talking about. But in my 20s I was occasionally teased for my pallor and my want of enthusiasm for beaches etc. Yet my eyes suffered.)
* Use eye lid wipes (over the counter in med stores) before sleep and after sleep. These unclogs the tear ducts and reduces dryness.
* Have good lighting.
* Wear contact lenses instead of glasses. My optometrist told me that they help blinking much more than glasses. Use daily disposable contact lenses - the new ones feel very fresh and moisturizes eyes more.
* Shower every day :). This again unclogs tear ducts.
The answer was no, so I don't sweat it.
I also use "20 cubed", a chrome app, to remind me to do eye breaks every 20 minutes. My optometrist friend also recommended eye breaks, nearly the same thing that 20 cubed recommends.
I know other people who use only Olark/Zopim free plans because it is too expensive and really want something like it.
So far I've got real content in San Francisco, Santa Cruz, Vancouver Washington, Portland Oregon, Seattle, Boston and Remote work. However I have partial information for many, many other cities that I will post as I get complete info.
For now, that will probably mean Google Drive integration, but we'll probably also eventually do something for working with files in a repository using something like JCR and/or CMIS.
Longer term, I think we'll do something with Apache Wave and the Operational Transformation stuff as part of this whole idea of putting interactive entities in the stream. It's not all fleshed out yet, but some of the ideas I'm toying with harken back to the old idea of "compound documents" and "intelligent documents", or something like Bret Victor's "reactive documents" stuff.
Outside of all that, I plan to finish reading Permutation City by Greg Egan, and Philip C. Jackson's Introduction to Artificial Intelligence.
For this, they abused the memory of Saint Nicholas, who was a bishop, therefore usually represented in red costumehttp://tinyurl.com/odppxql and who is celebrated on December 6th.
They paganified him, renaming him Santa Claus, or Pre Nol, etc; and moved his feat on the night of 24/25 december in order to further disparage Christianity.
Based on your brief posting, you might be interested in more CIO-style matters.
Really, I personally believe the more exposure you have to fields outside of your profession (at least the one you are in for now), the better mental model of the world you want to be part of you produce.
I used to work in enterprise software so I can say for sure that it its own unique bubble, just like startups.
In fact, read this book:
And from reading the comments on HN for a few years, I know that there are others here who work on enterprise software.
"I stumbled upon infoq.com recently and realised I didn't understand half of the jargon..."
The jargon is an ever-changing spew of new names created by marketing people for the same old shit. I've worked in enterprise for my whole career and I don't even understand most of the jargon on my employer's web site.