You can say that to yourself at night before you go to sleep, if it helps. But, really, the notebook is not the problem.
My advice is to keep your eye on the ball, and do the big things that move the needle. Security is about layers, and there are a lot of layers that are bleeding right now, all over the industry.
There are also a lot of really good suggestions here for password management, if that's what you want to focus on.
Replace Lastpass with any other secure password manager, and use any 2F auth you prefer, but that's the bog standard way to secure your passwords.
Since 1Password 4 it is possible to have multiple vaults - one of which I share with my colleagues via Dropbox. That way, everyone has access to the passwords if they know the master password for the vault AND have access to the shared Dropbox.
pwgen 20, stored with the security manager.
My second thought was about privacy and that the fact that you might be selling aggregate information about visitors of your clients' sites. I am glad that you addressed that as well.
I am concerned about your attempts to distinguish yourself, especially by your suggestion that it will be "more hands-on, less machine-driven". Since I would want to stop fraudulent/malicious behavior while/before it happens, and since I can review user actions after the fact by myself, I am not sure whether your service would be the best fit for someone who might pay Sift or a similar company.
In this case, Bitcoin price growth made it more popular, which caused more people to start investing in Bitcoin, which further increased its price. The exponential shape of Bitcoin's price curve is entirely normal.
The real question is, does Bitcoin's current price match its "true" value? I personally believe the answer is "no", but that's like, my opinion, man.
Here is a list of people who have employed themselves for one dollar.
I'm guessing that people like Warren Buffet and Mark Zuckerberg spend surprisingly little money for their day to day living expenses. You don't see these guys driving around super cars, sporting a lot of bling, rolling with an entourage and building the largest mansions they can afford.
The 'cap', in essence, would refer only to hired managers.
If it means helping to define and grow the culture I can do my best work in. To work with people I admire and trust(and may even be around for the next thing).. that's better than most jobs anywhere and incentive enough to be honest. It just so happens I also love designing great products, but designing great places to work can be just as fulfilling.
That being said, the money is still a great incentive since you're taking a huge financial and personal risk, but you can still live pretty damn well with $500k/year.
Let's say you take the job and get 10%, and your average salary over the next 5 years is $30,000. You get $150,000 + 10% if the company survives. REMEMBER: Most startups fail.
Or If you're a capable developer you could be earning $150,000/year in a soulless job working for a boring financial institution. Over 5 years that's $600,000 in cold hard cash guaranteed.
Consequently, for that 10% to be financially worthwhile the company would need to exit and give you the $450,000 you've given up + a bit more - so a $4.5m deal. How likely is that?
That's a hellishly over simplified example. All sorts of things make it more complicated. In reality your stake is very likely to be diluted over subsequent rounds. Every round roughly halves what you own. So after a couple of rounds you're down to 2.5% (the good news is that each round should raise enough to stick another 0 on the end of the valuation of course). You might be able to buy in at some point in a future round too. And so on.
And, of course, this ignores the fact that startup life is fun and interesting, which makes up for a lot more money than you might imagine.
Ultimately, what you really ought to do is disregard the equity and take the job if it sounds like something you want to do all day, like something that will get you out of bed in the morning, and you can afford to live without an income for a while. Even if it all fails you'll have had fun.
I suspect Bitcoin will occupy the same space that gold does now, as just another place to store your money during economic downtimes.
The implication is that bitcoin won't function without (lots of) miners, and if miners would be getting more money in an alternative currency where they can use their hardware, they'd leave bitcoin.
I have a BS in Computer Engineering and a MS in Electrical Engineering, with a specialty in VLSI and microelectronics.
While in school, I had to design a microprocessor, one transistor at a time. Great experience, by the way.
I will summarize this process from a Top-Down approach, in case you're a CS major. (Note that engineering is Bottom-Up!)
- C/C++ gets converted into Assembly Language.
- Assembly Language gets converted into bytes.(One or more bytes encode each machine instruction and data)
- Each machine instruction takes multiple clock cycles to execute.
- On each clock cycle, a "microcode" (a.k.a. Register Transfer Language) moves data around.(The order in which data are moved from one register to another is controlled by a Finite State Machine.)
- Each finite state machine is composed of sequential circuits and combinational circuits: multiplexers, decoders, etc.
- Each sequential circuit is composed of some type of memory element : flip-flops, latches, etc.(Sequential circuits can be static, quasi-static, or dynamic. In all cases, they are composed of combinational logic with feed-back.)
- Combinational logic is composed of CMOS (MOSFET) transistors. In the past, we used BJTs... and they're actually making a comeback.
- Transistors are arranged in such a way as to perform logic equations: Inverter, NAND, NOR, etc.(Look up a CMOS Inverter to know what I'm talking about.)
Pretty easy, right!?!
I want to encourage you to look at the following references, in order.
(1) CMOS Digital Integrated Circuits by Kang and Leblebici --the best digital VLSI book ever(2) Digital Logic Circuit Analysis & Design by Nelson et al. --tough book on digital logic, but pretty good(3) Computer System Architecture by Morris Mano --works its way up from logic design (K-maps, etc.) to state machines to assembly language
And now, I'm going to through a curve ball at you: Any algorithm you can implement in software, you can also implement in hardware.
How is this possible? Hint: Think of Finite State Machines.And then look into ASIC and FPGA design of digital filters and digital control systems.
In a computer there are a bunch of these different low level circuitry components which when combined in different ways can be used to produce any functionality. There is a certain amount of the circuitry which is unusable by the programmer which is reserved to know where all of these components are and how to connect one component to another. You can think of this as a program that is built into the hardware which knows how to install and run other programs.
Basically when you write code, there is a program or multiple programs which transforms the words you write into a string of binary numbers which tells the control circuitry how to arrange the free components to get the desired behavior.
In brief, Code is stored in memory as a series of 1's and 0's.
Now the memory is stored as different voltage levels in transistors - 5 volts for a 1 and 0 Volts for a 0 for argument sake (but the voltage to logic value is arbitary).
Now the CPU executes the code by walking along different pieces of memory and executing different instructions depending on the value of those pieces of memory.
There's a lot more. For a start Google 'Introductory Digital Electronics' or 'Introductory Computer Architecture' and this might get you started.
Sunlight Foundation http://sunlightfoundation.com/jobs/
Code for America http://codeforamerica.org/
Engineers Without Borders http://www.ewb-usa.org/
Nexleaf Analytics http://nexleaf.org/contact-us
Now, before you down vote me consider they have been instrumental in making knowledge accessible that generally just couldn't be found. They're likely to be on the leading of eliminating most traffic deaths with their self driving cars, and they're providing free Internet to the world with Loon.
Big and successful companies across the industry are doing great things and having amazing social impacts.
On the less philanthropic end of things, there are a host of organizations solving problems in the biomedical world. From hospitals to biotech companies, there are many possibilities. I've found working in this space incredibly fulfilling, especially given that I've had a chance to see patient cases where we can make a difference.
 http://www.ewb-usa.org http://www.peacecorps.gov
I'm just saying.
Raising political awareness and transparency- http://sunlightfoundation.com/- https://www.govtrack.us/- https://www.popvox.com/
Defending rights in the information age- http://www.fightforthefuture.org/- https://www.eff.org/
Alternative fundraising: helping the little guy raise money- http://www.indiegogo.com/- https://www.wepay.com/
Facilitating online activism campaigns- https://www.change.org/- http://front.moveon.org/- https://secure.avaaz.org/en/
I work at Knewton (not as a software engineer, though we have many of those) because it seems so obvious once I thought about the state of formal education on this planet and how far we can take it.
Knewton is an education technology company quietly laying the groundwork for a future full of digital educational materials (lessons, quizzes, MOOCs, mobile apps, etc.) that offer differentiated learning experiences driven by deep personalization. We've built an adaptive learning infrastructure that will power any learning environment.
The core teams are mixtures of software engineers, data scientists, and teaching experts developing the world's leading models of how students learn and how to help them.
We can predict a student's quiz score before they take it. We can predict whether someone is on target to finish in four months based on all content, possible paths, and a history of student data to compare against. We can recommend the next 5-minute activity that most efficiently moves a student toward a learning objective set by a teacher in a third-party learning product. We can sift through wrong answers to determine whether a student lacks proficiency, disengaged, forgot, or simply encountered a poorly formed question. And we're just getting started.
Education -- K12, higher ed, language teaching, vocational training, professional certification, adult learning -- is one of the biggest industries in the world. We are already partnered with some of the world's biggest names, including Pearson, Houghton Mifflin Harcourt, Macmillan, Cambridge University Press, and more.
We've got jobs in medical research, green energy, and others.
If I can make a suggestion, if you can get a sense for what cause(s) you care about most (education? health delivery? poverty alleviation? something else?) and start to explore the organizations serving those causes, you'll certainly find your way to a job posting here or there for an organization that truly excites you. And excitement is what makes a good match when you're doing work that makes the world a better place. Good luck.
(edited for grammar)
- have as much private insurance as you need
- are debt-free
- can provide for yourself & your family upon retirement
Being financially independent is the greatest gift you can give to those who depend upon you, & to the rest of the society in which you live.
For example, we run a CSE (comparison shopping engine) that, while it is a successful commercial project, we like to also see as helping society by saving people time and money (or, if you're into class warfare, distributing wealth from merchants to customers) and also giving smaller merchants a fair chance to compete against huge advertising budgets.
In the same way, some other projects help society by breaking existing cartels (e.g. taxi apps in cities like Vienna where taxi dispatch fares are extremely expensive and basically negotiated between a few large providers).
On the other hand, there may be projects that pretend to help society by educating about various issues, but in fact are pure marketing web sites with the aim to promote particular vendors.
So if you cannot find anything NGO-related (with acceptable pay!), look for commercial projects that help society in a broader sense.
The danger of skipping this process of thinking for yourself is that you may spend many years in a direction that you may ultimately feel dissatisfied with. That's how conditioning works : parents, teachers, and society teach you what is "good" and "bad" and you basically choose the red pill or blue pill without realizing that there could be pills of many other colours (or that you could swallow BOTH the red and blue pills and go, "Hmm..that's interesting...", as one cartoon based on "The Matrix" shows! :-) )
There are several alternative directions that your thoughts could flow in once you start this introspection. Just as an example : by society, you probably mean, "the society of humans". Why are humans the only society to be helped? Isn't all evidence pointing to the fact that we are killing off the planet, including several species A DAY? Maybe the rest of Earth needs your positive energies more?
By "natural" products I mean organic food, fair-trade products, allergen-free products, green products, and so on. There is a lot of money being made in these markets right now, but it's undeniable that many of these products help some people lead better lives (even if it's just the ability to eat a wider range of foods without worrying about e.g. gluten contamination).
In the meantime you could volunteer as a programmer - it's a niche that is growing rapidly.
http://socialcoder.org UK based but international)
Disclosure: I run it
Edit: Fixed the link
http://www.khanacademy.org/careers or email me at alpert+HN@khanacademy.org if you have any questions.
I have a BSCS and I work in SWQA for a medical device manufacturer. Most of us carry around patient testimonials in our badge pouches that were given to us when we hired in. The testimonials can be overwhelming when you really think about them.
If you were going to code here, you'd want to be good at C++ on embedded systems. There are probably other technologies at other places.
Peoples' lives are often literally saved by what I work on, and at least vastly improved. It feels pretty good, and helps keep my head straight when I have the inevitable encounter with BigCo administrative nonsense that goes with the territory.
 - http://www.donorschoose.org/jobs
Actively Learn (activelylearn.com)Moving Worlds (movingworlds.org)Vittana (vittana.org)
I think working on open source software within a suitable good cause niche would be a good fit. I can't really think of any examples where you could easily find a paying role, but I'm personally inspired by projects like Open Source Ecology, Open Street Map and Wikipedia. I work in the library world, where I try to use and contribute to open source software whenever possible. It's not revolutionary, but it's okay.
After wrapping up other projects I want to begin work on "Carpoolians.com". It'll allow anyone to enter their morning & evening commutes to work and the site will match them up with others around them who are along their route and have the same schedule so they can carpool together.
Sounds dangerous? So is cleaning the gutters and walking under coconut trees but people still do it. In fact Carpoolians is loosely based on Washington D.C.'s Slug lines (hitch a ride with strangers so you can both use the HOV lanes and not be late for work). http://www.slug-lines.com/Slugging/About_slugging.asp Hundreds of thousands have hitched rides with strangers with no oversight what-so-ever and there haven't been any muggings or homicides. And this is in Washing D.C. (double the national crime rate).
Users can enter their pick up time, general locations, return time, weather they're looking for a driver or a passenger or either, and which days of the week they need carpool services. The site will match them up from a list of potential drivers or passengers and they can make a decision based on price and their gut feeling. Trips are paid in cash peer to peer. But the site will keep an evidence trail of who's riding with whom. Members can certify themselves so they have a "clean background" aka no criminal history icon next to their picture.
Because it's peer to peer so you don't have to worry about taxi cab regulations like Uber does, but we also don't have revenue other than government and city grants. There's plenty of other startups like ridejoy.com doing transportation but they just do 1 trip. Carpoolians will focus exclusively on commutes (re-occuring trips) which make up the bulk of traffic.
It's not twitter or facebook but you can feel good knowing you can:
- Reduce emissions which lead to asthema and lung desease (people living near highways & busy roads have increased risk of both including death!).
- Reduced traffic accidents and saved lives.
- Improve productivity and save time helping the economy.
- Reduce pedestrian hits and deaths (2007-2012 over 5,700 pedestrians were hit in Orlando Florida alone.)
- Help low income people get to work without having to wait in the rain for buses.
- Helped people save money, wear & tear on their car.
- Help clear more parking spots!
- reduce government waste spent on driving empty buses back and forth (buses get about 6 miles per gallon) My mother works as a bus operator. Believe me, there is a LOT of waste. Public Transit can be an extremely ineffective, expensive, and inefficient method to transport people. Especially outside of dense cities like San Fran, Chicago, and New York.
If 4 people sign up and use Carpoolians that's 2 cars off the road each rush hour. If 150 people sign up and use the service that's about 70 cars off the road during morning and evening rush hour. It adds up very easily. http://www.howwedrive.com/wp-content/uploads/2010/06/cars-bu... and makes a HUGE difference in communities.
My contact info can be found in my HN profile. As you can tell I've got a few loose ends to tie up with some other projects that I'm finishing up.
It'd not software-specific, but they've got lot of "escape corporate life" jobs (with a focus on the UK).
If the article is really important, I convert it to PDF using PrintFriendly.com and save it to my Basecamp. Otherwise, I save it to Pocket for a snack later.
Pinboard does some sort of Bayesian analysis to automatically tag things I bookmark, but I still add tags manually. I also take a few seconds to copy and paste the first paragraph of the article. And when I need to look up articles on Ruby, algorithms, databases, etc...I just rely on my Pinboard tags
(My public tags are here...looks like I have 800+, which is not too bad for a few years)
Of some high end, long PDF files,say, of books, I glance at gooddescriptions and save a copy ifthe content looks good. For thefamous CLRS, I read through it quickly, saw a lot of poorly donematerial, but did keep a copy.
For such PDF files, my intention isto have them for reference later ifneeded; otherwise rarely do I haveany intention of actually readingthem.
For high quality books I haven't readbut would like to, I have a big butold stack. But mostly those bookswere to help my career, and my careerhas taken another path. For that path,I have essentially nothing collectedbut yet to read.
Also, why you have the cord running down by your feet where you can kick it? Buy a $5 extension cable at Radioshack and plug your headphones into that, you silly person..
What I've since done is use an extension and reroute my audio cables behind my desk and aligned them the the monitor. I then plug my headphones into the extension instead. The cord is messy on the table though
Pay $100-ish and get a quality pair. I've had the same one for about 5, maybe 6 years, still works flawlessly.
As for your second question, always worth trying Kickstarter if you think its worth competing.
I started very early in PhoneGap. Keeping up with the changes as the product has matured has been a pain, but expected. You'll be glad it's pretty mature at this point.
That said, starting with v3.0 the move to NPM has taken development reliability back a few steps in my opinion. I like the new command line interface, I just wish it worked more consistently. I'm sure it will get better.
>Is it generally permissibe for making enterprise mobile applications?
That's what I use it for. It works well for this purpose. I wouldn't use it for B2C apps though, especially for Android because the browser on Android performs poorly, especially for scrolling - very laggy and spastic.
>What features could be missing?
There are a lot of plugins that fill in the gaps. I don't recall not being able to do something a native app could do. I've used, the GPS, photo gallery, camera, enabled "Open In", FileTransfer, media recording, and probably a few other plugins.
>Why doesn't everyone use Phonegap if it can deploy to multiple platforms?
Because there are other platforms that could be used. If C# is your thing, you could check out http://xamarin.com With that you could write apps in a MVVM style and reuse your ViewModels in a PCL that could be reused across Windows Phone, Android, and iOS.
The thing is, mobile apps are now typically an extension of a web app, so if you already have web developers then PhoneGap gets you there faster. The end result will be a good product, but will never be a truly great product.
Check out the video on that page, it uses PhoneGap and the results are pretty impressive.
Phonegap and alike "wrappers" are ok if you have general purpose type of app.
But if you need more optimizations for high performance, or fine grained "under the hood" control - native is the best/only way to go.
Otherwise you're risking to find yourself spending too much time trying to squeeze square peg into round hole.
Basically Phonegap is cool if you want something for both platforms pretty fast and the UI is not too complex (works well for showroom apps for example). However, performance might be an issue (especially since iOS throttles Webkit outsides of safari), and I've heard that you'd more or less need to use pure JS since existing frameworks (e.g. Sencha) would be too slow. Last thing is that you'd generally still need to write 5-15% of native code for your app, depending on its complexity (again, haven't been far enough but got it from devs who use Phonegap for most of their apps).
Although there is still data collection when the article is shared, there is no tracking while the user is simply visiting the page, so it's a compromise in user-friendliness and user-privacy.
I use jQuery to retrieve the counts, since those 3 services have unofficial endpoints for retrieving Share count when given a URL. (Google+ does not. No big loss.)
When you look at something like what eBay is doing with Docker (http://www.slideshare.net/dotCloud/docker-open-stack-austin-...) this kind of service makes total sense. Kudos!
* Multi-platform (Linux, BSD, Illumos, Windows, Mac) * Building C and GoLang :-)
I've gone through a bunch of bluetooth headphones and the only ones I would recommend are these weird looking ones from LG (http://www.amazon.com/dp/B009A5204K/). They are comfortable, well made, the battery lasts forever and the form factor is really convenient to use, you can wear them forever with no fatigue at all, there is nothing that gets uncomfortable. If they ever stop making them I am going to buy another one, maybe 2, to make sure I have good headphones until someone makes a decent replacement.
I've also tried the plantronics backbeat line (http://www.amazon.com/Plantronics-BackBeat-903-Headset-Frust...) and they are OK, but they broke often and while they were comfortable for bluetooth headphones thats not saying much. The firmware seemed crappy, they were flaky to pair and to use any buttons but the volume ones.
I have a pair of Jaybird Freedom Sprints for running (http://www.amazon.com/Jaybird-Freedom-Sprint-Bluetooth-Headp...) because they are water resistant and I can run in them. There is literally no other good feature. Uncomfortable, batteries can't hold a charge and iffy buttons. I unplug them from the charger when I go for a run and plug them back in when I get back. If I break that habit then they are guaranteed to be dead when I want to use them.
I had a pair of Motorola S305's or one of the same line, can't remember. I returned them because they were too uncomfortable to wear for more than an hour or so. I find all the ones with that form factor with a solid band that loops over your ear and then down and behind your head along your lower neck to be like that.
If you are looking for wireless "cans" then you have a lot of great options from what I understand, but if you are valuing comfort, portability and battery life over sound quality then, seriously, get the LGs.
I don't generally endorse products that I consider to be overpriced, but 1) I have no experience with them, so I can't say that they are or aren't, and 2) the list of features is quite impressive (12 hours battery, bluetooth, headset controls, and supposedly fantastic quality sound).
Sound quality is average, but battery life and ease of use is unbelievable. Plus, you can take calls on them. The battery will go for a week or two with heavy use. This is after using them a couple hours a day for the last 2 years. I'm amazed that I don't see more people with these things.
I've been happy with them so far. I also like the fact they use standard NiMH AAA batteries, so replacements are cheap and it's easy to keep a spare pair around.
I'm able to wander around my apartment with no signal issues.
I've been using these daily for over three years straight. They're comfortable for 3-5 hours at a time, and they pair effortlessly with most smartphones. I wouldn't really recommend them for 40 hours a week, but if you just need something cheap and versatile, they're great.
Try these out. These are extremely practical Bluetooth headset. Good battery life, 7-10 hours continuos hearing. If battery is a problem, buy two of them, that's what I did.
Now I run Sublime Text on a laptop that goes everywhere with me and deploy using a proper VCS. I would certainly use ShiftEdit again in future if I was stuck without my laptop and needed to make a few quick changes to something, but I wouldn't use it as a replacement for a local editor.
That said I know of people using them with Chromebooks. Its nice because they can code the same file at the same time.
I like that it's SSH based... I can secure it reasonably well and run any terminal command I need. It has decent code completion (at least for Node), a nice file tree view, can format code with indentations, etc... overall, a pretty nice experience.
The way I have it set up, is I work on a dev VPS (using their SSH). For any deploys, I check in my code, then can terminal into the production machine and git it. So, I can debug through the dev setup, then deploy to production when ready.
A lot of people fail to understand the overheads and limitations of this kind of architecture. Or how hard it is to program, especially considering salaries for this skyrocketed. More often than not a couple of large 1TB SSD PCIe and a lot of RAM can handle your "big" data problem.
Before doing any Map/Reduce (or equivalent), please I beg you to check out Introduction to Data Science at Coursera https://www.coursera.org/course/datasci
But we have recently moved a lot back to mysql+tokudb+sql which can compress the data well and keep it to just a few terrabytes.
Seems we weren't big data enough and we were tired of the execution times, although impala and fb's newly released presto might also have fitted.
Add: down voters can explain their problem with this data point?
Before someone comes along and says "this isn't big data!", I know. It's medium data at best. However, we are bound by CPU in a big way, so between throwing more cores at the problem and rewriting everything we can in C, we think we can reduce processing times to an acceptable point (currently about ~4 mins, hoping to hit <30s).
If processing latencies don't matter much, it's an easier more flexible system to use.
So we are solving the problem of processing raw user behavioural data at scale using MapReduce.
All of our MapReduce code is written in Scalding, which is a Scala DSL on top of Cascading, which is an ETL/query framework for Hadoop. You can check out our MapReduce code here:
In 2007-2010, when Hadoop first started to gain momentum it was very useful because disk sizes were smaller, 64 bit machines weren't ubiquitous and (perhaps most importantly) SSDs were insanely expensive for anything more than tiny amounts of data.
That meant if you had more than a couple of terabytes of data you either invested in a SAN, or you started looking at ways to split your data across multiple machines.
HDFS grew out of those constraints, and once you have data distributed like that, with each machine having a decently powerful CPU as well, Map/Reduce is a sensible way of dealing with it.
We process these events to use it downstream for our search relevancy, internal metrics, see top products.
We did this on mysql for a long time but things went really slow. We could have optimized mysql for performance but cassandra was an easier way to go about it and it works for us for now.
What should I be using instead?
The company is a large Fortune 500 P&C insurer and has a small (30 node) Cloudera 4 based cluster in heavy use by different R&D, analytic and technology groups within the company. Those other groups use a variety of toolsets in the environment, I know of Python, R, Java, Pig, Hive, Ruby in use as well as more traditional tools on the periphery in the BI and R&D spaces such as Microstrategy, Ab Initio, SAS, etc.
But PDF resumes are often necessary for corporate jobs that have a defined process...either a literal one-pager PDF, or something that is basically arranged like one (i.e. you fill out an online form with text fields)...Looking at my Word.doc resume, which I haven't touched in a year...here's what I wrote under the subhead of "Programming"
Uh, OK, that's obviously not great, but I was applying for a general-purpose type of job in which the resume-reader was not a tech person.
However, the "show-don't-tell" parts of the resume were written like this...I don't talk about years of experience, or even how much time I spent on a project...I like to focus on what was actually deployed (and what reaction I got, if any)...in the example below, it should be obvious that my back-end work was more involved than the front-end part, because I don't have much to say other than "I used jQuery"...
SOPA Opera (http://projects.propublica.org/sopa): This was a Ruby on Rails 3.x site I built to serve as an clearinghouse of information on the proposed "Stop Online Piracy Act" legislation, with landing pages for every state and every Congressmember.
I wrote Ruby scripts to gather and process legislative data from numerous sources, including Congress.gov, campaign finance data from OpenSecrets, and the New York Times' Congress API and designed the site architecture so that I could singlehandedly administer it using Google Spreadsheets, while using MySQL as the database.
I also did virtually all of the front-end coding and design, including the use of jQuery plugins to allow users to interactively sort and filter the data.
I initially launched the site as a side project, deploying it as a flat-file site on Amazon S3, where through word-of-mouth alone, it received about 150,000 page views (and emails from Congressional staff) in its first week. When we re-launched it from ProPublica, it received as many as a million pageviews in a single day. The Google Spreadsheets-backed CMS allowed me to easily update legislators' positions on SOPA from the hundreds of constituents who emailed and called me.
(This was on the supplementary section of the resume...so for a situation in which you have to compress onto one page, obviously, bullet-point the most important and most concrete sentences)
It's shitty UX regardless of whether it's a violation of law, IMO.
Original: It's a violation of CAN-SPAM law to put unsubscribe behind a login process. Asking for a password violates the requirement that no additional PII except for the email be required to process the opt-out.
From the FTC:
Honor opt-out requests promptly. Any opt-out mechanism you offer must be able to process opt-out requests for at least 30 days after you send your message. You must honor a recipients opt-out request within 10 business days. You cant charge a fee, require the recipient to give you any personally identifying information beyond an email address, or make the recipient take any step other than sending a reply email or visiting a single page on an Internet website as a condition for honoring an opt-out request.
It's a crappy process to deal with, and can affect you for a critical day or two. An example being that one of clients collected email in a greasy was, and increased their email blasts from 25,000 to 75,000.
I'm sure they wanted to reach more people, but yahoo and a few others marked ALL of the messages as spam due to massive increase in volume from this client.
Advice: Do things in a non greasy way, and while you may grow slower because of it, your users, and their email providers, will like you more for it.
If a service makes me log in to unsubscribe from their spam, they can be assured that it will be the last time I ever log into their service.
This happens to me about twice a year (not a firstname.lastname, but a commonword.commonword. It's like a stupidity-driven dictionary attack). The worst companies I've had to deal with:
Steam - took me multiple emails over the course of weeks, and they actually made me send them screenshots to prove the account was mine. I only went to this much trouble because I have a legit Steam account. Especially funny since I casually told them that I was a hair trigger away from just resetting the idiot's password and hijacking his account.
AT&T - Flat-out refused to unsub me from someone else's phone bills. After several calls to AT&T I finally gave up and called the customer. An AT&T rep actually had the balls to tell me that making me do this was for the customer's protection.
I would also like to see some sort of standard - like email header with link, that would unsubscribe you. Outlook/thunderbird/etc could just show button (probably next to "mark as spam" :)) and you couldjust click and be done. I think google tried something like this, but I've never heard of anyone else.
I know, the "Here's an email to confirm that you hate our emails" message isn't anyone's favorite... but if it helps companies improve their unsubscription mechanisms, I can let it slide.
This means it's impossible for me to unsubscribe from all sorts of things, since 'forgot my password' with a lot of places requires a birthday, access to the phone that's on the account, answers to security questions, etc. etc.
If I click 'unsubscribe' and get asked to log in? I just go back and click 'Report Spam'.
Probably the best thing to do, IMO, is a simple two click unsubscribe - take them to a page with their e-mail address already filled in, and just require them to click "OK" to confirm which address is being unsubscribed.
I'm still getting e-mails from them to this day.
My revenge is training Gmail that email from such senders is Junk and Spam. Eventually Gmail dumps them automatically, hopefully for everyone.
But there's a reason, and to understand the reason, you need to understand something about the law.
You want to be taken off the mailing list of a company that technically is spamming you, violating the law. But if the company can get you to sign in first, you technically become a customer, and they can then spam you endlessly and legally.
But -- a company that requires you to sign in, in order to opt out, is breaking the law. The Can-Spam Act requires opt-out to be readily available and simple (see below). On that basis, sites that require signups to opt out are engaged in a criminal conspiracy.
From the law: "You must honor a recipients opt-out request within 10 business days. You cant charge a fee, require the recipient to give you any personally identifying information beyond an email address, or make the recipient take any step other than sending a reply email or visiting a single page on an Internet website as a condition for honoring an opt-out request."
They're breaking the law. They are criminals.
At multiple gigs, at multiple sites, a significant amount of bounced mail consists of messages sent to long-term undeliverable addresses (in many cases: to domains which no longer exist, and/or have been tranferred, and/or the owning company has gone out of business: think Enron, AT&T's discontinued ISP network, Lehmann Brothers, etc.).
Even if I'd _wanted_ to create rules or write scripts to automatically process the messages, the login requirements generally meant that wasn't possible. Instead, these comprised both a significant amount of outbound mail queues and nondelivery notifications, potentially masking more serious issues (you've got to come to understand what notifications are effectively part of background noise vs. not).
Oh, and some of those domains still exist in some regards (e.g., there's a skeleton crew at Lehman winding down the firm), so you can't just blindly select entire domains.
File under continuing hassles of a conscientious admin's job.
We have a lot of other cool stuff in emails like single click logins, viewing pixels with custom payloads, our open source drip campaign mailer for Django, and much more. If there is any interest, I'd be happy to go into deeper detail.
I just click on "Spam" and, if it continues, set up a filter to /dev/null.
I never log in in such circumstances, I just hit the 'spam' button and that's that. I trust the email service to categorize the further emails accordingly and that's what usually happens.
There may be a way around this, but if no session was required, then couldn't someone just make a bunch of GET requests to the unsubscribe url for each user id and unsubscribe the entire user base?
If I try to unsubscribe from an email list and am presented with a login prompt, I report the sender as spam without an instant of hesitation or regret.
I can't think of how many times I've had to do this. I relaly like georgemcbay@'s idea to just mark as spam. Gonna do that from now on
A while back a forum spammer decided to use my Gmail address to spam forum sign-ups. I got Gmail to filter most of them into the trash (the spammer used a variation of my email address I don't use. Gmail allows variations in email addresses). Afterwards I wanted to clean things up and a lot of the senders require that I log in first to unsubscribe. That they would sign me up without verification is bad enough but requiring that I login to unsubscribe made it just too difficult. So now I just filter everything that was sent to that variation of my email and mark them all as spam.
Lose-lose for everyone.
So there's no reason to ever have to deal with the unsubscribe links in emails. It puzzles me that people that people who use gmail still complain about this stuff. Do people not know about this feature?
If you are still a user (you unsubscribed but didn't delete your account), expect much less mail, but not quite zero.
I also mark such email as spam.
"Low-tech Magazine refuses to assume that every problem has a high-tech solution. A simple, sensible, but nevertheless controversial message; high-tech has become the idol of our society.
Instead, Low-tech Magazine talks about the potential of past and often forgotten knowledge and technologies when it comes to designing a sustainable society. Sometimes, these low-tech solutions could be copied without any changes. More often, interesting possibilities arise when you combine old technology with new knowledge and new materials, or when you apply old concepts and traditional knowledge to modern technology. We also keep an eye on what is happening in the developing world, where resource constraints often lead to inventive, low-tech solutions."
Arctic Startups (Scandinavia) http://www.arcticstartup.com/
Rude Baguette (France) http://www.rudebaguette.com/
Silicon Allee (Berlin) http://siliconallee.com/
Search Engine Land http://searchengineland.com/
3D Printing Industry http://3dprintingindustry.com/
Also check out Quibb, blog of Benedict Evans, Dan Primack's Term Sheet Newsletter
That way, you are not limited by just one blog or site, while also keeping it free from the latest trends of reporting only on big companies.
(While I am at that, I also make sure I filter out pretty much all of ZDNet, CNet, InformationWeek and the ilk).
There's definitely a good bit of Apple, Google, Microsoft stuff on there, but a lot of the Features come from sources outside of the big blogs. Not all, but quite a few.
And this is the current frontpage: Sony, Samsung, QNX, Valve, Microsoft, Linux, Google, Microsoft, Google, Valve, OpenBSD, Apple, Apple/Microsoft, Apple/Microsoft/Google, Apple, Google, Cisco, Motorola, Nokia, Apple.
My memory was that it was more of a site about alternative OSes and the like...
Karen Horney, "Neurosis and Human Growth : The Struggle Towards Self-Realization".
If I was asked to recommend a single book to read, I would recommend this. My 2nd would probably be a Jiddu Krishnamurthi book.
Another excellent book is Influence: The Psychology of Persuasion. It looks at how people are convinced into doing things (e.g. the effectiveness of various methods of advertising), and how you can guard yourself against these psychological mechanisms. The title sounds cheesy, but it is an excellent book full of concrete, interesting examples.
I'd highly recommend both books. While they may sound sort of salesy, both books deeply examine the process of making a decision.
- Currency Wars, James Rickards
- The Shock Doctrine, Naomi Klein
- What Technology Wants, Kevin Kelly
- The Art Of Happiness, Dalai Lama
- Lies My Teacher Told Me, James Loewen
- The Four Agreements, Miguel Ruiz
- Man's Search For Meaning, Viktor Frankl
- Understanding Power, Noam Chomsky
- The New Jim Crow, Michelle Alexander
- Good To Great, Jim Collins
- Abundance, Peter Diamandis
- The Mystery Of Capital, Hernando De Soto
- Pathologies Of Power, Paul Farmer
- Metaphors We Live By, George Lakoff
- Seeing Like A State, James Scott
- Ishmael, Daniel Quinn
- Surely You're Joking Mr. Feynman, Richard Feynman
- Beyond Fear, Bruce Schneier
- The Omnivore's Dilemma, Michael Pollan
- The Birth Of Plenty, William Bernstein
Top Books In Psychology ~> https://www.google.com/search?q=top+books+in+psychology&oq=t...
Top Books In Sociology ~> https://www.google.com/search?q=top+books+in+sociology&oq=to...
Someday I would love to see a contract without a bunch of open-ended boilerplate.
In a lot of cases the clients I've had where I work remotely, were clients that either A) aren't tech businesses and typically don't have developers working on-site anyhow, B) I worked on-site with them for a while, and then either moved or just stopped coming into their office or C) were referred to me from another remote client.
Communication is the biggest part of success or failure when working remotely. Slacking off on communication is a surefire way to bring about misunderstandings and potential conflict. Always clarify everything you discuss, never leave anything up to assumptions or guesswork. Bug the hell out of the other people you're depending on (client, coworkers etc), send them regular update emails even if they didn't ask for it. I've managed a lot of remote workers. If it takes you more than 24hrs to respond to an important email, or you leave me hanging past a milestone with no update, or you miss scheduled conference calls, can't jump on chat in an emergency etc - it doesn't matter how good you are, you'll get fired. If you want to work remote, you need to be proactive about communicating, and very clear every time.
As a remote worker, personally my biggest problems have always been getting a good routine and keeping up productivity. If you're the type of person who is distracted easily (like me), remote work can be challenging from home. I have all kinds of productivity tricks - site blockers, pomodoro timers, certain music, etc. The biggest thing to me is getting out of the house once a day at least, shuffling around my environment I find motivational. I'll go to a coffee shop for a few hours each day and its often the most productive few hours of that day. Getting a shared office / desk space, co-working with friends, working from the road, library etc are also great ways to change things up and put yourself in work-mode.
Hope thats useful advice. Good luck!
I don't really have a favorite story: remote working is not that interesting. It did have a profound affect on my life, though: since I didn't need to work at a specific office, I decided that I wanted to move across the country. Rather than a job opportunity deciding where I lived, I got to spend a few months weighing the pros and cons of various places based on other factors. After 6 months, I moved 3,000 miles away and it was one of the best decisions of my life.
Of course, I probably couldn't have done that if I had any outside, major, long-term commitments (spouse, children, family I had to stay within driving distance of, a house, etc.).
If you're in a similar situation, the first bit of advice I can give is that you're going to find that "nine-to-five" eventually becomes "whenever I feel like working, as long as I get things done and stay in communication with the rest of the team". This means working nights or weekends, but it also means being able to knock off and do something fun in the middle of the day. It's easy to slip into a situation where you're working 9pm-5am or working Thursday-Tuesday one week and then a completely different schedule the next, even if you have a personal schedule (it's easy to ignore it).
If you need a routine to be productive, you need to create one for yourself, and I would suggest doing it immediatelydon't wait until you're all over the place in terms of time. If you already have outside commitments (like making sure kids get to school on time or having to walk a dog) you'll have a leg up, but otherwise I'd suggest joining user groups or community sports or something that has set schedules you have to keep.
The second bit of advice I can give is to use a phone/video chat as much as possible. It's very easy to slip into emailing/texting/IMing/ticketing all the time, but so much is lost in the written word and you can find yourself implying things you didn't mean to imply or inferring the wrong things from people's messages. I've found you can diffuse most sticky situations with a simple call: when in doubt, don't keep emailing, don't stew, call the person. Even a run-of-the-mill problem that might take a half dozen emails back-and-forth can usually be resolved with a simple 5 minute phone call.
* How I got the job
I was working for a normal web shop as a developer, going to the office everyday.This company had an US customer and I was the one who built his entire system. After some misunderstanding between the customer and the company's owner, the customer wanted me to work for him directly from home, and this was discussed with the owner, my boss at the time. My boss agreed and I started working for this customer from home, and continued to work at the web shop for some time until he introduced me to another US company who wanted to hire me for a full time remote position, which I accepted and I still work for this company to this day. A couple years ago I was relocated to live close to the HQ so I could be in the office :)
* What advice I'd give to others
You have to be very disciplined in order to be able to work remotely. You need to pay attention to your time and make sure you work the hours you are getting paid.You may work less hours, but in a worst case scenario, you end up working much more than you are supposed to.
Your coworkers can't see you. You boss can't see you. Make sure you keep in touch and reply to emails in a timely manner. This is key to show that you are committed to the job.
- Working from home
If you can, avoid working from home or try not to make the same mistakes I did, below. The first two months I was working from home full time were great! Freedom! But then it almost drove me crazy. I had nobody to talk to, I'd barely leave the apartment.It was a small apartment, so I kept my workstation in my bedroom... don't do it. Ever.At some point I caught myself working 12 to 16 hours a day. When that happened I wasn't sure if I was working from home or living at work. (And I wasn't getting paid by the hour).I spoke with my boss about this issue and the company agreed to rent a small place for me to work from, since there was no public space or this concept of shared office that I could use to work from.
* My favorite story
Well, I went from a one guy working alone from home to building a team, becoming a manager, hiring more people, relocating to the US and becoming a CTO. And it all started with that first remote job :)
Sorry about the long post. I hope something here is useful for you.
I looked at employers around my area, craigslist, job sites, everywhere. Emails/called to see if they needed any extra help. Started with small contracts lasting a few weeks. Eventually building up a client list to have some stable employment.
It wasn't easy, but love it everyday. I always hated the office politics, annoying drawn out meetings, strict timeframes (work at this time, lunch during this time, etc). Just a lot more flexibility in life.
My advice is stay updated with technology and have quick response times to clients.
Not a developer, just IT support here. I had been contract-to-hire working for a hedge fund for most of 2007. I'd been let go (not hired) based on reasons that I feel were more cultural than based on my performance. Had I been a little wiser and realized that I needed to work harder than everyone else (lack of degree) to prove myself I'd still have that job.
Anyway, I was extremely demoralized and spent the better part of 2008 unemployed. I was burnt out from working long weeks with overtime and didn't even bother to look for a job the first four months. All of my time was spent bettering myself (biking, reading) and relaxing -- I had a big pile of money I was sitting on so it was okay.
I finally started to look for a job in the second half of the year, but I'm extremely picky and didn't see any companies that I was interested in working for. I spent some of this time as a bike messenger but hated being treated like shit by everyone -- still, I think this was a necessary motivator to get serious about my job search.
By November I was going broke. I finally found a couple of things worth applying for. I got the interview call for the job I'm in now when I had $9 left to my name and no prospect of further money coming in -- no joke.
It was a bit serendipitous. Like ssafejava said in their comment "it turned out to be incredibly liberating and probably one the best things that's happened to me, professionally." At the hedge fund I had to constantly look busy even if I didn't really have anything to do. Appearances were incredibly important and being young in my career, it was something I bungled badly. I was also extremely bad at keeping my coworkers from dumping their work on me in the office. That's something much harder to do remotely.
Working remotely, all of my work is judged on its own merits. I can manage my time appropriately with minimal interference from others. I've consistently been one of the highest-performing employees here. My company was even contacted by a major newswire to do a story about remote work and they sent someone to my house to interview me. The story never ran though :(. I don't work any overtime ever. Work-life balance is ideal.
It's been a great ride, but I'd like to go back to working in an office now that I'm a bit wiser -- I would like regular interaction with people again; IRC doesn't always cut it. A mix of office/remote would be best for me I think.
There is a downside to remote work though. I know for a fact that a fair number of my bosses/coworkers are doing drugs on the job. I'm not going to make any judgments about marijuana but we do have some meth users. Management doesn't want to know anything about it, but the performance of some of these people is pretty bad. If I worked for a better company this wouldn't be an issue.
Fast forward a few years, and knowing that I could work effectively as a remote worker.
I co-founded a small company with a guy in a larger city. We ended up setting up an office in that larger city, but I never moved. Travel as needed, but it wasn't that much. Then got acquired. The acquiring company has kept me on contract since then, as a remote worker.
A couple of warnings:
1. A danger of working from home is that work is always just a few steps away. I've lost many hours of my social and family life because I had a thought running through my brain about a problem I was working on and just sat down for "a minute" to look at it. :)
2. If you work for a US company as an employee, the IRS tax credits for home office expenses are extremely unfavorable. Anything you want to count toward work has to be kept completely separate from home. If you store household junk in your office, an auditor can make the case the office isn't deductible. If you have a business internet connection, but it is also used in the rest of the house, you can't deduct the whole thing, only a fraction. When I tried to deduct the expense of building out my home office, it didn't work out to any sort of noticeable impact on my taxes. :/
* Have a schedule and let people know when you are breaking away from it.
* Ensure friends and family know that when you are "at work", they should treat it just the same as if you were out of the house at an office. Make sure they don't feel it is acceptable to just come into your office and interrupt and that you might not be able to just take off on a whim.
* Have a pull mechanism for notifying co-workers of your schedule. People can get irked about lots of e-mails that you are going out for an extended lunch, etc. So set up a calendar or website where people can visit to see if you are available. Using the "Away/Busy" functionality of your IM client helps too.
* Have a pull mechanism for notifying co-workers of your work progress. Make sure you keep your issue management system up to date with what you are working on and lots of checkpoints along the way. A weekly status page similar to a blog might also help. Basically, provide your co-workers with an easy way to see where you are and what you are working on whenever they might need to without being barraged with e-mails.
In 2011 I interviewed Ramit Sethi and wrote a huge article about his system for $1 million+ product launches:
After that, Ramit reached out to me to help w/ his business. I had shown 1: that I do a lot of work to be the best (see the above blog post), 2: we had matching communication styles, 3: he trusted me bc I wasn't some dude that was trying to shake him down for cash, and almost less important, 4: I had the technical skills for what he wanted me to do. Ramit became a 5 figure client.
Since then I've followed the same model. 1: provide a huge amount of value for free, 2: propose recurring work to the client, 3: do a really really good job. My average client provides about $20,000 work per year.
On pricing: for writing work I charge between $50 and $150 per hour, but I prefer to just set a day rate. I became a lawyer a few months ago and I'm leveraging other strategies to bill $550+ per hour. So depending on your skill-set, you can do pretty well.
If anyone wants more info, you are welcome to email me: firstname.lastname@example.org
I was a software consultant for about a year and it was all networking - after all, that's how business gets done in the real world. I never had a time where I had too little work to do. My 'hack' for the whole thing was working in a coworking space, which is IMO the best ~$300/mo you can ever spend in a city that has one. I was lucky enough to have been working in one for more than a year and half before I started working for contract work, but I think you could easily do it in less time than that. When I started looking for work, everyone knew somebody; I never went outside of my space to find any work. It was incredibly convenient and really just worked out easily.
I always advise coders who are looking for freedom, a work environment change, or are newly unemployed to try a coworking space while they figure things out. You'll make a bunch of friends in a low-stress environment, meet entrepreneurs, and make great connections in the community that will get you work. It has worked well for those I know who have tried it - the secret is finding the right space. A socially-oriented space with as few walls as possible is best. You get used to the noise. Take long coffee breaks, go to lunch with people, go to happy hours and meetups. If you let it be known that you're looking for work and others know your skills, the jobs will come to you.
I worked for a racing-to-IPO software dev company in upstate NY that collapsed in 2002, and the connections from that spun out into subcontracting, initially for various local clients (and thus already mostly remote, sometimes on-site). Then I moved to Michigan, but kept doing the same work. Then I moved the France; ditto (included one trip to launch a project on-site, living in a hotel for 10 days... ugh).
It was tricky, working from so far away (esp. when working with a team of developers who were on-site), so I worked solo for a few years (my wife published a well-reviewed first novel, which helped a lot); we had a kid in 2009. In late 2010 I found a dev job with a Cambridge, UK-based startup, here on HN. Now I'm the CTO. All of the developers here are remote.
My in-laws are in Malaysia, so I'm working (and parenting; we have two daughters now) in Kuala Lumpur all this month.
I like this setup; it's sometimes really hard (mixing in parenting is the hard part, really).
More details/advice available if there are questions, when I have time tonight.
I started on VWorker (Rent-a-coder at the time) and found a cool gig that lasted about a year doing mainly research projects for a web design and marketing company. That job fell through, though, and I was in normal kid-jobs for a while (retail, gas station worker, even a couple of stints doing factory work).
Then, I landed a job building a website remotely for a friend-of-a-friend's business. That worked but it was just a one-off gig, not long-term.
Then I sort of accidentally fell into remote work doing some development on a desktop app, but again it was a short-term gig.
From there it was about 6 years before I found full-time remote work again (I'm 28 now and have been with the same company for about 7 months and it seems to be going strong).
My advice is to never give up, and never give in to the pressure that you will get from family and friends. If you want to live the work-from-wherever lifestyle then you have to commit, and the sad truth is that you will probably have to go hungry sometimes unless you get lucky and land a job on the night shift of a gas station (it's not too bad until a hooker bleeds on you, yeah that happened to me).
Remote working, for me, takes a tremendous amount of discipline and it's really a lot of work. But there are great benefits in that I get more time with my family and to do the things that I like. But it also means that I have to be an excellent communicator and that I sometimes have to work when I normally wouldn't want to (a crisis in Europe doesn't care that it's only 3am in the US).
I was a little lucky in that one of the initial contracts was for PHP development, but they wanted an iOS dev so badly (and I had proved myself by that point), that they paid for an iPod touch and Apple Developer license in exchange for me working at the same PHP hourly rate. So basically I got paid to learn the new skill while adding a portfolio item.
Don't waste a lot of time on the contract work portals. The pay is horrible, the jobs are crappy, the people are crazy, and it sucks up a lot of time. If you don't have an existing network though, it'll be a way to get started. The people you find here which you can actually stand, you can use to build up your network of referrals. Offer discounts if they give you a chance to get paid to learn a new skill (but obviously be reasonable - don't get in over your head).
Time management and Communication are key for success. Client management, legal terminology, budgeting, etc are also great things to understand.
That's my story, the short version anyway.
I will say that remote work really isn't for everyone. You have to be very disciplined and self-regulatory. I personally am content most days with only my own company and my kids when they get out of school. But if you are well-suited to remote working, it can be amazing. I have a very comfortable home office with everything I need to stay creative and focused. When I was working in an office previously, I had a shared desk in a room with no exterior windows. Now I have 3 exterior windows looking out at a beautiful Southern Oregon horizon -- trees, mountains, etc. It makes a world of difference.
If you're considering working remotely, I'd suggest a few things right off the top of my head.
1) Personal upkeep is still important.Working from home means potentially fewer opportunities to get exercise. Make sure you take regular breaks and take short walks throughout the day.Also, make sure you have healthy snacks to tide you over during the day. I find that it's much more tempting to overeat when you work in the same place you store all of your food. I personally enjoy baby carrots and celery sticks.
2) Maintain contact with other humans.Grab a drink with your friends, join a meetup group, or befriend interesting people at coffee shops. It's easy to become out of touch when your only human contact are those living in your house and the occasional text/video chats with your co-workers.
3) Set your hours and keep themFor the most part, my employers have just expected me to deliver my work on time. Even so, I still wake up at 8:00 every morning, make my cup of coffee, then get right to work. I take a short break at 10:00, 12:00 and 2:00. I try to stop working around 6-7:00.
4) Communicate wellThe adage, "Out of sight, out of mind" is very true -- when your employer/client/co-workers don't know what you're doing or when you're doing it, it can reflect poorly on you, even if you're actually working diligently. Ensure everyone is aware what is happening and when, and promptly respond to any emails, even if it's just a confirmation that you got the message.
That's all I've got for now. Feel free to let me know if you have any other questions!
I started doing contracting work in Rails while I worked full time in .NET (while going onsite everyday). I also networked a lot within the local Ruby community. When I was ready to jump to Rails full time, a friend through the community was staffing up an early stage startup with remote devs spread across the city. This was a good way to dip my toes into remote work while still maintaining local connections.
After a year of that, I jumped to a larger company to join their remote team of Rails developers (currently about 10 of us are remote). Now I'm pretty adjusted to the remote lifestyle and it would be very hard to let go of it since the impact to family life is so positive.
My advice would be to do as many others have done and start with remote contracting to see how it works. Then you can either convert to full time or find another full time role later if you need benefits. However, if you can remain as a contractor I would generally advise people to do that if your financial situation allows for it.
1) Saved money and quit job for big vacation -- 2) came home but wasn't ready for job so started contracting onsite -- 3) eventually introduced to a remote/part time contract -- 4) started freelancing half time while working on my own projects half time.
Working remotely is terrific! No commute means an extra 2 hours in my day. I split my locations between home, coffee shops, and client offices (when they have offices) for variety.
For anyone who wants to go this route, I recommend building a solid network. The best contracts I've gotten were through former co-workers and former clients. Another route I've used are recruiters/agencies (for subcontracting work). It pays almost as well and there's less of a hassle with marketing and invoicing. I've also tried using the Hacker News Freelancer threads but the response rate usually knocks down my confidence a lot.
I sort of got into part time work via odesk, in addition to a full time day job. Initially the motivation was money, but very soon i realized multiple other aspects of it i.e. i used to work for a large MNC back then as a day job with very long dev cycles and organized work schedules. I learned the skill to work under pressure of a day or two or night and quickly deliver things that JUST WORK or being able to learn some thing needed very fast. Also i got a chance to broaden my skill set a lot by working on any project that interested me. So i still continue to do that on and off. This also provided me a chance to work with several open source projects (vlc, dnrd, kannel, netsnmp) and still make money. So i continue to do it still for all of the above reasons.
How i got into it in the first place? Took tests and scored well in areas i claimed skills in, charged a lot less initially, under promised and over deliverd to earn very good feedback, started with small jobs. Once i got a client satisfied with small jobs, they came back with bigger ones latter. Gradually increased rates and maintained an online profile i.e. public domain code written by one's self among other things. During all this, i even had an option to work full time dedicated to some body for a long time with good money. Just couldn't find enough time i.e. didn't feel like leaving existing job and go in.
With remote work, you get to manage your own schedule. But it is harder to be organized and you need more effort to justify time spent achieving a goal vs when sitting in an office.
The challenge in latter parts of life (when you have young kids) is to be able to find enough time to work when you are physically active i.e. sitting late night on a sofa after kids being asleep with laptop doesn't work very well.
Forgot to mention that this whole effort sort of reduced the fear of being jobless since one becomes more confident about your possible prospects of work whether local full time or remote. For this reason every one should work this way at least for some time in life IMHO.
I started as a trainee for Junior Software Engineer level working with a startup in Silicon Valley.
The best thing about it is that in just 3 months, I was able to learn HTML and CSS, Bootstrap, jQuery/JqueryUI, PHP, MySQL, OOP in PHP, MVC using CodeIgniter, Ajax, Ruby on Rails, Setting up Linux Server from Scractch, SVN, Git, Agile Project Management and a lot more. My mentor is really good teacher and at the same time "to struggle is to learn".
After two years, we have 9 more team members, an office. We have built our own LMS to train more people remotely. We have bootcamps running in MV and Seattle. We also have consulting projects. We are working with other entreprenuers and helping them with their startups.
Gmail, ASANA, Skype and screen sharing tools make the world flat for us. Gives us the feeling that we are working in one place.
The best advise that I could give to others will be 3 things:
1. Have focus and Love your work. If you don't love what you are doing remotely, chances are you will not focus. 2. Company is about the people not the revenue. This is very critical in a remote setup, you must value your teammates as if they are your family. 3. "What Gets Measured Gets Managed" - Peter Drucker. We have daily reports, we measure hours spent and assigned story points to each task.
Story: Ex-employer wanted me back, but were closing local office. I said ok, but I'm not moving.
Advice: If possible, don't be the only person doing remote work. That doesn't work so well.
Advice:* Transparency(what you're doing, when it will be ready, when you're online, etc)* Discipline(isolate yourself from interruptions and keep commitments from the above)
Other than a few odd contracts, my real beginning in remote work was when I worked at one place for a long time, became indispensable, and explained that I had to move away. They had little option but to allow me to work remotely. After that succeeded for many years, I had my experience and things became easier for the next time ... and onward.
I agree with everyone's else's comments here on the challenges and benefits, but would emphasize very clearly that it's not for everyone.
Framework - Flask
Database - MySQL (since I've learnt about it from my university)
Hosting - AWS or Webfaction
No particular choice of infrastructure. Since I'm learning to build a web app from scratch, I'll tend to focus more on getting various pieces together.
This gives you an ability to deploy multiple toy projects without having to fork out $5-10/month which isn't a ton but it's still an expense.
When developing web applications I still stick to a LAMP stack:
Language: PHP on server-side, JS on client-side
Frameworks: Basically any MVC framework
Hosting: Completely up to you
If you want to built a good web application you have to deal with:
Object-orientation, Dependency Injection, MVC, Design patterns, etc.
If you follow the most common coding principles, DRY, Separation of concerns, etc. you'll produce clean, maintainable code.
Edit: Noting somewhat predictable downvotes so I would ask that someone reply with what the significance of a single data point is other than satisfying curiosity? Note also I didn't say it didn't belong on HN or "hey why is this on the front page" etc.
Second you should seriously consider the cost of living, and use something like this http://money.cnn.com/calculator/pf/cost-of-living/ as a ballpark.
Third you should be candid with them, and don't offer a salary requirement unless they directly ask. Instead let them make a first offer. Generally if you offer too high they will simply offer what they had planned to see if you take it, and if you offer too low they will accept and save the extra expense of what they were really willing to pay.
Best of luck to you!
Also, if someone really pushes you regarding your salary expectations, just answer "I want to make sure this is the right fit before discussing salary."
Since you're fresh out of school, check out sites like http://www.salary.com and http://www.payscale.com as well as local job boards. Ask your friends/classmates and anyone with a few years of experience about starting salaries.
Second, try not to quote a salary or range (at least at first). Before that, discuss their plans, where they are headed, your abilities, and how you can help further their goals. Here is a great post I recently found helpful, regarding the 'don't say a number first' conventional advice: http://workplace.stackexchange.com/a/6059/2364
Third, as to what to realistically expect, it depends on where you are located, the industry, your experience/age (are you fresh out of school, etc), and more. If they have really posted that they're paying 80-120k that is a great data point and a great advantage for you to know in advance.
I think that you should value yourself and not cut yourself short. (Looking at the worst scenario) It's one thing to have a bad job but then to have a bad job that pays you cheaply, is worse. The best scenario (on the other hand) is having a good job that pays you well. So think of a WIN-WIN situation.
The first thing I will look at it is the cost of living of the place where this job is. If it is in Cali or NY (where the cost of living is high), I wouldn't mind aiming your aim, however if it is the South (RTP, NC) where the cost of living is low, $60K is not bad.
Another thing is, do you by any chance have any degrees? BSc? MSc? Ph.D?
What schools did you come out of? If you look good on paper and you've done open source work, they'll be glad to pay you as much your worth.
What programming languages do you know and how how proficient are you in them?
At the end of the day, give them a good estimate, and if they are not with it, then try working with them. They did invite you for an interview, so Im guessing they really want to work with you.
EITHER WAY, I HOPE, PRAY & WISH YOU THE BEST.