With regard to your future prospects, it's all about how you spin it. However, recruiters / HR aren't creative folks. They will look at your last job to slot you into your next job; if and when you want to switch back to management, that job is probably not going to come looking for you.
Don't use gmail....
Run your own mail-server, then your limits on email will be how much disk storage space you wish to purchase.
Email as designed is peer-to-peer technology. In fact, it was the first peer-to-peer system for the internet. Return to that world and all your troubles with the "central authority" (google) will disappear.
If you connect other mail accounts to Gmail/Inbox, Inbox will NOT warn you if it looses connection.When this happens in Gmail, you will be greeted with a big yellow warning.
My private mail server were down a day and Inbox apparantly never reconnected to it. Fast forward 10 days and I missed an important mail until it was too late, because I never noticed Inbox were disconnected.
I love Inbox and how easy it is to keep my mailbox clean, but due to this and also because I can't customize signatures to my different mail accounts, I went back to Gmail for the time being.The fact that it hides the signature also annoys me because I always HAVE to make sure it's there by expanding the [+] sign... I simply don't trust it :)
Sebastian Thrun (former leader of Google and Stanford's autonomous driving teams that won the DARPA challenge) teaches a class focusing on the basic methods in Artificial Intelligence to support autonomous vehicles, including: probabilistic inference, planning and search, localization, tracking and control, all with a focus on robotics. Programming examples and assignments apply these methods to building self-driving car like experiments.
There are some great tools which you can use in your everyday life to think innovative solutions to problems. The exercises were incredible fun as well.
Another course which I highly recommend is Learning How To Learn https://www.coursera.org/learn/learning-how-to-learn
It was delivered as a live lecture at Stanford, with presentations by Sam Altman himself, as well as Dustin Moskovitz, Paul Graham, Adora Cheung, Peter Thiel, Alex Schultz, Kevin Hale, Marc Andreessen, Ron Conway, Parker Conrad, Brian Chesky, Alfred Lin, Patrick and John Collison, Ben Silbermann, Aaron Levie, Reid Hoffman, Keith Rabois, Ben Horowitz, Emmett Shear, Hosain Rahman, Kirsty Nathoo, Carolynn Levy, and Tyler Bosmeny.
My favorite presenter is Reid Hoffman, but all the lectures are awesome. If you're a startup founder, you owe it to yourself to watch them all...
They're by Gary Bernhardt of Wat fame, which is also worth a watch for its presentation style and amusing content:
David Malan in the best lecturer I've ever seen.
I'm taking now for a diversion (just started) and expect to learn a bit about quadrotor mechanics, sensors & control systems.
Walter Lewin's Classical Mechanics
for the content and the delivery
However, this would've to include some kind of task review, escrow and automatic payment on successful completion to truly deliver. In other words, you'd have to upend to whole process of how software-related services are provided for the most these days:
- client looks for consultant who matches technical requirements (or often rather has a recruiter look for such a consultant)
- consultant works x amount of hours
- consultant bills client amount x
Therein lies the rub: In the market as of today it's very difficult to market and sell clearly defined and measurable software-related services, which is why most of those services are often still sold by the hour. This is non-sensical for the most part because what client wants is not hours spent but problems solved.
Measuring those problems and their solutions however, still is tough. Being able to adequately productize services it what it ultimately comes down to I suppose.
If you're willing to address these larger issues as a whole I'd be happy to hear your thoughts (contact info's available in my profile).
It might be a way to open commercial OSS to other markets, such as .gov, where standardized contract structures, SOWs, and procurement vehicles are complex to deal with.
For packaged software, resellers like SHI, CDW, EnPointe, etc provide a service where they take a percentage in exchange for handling the paperwork, etc.
I have no problem following regulations and paying for licenses. The problem is getting blind-sided by it. I still don't even understand if I need a RoHS certification to ship in my home state of California. Is there any resource you found helpful ? Thanks in advance.
I graduated from a moderately-ranked undergrad program with a 3.0 in Computer Engineering (the HW-centric flavor of CS), going on 6 years ago.
After graduation, I wanted to get into the embedded field, but was discouraged by the employment options (hardware hadn't yet made the comeback it has been making over the last 3-5 years... 'old' players like Intel still dominated, which wasn't particularly attractive to a bright-eyed 21 year old).
In the interim 6 years, I've been doing iOS development, and believe I've amassed a CV that speaks well to my dedication and work ethic (and is moderately accomplished, at that!).
My question is... how far off am I from being a viable candidate for embedded job opportunities? What kinds of projects/side-work would you like to see to prove that I 'still have it' and/or could sufficiently think on my feet, and get back into embedded development?
FWIW, I have resume experience at Apple, Microsoft, and Google (I actually was hired at Apple out of college to do hardware QA but, once I realized the path from QA to embedded development would be a near impossible feat, I quickly moved on to iOS development).
Thanks! And good luck with your respective products!!
Would you consider sponsoring our community or the contest? We are operating with a budget under 1000$. Both money and products would be awesome :D
 https://2014.spaceappschallenge.org/awards/#globalwin Next Vision (Space Helmet)
Mostly I feel like a software guy that's a bit of a hardware wannabe and it feels like I'd never get to the point where I could build a legit product, and would love some guidance on how to ideate in this space.
This way you are not selling the product you shipped them, so I'm not sure what are regulations regarding this strategy. The product would be clearly labeled as prototype version and not fit for end use.
Bonus points for complexity: The product is intended for children age 6+.
Did any of you attempt any influencer marketing? (celebrities or connectors on Instagram, Twitter, Facebook, Snapchat)
If so, how well did it work and did you pay them (if so what was the model, commission, or up-front payment). Would you do it again?
And another question for the business side of things: where is the line for consumer products that are not meaningful to crowdfund? niche-ness? complexity of installation? does it make sense to crowdfund what is essentially an B2B product?
- Getting early prototypes out there has kind of been decremental for us. Even the smaller bizs are willing to pay higher for a more "field-tested" device. Which seems like a recursive problem ;). Should one spend more time on getting v1.0 done ?- Is there anyone who you'd recommend to handle global shipping and taxes? The way that Pebble had tied up with distributors in different places depending on your country, etc.
(We are building talking posters. One's with BLE play prerecorded messages, and you can interact with them, and the one's with WiFi are connected to the Internet and are more interactive.)
- What is the best way to get traction on the product before launching the campaign?
- How much money you need to set up a good marketing Kickstarter campaign ? Is it needed to use a good PR agency ? (Any suggestions about a good PR agency ? )
Thank you so much!
How happy were you with the experience so far? There are a few up and downsides as drabie had mentioned before.
Taking all of that into account, would you use Kickstarter again if you had the choice again?
Seems like an enticing option, my main concern is how much of the Kickstarter market might I miss?
Are people who buy on Kickstarter a subset of those who buy a finished product, or is it an entirely separate group?
I can see pros and cons of both ways, and I know a lot has to do with my specific market (niche time-lapse), but would love to hear any comments or insight. Thanks!
I'd like to talk to someone with experience interfacing with factories in China about how the current approach could be replaced. Any suggestions?
Also, if I developed this tool-chain, what is the best way to attach to the market?
How worth it is it to integrate with these platforms? Should new IoT devices "cover all the bases", or is it not worth the extra cost & development?
Currently I'm doing an IoT project and I think I may just skip all those platforms. The HomeKit app costs $14.99, a Wink base station or a Nest costs money... Personally I'm doubtful consumers want to pay those extra costs.
Having no experience or expertise in custom hardware design, how would you recommend finding someone who could handle design and production?
When should I be using which sort of funding?
Did you rely on qualitative feedback (by real people or usertesting) or on quantitative results (A/B conversions testing on ad copies and landing pages)? Or did you just go with your gut?
Where do I find people's problems to solve that can be addressed by HW?
How do I get started with hardware? I'm a software engineer trying to break into the hardware field. What resources can you recommend for someone in my shoes?
Ruby: anything written by _why (if you can find the source) He once gave a whole presentation on the splat operator and it's bizarre uses that gave me goosebumps. A true artist. The code twists and contorts ruby in unimaginable ways.
JS: anything written by TJ hollwaychuck (express, mocha, etc...) Express is so simple but powerful, when you read the source you can't help but wonder where the rest of the code is.
Python: anything written by Kenneth Reitz (Requests, legit, records...) This guy can lay down some serious Python and gets things done. He writes the batteries that python should have had included.
Does "beautiful" means "the code is clean"? If so, the Quake source code is "beautiful", while Duke3D Build engine is "ugly".
Does "beaufitul" means "the code is clever"? If so, gcc, ffmpeg and ODE are "beautiful", and Google's Ninja is "tasteless".
Does "beautiful" means "the code is modular" (I mean "open-closed" here)? If so, VLC is "beautiful", and everything monolithic is "ugly" (gcc, Linux, systemd, LLVM, ...).
Does "beautiful" means "the software performs flawlessly"? If so, the Duke3D Build engine, Quake's engine, and Portal's physics engine are "beautiful", while VLC is "ugly".
Does "beautiful" means "the software embodies a clever concept"? If so, "grep" and "xargs" are "beautiful", and the Windows Batch interpreter is "ugly".
Does "beautiful" means "the software is easy to use"? If so, the Windows calculator is "beautiful", while Mathematica and vim are "ugly".
Does "beautiful" means "the software can be twisted in lots of interesting ways"? If so, dynamic language interpreters are "beautiful", while static language compilers are "ugly".
My point is, any piece of software can be seen as "beautiful" or "ugly".
We have meaningful objective attributes at our disposal, like "simple", "clever", "fit", "robust", "fast", "small", "user friendly"... let's use them!
The game itself has an amazingly beautiful vector style. The engine is remarkably tiny, 20kb. I decided years ago if I ever find time to build a game I'd like to architect it like "Another World".
1) Configured via a special DSL (Varnish Configuration language) that gets translated into C, compiled and loaded into the Varnish process via a .so. Perfect combination of expressiveness and speed. You can even inline raw C code in it!
2) Heavy, good use of virtual memory. Varnish allocates quite a lot of gigabytes and leaves it up to the operating system to decide what should be in RAM and what should be on disk.
3) LRU garbage collection of cached objects requires a synchronized priority queue. Varnish people transformed the decades old idea of implementing a heap in an array that every CS graduate knows and came up with a faster, paging-aware solution (http://queue.acm.org/detail.cfm?id=1814327).
Mike Pall is a demigod.
The idea of collapsing a volume manager and file system into one was very innovative and led to substantially more functionality with less code (although some called it a "rampant layering violation" ).
ZFS is a joy to use, dead simple, and arguably the most robust file system out there.
I think that bloat is the enemy of beauty, so we're probably likely to find beauty in software that does a few things well.
What makes them beautiful? They're very straight forward and clearly communicate what they're doing, and how.
And the parentheses in their language of choice softens the visual display of the code -- while the semantics of the language cause the shape of the code to communicate quite a bit about how the machine will go about executing it.
There are no surprises.
In terms of conceptual beauty, it'd be hard to beat Screamer (https://github.com/nikodemus/screamer).
What makes this beautiful? The way it makes a hairy problem seem simple and straight-forward.
If you haven't seen the video it's remarkable:
At the time I had never heard of Binary Space Partition Trees. Beautiful concept for a monument of a game.
It's very rare in a programming language that I can click through to the implementation of a function and actually understand the code I get through the wall of error checking and coercion and OOP gobbledygook to even make sense of what I'm looking at.
But I've never had this problem in Haskell or Clojure. Haskell because that awesome type system makes most of that boilerplate unnecessary, and Clojure because for good or ill, the priority seems to be on clarity of code and letting the Java type system kind of catch a lot of the obvious errors.
Racket, on the other hand, much as I love it, when I go looking at it's internals most of the time it's practically unintelligible to me.
It's clearly explained code that's shorter than you would have thought. Norvig showcases his expertise in manipulating both the basic data structure of the Python language, and a deep understanding of the underlying problem and methods for solving it.
The way it displays and organizes complex data, better than other standards like CSV or XML. Or the things that use tables.
When I first started programming, I had two favorite ways of storing data - INI and arrays. INI for its elegant key/value style. Arrays were just natural because of the way computers think.
I spent months trying to mold these two things together; how would you actually store key-value things within an array? Do you make an array of pointers that lead to key-value objects? (I used C)
JSON is just this beautiful thing that lets you store data however you want. It's beautiful because it doesn't get in the way. Not only that, but it's a data structure you can understand just by looking at it; you'd have to squint to understand raw XML or a SQL table.
I'm not saying my code is particularly readable to anyone but me, but functional style is something that 'clicked' when I fell into it.
LLVM. Being able to fully represent general code in a simple, well-defined, readable text-based format is a far bigger achievement than you would think until you look at what it took to do it.
I happened to dig into its source code for something and eventually found myself amazed at how the entire base is beautifully laid out. It's no nowhere near being naive. It's almost a simple programming language implemented in python. A compiler of sorts with its own abstract syntax tree and stuff. Yet the code is very readable, straight forward and just taught me how to write good python.
 corrected typo.
In OpenGenera, everything displayed on the screen is typed and can be retrieved as an s-expression (like in a web browser):
In terms of his ideas, watch "Always be composing":
And he offers some great thoughts about queues and backpressure in "Everything will flow":
Beautiful software: Java Virtual Machine (the code? could be entirely un-beautiful ;)
- Starts in a sec. - API is the program, the GUI just an interface. - Free but very professional - Shortcuts are ergonomic.
On the other hand, the ideas, algorithms, or the protocols on which software is based often seem beautiful, elegant, or brilliant, at least to me.
A few examples I can think of are: Google PageRank algorithm, Bitcoin's protocol and the block chain, the TCP network protocol, the BitTorrent protocol, Dijkstras algorithm, etc.
Does one thing, does it well with large responsive colorful UI that still displays everything you need to know. Is minimally invasive (debit card instead of bank account verification). Uses your existing contacts, so everything "just works" by default.
My implementations in Literate CoffeeScript:
quicksort  =  quicksort (x:xs) = quicksort [y|y<-xs,y<x] ++ [x] ++ quicksort [y|y<-xs,y>=x]
Here is what the author said about it (and code in general):
"Its an art form, like any other art form I would spend time rewriting whole sections of code to make them more cleanly organized, more clear. Im a firm believer that the best way to prevent bugs is to make it so that you can read through the code and understand exactly what its doing"
The same can be said of the PostgreSQL source.
: http://www.fmod.org/: https://github.com/fmod/ue4integration/blob/master/FMODStudi...
Just read through the design, it's very simple and extremely modular. It learns the lessons from previous related systems and applies them in the new system.
Jumping right into IDE to solve a problem is a way to end up with bullshit, like to write down the contents of undeveloped and undisciplined mind.
"My code is my documentation", or auto-generated "documentation" is bullshit for the same reasons.
(winner of the 20th International Obfuscated C Code Contest)
Nevertheless once you run it, you will have a sweet surprise.
Take a look at the rasterizer, for example: http://git.savannah.gnu.org/cgit/freetype/freetype2.git/tree...
This book might help.
H&P is great, by the way. It was that book and "Cathedral & The Bazaar" that made me quit a Microsoft-only job and go open-source.
A tiny self-interpreting compiler and virtual machine. The beauty is in how amazingly minimal and yet functional it is.
The interface between the physical world and the digital world. They are the lenses of computers as much as its magic.
It has every feature but takes 5 minutes to learn. And it (mostly) seems to do the most reasonable thing every time you do anything.
(plus: there is a working free model and a really useful paid upgrade.)
1. a. whitney2. ioccc.org winners (djb, etc.)
what makes [some] software beautiful?
the ugliness of other software.
most software is large, slow, complicated and bug-ridden.
this makes small, fast, clean software written by competent programmers "beautiful".
taste varies. what is too terse and "obfuscated" to some is pleasingly succinct and manageable to others.
right now there's another post about yann lecun on the front page. he once wrote a lisp-like interpreter that compiles to C called "lush". of all the lisps i have tried i think it's one of the more "beautiful" ones in it's design.
 https://github.com/baskerville/bspwm  https://github.com/baskerville/sxhkd
If you mean code, Smalltalk or LISP
shameless fanboy here
IMHO, the most beautiful software are always games and entertainment titles... After all that is the purpose.
Office 2013? It's very useful! I use a classic menu template and got rid of the ribbon, since the functionality is the same, but in my preferred format. Beauty does not come into play with office...
I can use it for creating beautiful PowerPoint and excel spreadsheets.
Code is never 'beautiful'. It's either concise, well-written and formatted well, or it isn't.
* Build stuff you can show people.
* Don't get caught up in formal learning systems such as courses, lectures and classes. They are incredibly useful, yes, and certainly you should use them, but many people cling to them because they are easier than actually teaching yourself to code, and provide sense of security and accomplishment. When I point out to people that they haven't been actually coding, I'll often be told, 'well, this is how I learn,' and then they go on to show me how little they did.
* Don't fetishize the libraries and tools you are learning now. You will throw away many toolsets in your life: get used to learning new things as a permanent part of your job. I had one coworker who came through a bootcamp, and he tried just about anything to get us to add jquery to our dependencies, because he'd spent so much effort on it and felt so comfortable with it. He was more comfortable adding the entire jquery module to our app than bothering looking up the argument structure of the already included helper method from lodash: not because he was lazy, but because he was scared of the trouble involve in learning something. Neither you nor he can afford that.
I now work for him. I guess it's networking in action.
Just keep doing what you like doing. If what you like doing is coding (and you can keep your work organized, do back and fix things, pay down technical debt as it arises) then you'll have no problem churn out successful projects -- and attracting people and job offers to you on that basis.
This could be what you want. But think deeply about it
Think of luck in terms of a surface area. Sure it exists but you can increase or reduce the size of that surface area with what you do. Dont let the thought of 'its just luck' dis-empower you.
More generally, why do you expect reviews when you say there are many similar apps? Does anything of importance stands out in your app vs competitors? The reviewers get bombarded all the time. Have you focused on getting the user experience to the point people promote the app for you. I'd say this is the focus and once this is happening to some limited extent then push the marketing once you have traction.
Also there is always pay to play. You could advertise to boost user number to get more feedback on the product and gain traction if the UX is a promo-table one.
Make a list of artists (musicians in your case) which you think would like your app. Do some serious research to some contact detail for them. You then write to them and offer them the app for free, through a coupon code. Ask them for feedback. Write casually, like the indie dev that you are.
If they like your app, it's likely they will talk about it, and generate some buzz, which hopefully some blogs / sites will pick on.
And be ambitious with the artist list, send it to top people !!
That being said, I think Zen and the Art of Motorcycle Maintenance is an important read for anyone in technology. It changed how I approach and appreciate technology.
This list is heavily skewed toward self-organization because I work for a company (Zappos) that is currently transitioning to a self-organization model. I thought I'd answer the question about what books I wish my "manager" would read even though I don't have a manager because in a self-org environment, you do have leaders that emerge organically. The main difference between "manager" and "leader" is that managers influence their charges with coersion (even if subtle and unintentional) while a leaders ability to influence comes from the bottom-up and is more meritocratic based on perceived experience and ability by those being led.
Most companies hope to promote the leaders so their manager structure is reflective of the actual effective social leadership structure, but all companies get it wrong often.
* The Mythical Man-Month by Fred Brooks https://en.wikipedia.org/wiki/The_Mythical_Man-Month
* Facts and fallacies of software engineering by Robert L. Glass https://en.wikipedia.org/wiki/Robert_L._Glass
* Lessons learned from 25 years of process improvement: The Rise and Fall of the NASA Software Engineering Laboratory https://www.cs.umd.edu/users/basili/publications/proceedings...
Software engineering in particular attracts some extreme personalities. There are elements of narcissism, OCD, borderline, avoidance, etc. in every organization, even if it would not necessarily warrant a diagnosis. People have irrational motivations. This is often ignored in the rational business of software.
is good for understanding Devops and constant refocus on business objectives.
The second book would be Turkish. so that he wouldn.t wrte like ths in his Emails
If there's a single book I wish everyone had read - not just managers - it would be this. I'd market it as "manual for human beings". You learn how to deal with them, as well as how to be one.
I'm a recent developer-turned-manager [close to two years now] and have always been a voracious reader.
Apart from specialist books of the profession, as an introvert I find that a healthy dose of fiction helps me in my day-to-day dealings with people at the workplace - especially those who report to me.
^^ As such, I'd recommend some well-written fiction. Try The Godfather - always thought it was the best "people management" book :-)
Fantasy [or novels with a touch of the fantastic] would also be good.
War books are also good. Try some interesting non-fiction - I'd recommend WW II books by Stephen Ambrose. All about teamwork and beats reading dry management books.
You should probably stay away from satire, lest your manager think you a d*ck ;)
Before you do any of this, you should probably find out if your manager is in the habit of reading.
And despite the best advice, what a reader gets from any book depends on what she brings to it...so don't be surprised if reading doesn't help your manager :D
Newer Stuff: Nine Stories (Salinger), The Razor's Edge (Maugham), Nausea (Sartre), Siddartha (Hesse), Road to Serfdom (Hayek), The Book (Watts), Design of Everyday Things (Norman), Atlas Shrugged (Rand), Invisible Man (Ellison), Debunking Economics (Keen), Blood Meridian (McCarthy), The Center Cannot Hold (Saks), This Time Is Different (Reinhart/Rogoff), Infinite Jest (Wallace), Calvin and Hobbes (Watterson)
All of these books are well written and have given me some perspective on interesting people/situations/ways of thinking.
That page doesn't do it justice, sadly. This book just gets it about working in teams and larger organizations.
I'm not great at math but I do at least know how to remove the tax from a number.
Unfortunately, I read this book when it was too late for me, but definitely something to read if you ever get into management. The politics section itself is worth the price:
If we choose to bog down the process, add unnecessary steps, or shortcut some steps, the end result is perhaps less rewarding.
Atlas Shrugged's Taggart Transcontinental is the company I wish I could work for. I hate the nitpicking and bad attitude that I currently deal with. I took this job to write code and make money, why do I have to go to all these stupid meetings, read these stupid e-mails, use Slack, answer this stupid desk-phone etc?
'Going to work' is what is killing my work, and nothing I say or do seems to matter. I just want to actually get some work done, seemingly unlike the rest of this entire corp.
Give me my keyboard, my editor, and my coffee. That's all I need and I'll write up what I did at the end of the day, talk to me then.
Phenomenal modern look into the practice of alternative analysis
You'll hear something many managers need to hear about the difference between a "priority" and just something you need to do and the resources you need to be putting behind something to really show that it's a priority (owner, budget, deadline).
Flat Army - Dan Pontefract 
Disclosure: I haven't looked since I last built something using Kafka six months ago, but doing a small-scale project I found it limiting that there was no straightforward, UI-style view into the state of my various servers, topics, etc.
It already has a web interface but there are a few things I would like to add/change. But now I see that it isn't what you're looking for.
So hopefully, Common Lisp.
No Limit Poker is a pretty interesting problem, especially when it comes to reinforcement learning...can an AI learn to adapt to different play styles?
Both of these games raise an interesting question as it relates to how exploitable a reinforcement learning AI will be in games where high risk decisions have major impacts and there isn't perfect information. Will the AI learn to have a more overall conservative approach to guard against these plays or will it itself exploit them.
Battery lasts for 5-6 hours. The laptop itself has survived intense use travelling through India, Sri Lanka, Thailand and Cambodia, including having the corner of the screen melted by accident in the Himalayas.
Haven't found anything lightweight that works better than Lubuntu out of the box (trialed Xubuntu, Ubuntu, Debian, ElementaryOS and some Arch flavours). Getting a dual boot up and running was easy.
My work is mainly fullstack, so I sit mostly between a terminal and a browser. An effective configuration with a tiling window manager is a must with this size of screen and being a TMUX/Vim user helps cut down the number of workspaces I need.
Couldn't recommend it more for travelling programmers!
I got this with 8GB ram and 500GB hdd, I can work on it for 5-6 hrs before the battery runs out but the charger is very light. This thinkpad weighs around 1.2 KG's and it's easy to carry and the keyboard feels great when typing.
If I have to buy a new laptop I would try Lenovo X1 Carbon (the 2016 one, with skylake processor )
EDIT: I got this on ebay for $380 with 2 years onsite warranty, so keep an eye on ebay listings.
Pros: "it just works" (mostly, nowdays, :)), it seldom overheats/has the fan turn on, it makes a good impression (read: 'dress for success'), I like the screen size, its got enough RAM for me to run a couple VMs, Unix/terminal power.
Cons: Price. Accessories.
I adore this laptop, it runs like a constant stream of freshly melted butter. It's so light I no longer have to worry about "lugging a laptop", and most times I pick it up and carry around with just two fingers. It has taken a few beatings filled backpack falling laptop-side-first onto a railing from a height of a half-metre, dropped/slipped from a sitting desk to the floor, thrown across a (small) room and (upon a failed catch) rolling on its side but there's no sign of damage, either in appearance or running.
I almost forgot! When I got this laptop, my typing speed jumped by nearly 50%! I was using a Dell Inspiron (from 2010) before, and although the keyboard on it is terrible for typing, the ThinkPad has really good keys and typing is just such pleasure on it.
I have plans to upgrade a few components as time progresses: bump RAM up to 16GB, replace either the smartcard reader or the WWAN modem with an M2 SSD, that's about it.
One con is getting used to the extra long battery life. I used to intentionally and lazily not pack the charger, which is actually quite light, and then after a long day find myself with low battery and no charger. Another is the small SSD this particular unit came with, but I'm planning on replacing that.
It was a rough Linux install, ( noapic edd=off use a new kernel, Debian has the iwlwifi drivers in nonfree, don't use uefi, touchpad in legacy mode. I used both "grub>" and "grub-rescue>" before it was working) but it does just fine for OS development.
The display has such a narrow acceptable angle of view that you can't angle it to get the center and the top and bottom all with a decent black point at the same time. But I use it for programming, so that isn't too important.
I'm really pleased with the eSSD storage. It is much nicer than USB or SD card and supports ext4's discard option.
The power connector is optimized to fracture the solder connections.
This is my "where is cheap hardware" excursion. I tried repurposing a Chromebook into a computer, which was great until it failed to sleep, ran down its battery, and lost the setting that let it "legacy boot" then ate all my data in the restore operation. On the road, away from Internet and any synchronizing. Grr.
Most of my work is at a proper desktop with as many displays around as are helpful for the task, and I generally use a MacBook as my laptop, but I needed to rotate the extended family laptops a little faster than I wanted, so my wife was sharing mine, but she doesn't share well and I found myself with a laptop deficit until Intel can get a Skylake processor into Apple's hands and then they feel like having a rollout.
Are these low-end machines being used as hobbyist or frontend-only web development? I can't think of any other explanation.
To answer the original question: Thinkpad X220. i7. Maxed out RAM. It's no portable workstation but I can push it just as hard without worrying about it overheating or failing.
For work I really use whatever workstation my employer provides me, but this is my main machine at home for entertainment and personal projects; I hardly power on my more poweful desktop.
Definitely the best machine I ever had: very light, still runs cool and completely silent when on battery power. It is not a speed monster, but it is still fast enough to browse even most complex websites (no webgl though). The screen is notoriously bad, but is more than enough for my needs.
I dropped it about 6 months ago, and it stopped working. After considering buying a replacement (you can get a refurbished x200 for ~100) I thought maybe it was time to buy a new machine, and was eyeing a new XPS 13. Then that evening it powered on again (probably a loose RAM). Never had a problem since
- Form factor is great for travelers. Since it's technically a tablet by TSA guidelines I don't have to take it out at security.
- screen resolution is excellent
- handles VS reasonably well
- battery life can be 5-6 hours with a local instance of tomcat and SQL running
- kickstand is kinda clumsy when I'm working in my lap
- high gloss screen
- loooong wake up time and it's easy to accidentally put it to sleep by hitting a button the side of the frame. This is my biggest complaint. It sometimes takes up to 10-15 seconds to come back up. This wouldn't be an issue but it is way too easy to accidentally put it to sleep. I've thought about disabling this button, it's enough of an annoyance.
Cost ~750 from Dell's refurb store and can easily see it lasting anther 3 years. Bargain!
Unfortunately I chose a Lenovo X1 Carbon - I personally think this was a mistake - despite its build quality it is not very performant.
However, I had an incident where I needed a quick laptop and decided to buy a Lenovo Yoga 900.
Now, two months into using it, I am actually surprised with my decision and it's working fantastic. I'm glad I bought it.
I even wrote up a review about the laptop (http://www.danylkoweb.com/Blog/review-lenovo-yoga-900-13isk-...)
This is my 3rd Macbook. I had a 2009 MBP, a 2012 MBP and now the mid 2014 retina. They're by far the best laptops I've ever owned. My only regret with my current laptop is I didn't max out the RAM when I bought it alongside the SSD.
When I'm at my desk it's plugged into a LG 34UM67 34'' 21:9 ultraWide monitor and I use a magic keyboard and magic trackpad 2.
I love how ThinkPad can enable the workflow of working anywhere and when returning home, just dock it and the charger is already plugged in the dock so that you don't have to struggle with any cable when you're tired, it works out of the box.
I do essentially full stack work but sometimes I do drastically different stuff (security, pentesting, low-level optimization, science, etc...)
My next laptop would still be a Lenovo for sure. But I definitely look forward to Dell XPS capabilities.
Anecdote: A day, my ThinkPad X230 had better 3G coverage than my XIAOMI RedMi Note 3 phone. I mean, I had Internet on my computer, but not on my phone. That was funny.
Pros: It's a great machine compatible with Linux. The price isn't too bad.
Cons: The battery is screwed in so it's not easily swappable. The 1920x1080 display is inferior to the 1920x1200 display on my 8 year-old Dell XPS M1530.
I almost nothing bad to say about this machine, in fact I love it. I run Windows and Linux VMs through VMWare Fusion for work and for personal development. It's nice having one machine to handle all of these tasks.
The one downside is that the battery life can be pretty low depending on what I have running on my Windows VM so I find myself taking my charger with me everywhere nowadays.
Edit: I purchased it refurbished and saved about $400. No issues whatsoever. It was indistinguishable from New save for the packaging which was just a plain white box shipped from Apple. I have AppleCare and have extended it beyond the initial 1 year warranty that came with the machine.
It's pretty badass to type one shell script name that spins you up an supercomputer for a couple of hours.
The main issues I found with the X220 were:
- Heat and CPU Throttling with two 1080p monitors that can make it unusable
- Relatively high CPU usage by bad designed drivers and Lenovo applications (e.g: Synaptics)
- Completely terrible support for Bluetooth and USB 3 (e.g: Bluetooth headset unusable)
Con:Crappy screen. Touchpad isn't great but usablelenovo is hard to trust
Pro:keyboardtrackpointbattery control with TLP utilities. connectivity, VGA, full size Ethernet etc. (try giving a presentation with circa 2003 projectors)
I got about $2000 stipend for a machine and looking for something to buy. the X260 was my goto but it's botched. no USB-C for example. 12.5 is a tad small, 13" would be better. 16:10 or had 4:3 would be awesome but not available. looked at XPS friends who have it hate the Touchpad under Linux.
Haven't had any major (or even minor) issues. I've enjoyed using the trackpad (and learning about it, sometimes by accident!) and the backlit keyboard is nice when I would use it outside in the evening. Light and very portable, far more comfortable on my lap than my previous machines. Only real complaint is the lack of a cd/dvd drive.
I do a lot with this computer, software development, PCB design, photo processing, CAD, and gaming(only reason for Windows). It's not out of the question that I would be running a full server VM, debugging a micro controller, and doing live data analysis at the same time. So I've come to appreciate power.
Even though this is quite a machine, I have performance issues in some applications. A lot of it boils down to the INSANE way that dedicated GPUs are handled today. Nvidia prime is the worst thing on my system. I like to describe it like this, using the Intel GPU is like driving a Mazda Miata, it feels fast and nimble but give it a load and it will just crawl. Switching prime to the Nvidia card is like driving a semi truck, it's not great at the little things but it can plow it's way through really intense stuff. DraftSight runs horribly on the Intel GPU but excellently on the Nvidia. But the window composition with the Nvidia card it terrible, lack of repainting the screen, vsync issues, and general slowness. It's very frustrating. My next laptop purchase will have to be something like a desktop GTX 980 in a laptop so I can avoid prime at all costs.
This may be resolved in a newer release of Ubuntu. I am version locked right now thanks to TI's 32bit Eclipse based IDE Code Composer Studio being a dependency nightmare on newer versions of Ubuntu. I'll find out later this year when they finally release a native 64bit version.
Pros: works nicely with Linux whatever kernel build is used, UEFI is optional and it can be manually configured without hassle acceptable battery life under light load (~5 hours) but dual-core i7 can perform reasonably well if the power draw is not a concern, a nice FullHD screen with fine brightness adjustment (I prefer my screen to have the same brightness as a sheet of paper next to it this is darker than many screens' minimal settings)
Cons: after third time warranty-replacing HDD I gave up and bought a similar one from a different manufacturer slightly too small at 13.3 inch a larger screen plus larger battery plus larger keyboard would be nice
I recently put it on the edge of a bed in a wrong way and it fell onto a plugged USB extension cable the cable apparently suffered more than the notebook, which is nice.
Plus there is support for Adobe software and MS Products if you need to run those.
Dell Inspiron 15 i5558-5718slv; i5-4xxx, 8GB RAM, 1TB HDDWindows 10: Nuwen MinGW, IntelliJ for C++, Java development respectivelyVirtualBox VM's: Ubuntu 15.10, CentOS 7
Pros: cost: $400; 1080p IPS screen; backlit keyboard!; reasonable battery life (4-5 hours?)
Cons: Windows 10 (I prefer Windows 8.1 (my last laptop)); slow HDD (planning to upgrade to SSD soon); fan is not silent
I know there's a strong case to be made for spending more $$$ on a better laptop since "[I] use it all the time" and I can easily afford it, but "parsimonious me" objects spending 2x-4x my $400 baseline price for a laptop that might perform 1.4x better.
This laptop replaced a 3 year old $400 Toshiba i3-3110 laptop with 8GB RAM; according to my benchmark (a clean parallel build of one of my C++ projects) the new is only 6% faster than the old. I think my upcoming SSD install will make a big difference.
And: I'm among the apparent minority of programmers who prefers and requires a keyboard with numeric (for me: cursor) keypad. This requirement "narrows the field" of candidate-laptops substantially.
Pros: lightweight, solid and extremely fast. Battery is good enough for me.
Cons: LTE module is abysmal. People say it is awful even on windows, let alone linux. Keyboard is non-standard, but I got used to it (expect for functional keys).
Downsides: we have found nasty clang and gcc bugs on darwin only lately. Having to use dsymutil sucks, but if you use it it works as on Linux. ranlib sucks. A bit more integration needed, as on windows with similar gyrations.
Positives:* Great 1080p screen* Great form factor* No apparent incompatibilities with Linux* Keyboard is fairly good* Fast despite its fairly low-power CPU* SSD* Battery life
Negatives:* Track pad isn't great* UEFI* Some small dents appeared on the body of the laptop after only a few months (never dropped it or anything)* A small bright spot has appeared on the bottom of the screen
Although I have a few negatives listed I believe the positives far outweigh them. I have really enjoyed using this laptop for development.
As far as development goes, I have a dual-boot of Arch Linux and Windows 10. I primarily do Go and Python in Arch, and C/C++ in Windows.
I apologize in advance if the formatting of this post is messed up. First time posting on here. :)
* Power management and wifi are usable if you can live with needing a couple of tries to unlock and having to 'connect to hidden' to get wifi working. Battery life seems to be the same awake and asleep (not in a good way).
* Keyboard is 10% too small for adult hands.
* touchpad is constantly moving cursor while I type
* touchscreen support spotty, no touchpad scrolling
* typecover keyboard is unusable without a perfectly flat table (i.e. tough luck on trains, airplanes, your lap, or uneven tables)
* high-glare coating on the glass screen was a design mistake by MS, but on the bright side I can see people coming up from behind me. A normal solution to glare is to tilt the inwards of vertical, but the kickstand makes that impossible.
I loved that machine.
Now at work I'm stuck with a Latitude W series. While certainly powerful, it barely qualifies as portable. I hate it.
I'm considering getting a 13" MacBook Pro, for myself, whenever they announce an upgraded model this year.
I wrote a bit about it here: http://josephdaigle.me/2015/12/03/search-for-ultimate-dev-la...
Ready to give up on it around 2 years ago, just seeming slower and slower, I installed a very minimal OS (Ubuntu, but the 40MB USB installer) then added Gnome 3. Great decision. The machine is now very pleasurable, far more than my work PC. I do most development remotely.
Low end Lenovos tend to have quite poor batteries, compared to higher end ThankPads or Macbooks. They seem good at the beginning, but degrade after just a few months.
But the portabiliy and usability of the Dell XPS13 is hard to beat. It took me a long time to get the money together for it and the only thing I regret is maybe not waiting a couple of months for Skylake. But I have no speed issues, even with just 4gb RAM. It's faster than my desktop at home.
Current: MBP 2012Works fine. Upgraded to SSD and 16GB ram.DVD player stoppped working.Trackpad needs adjustment and/or replacement.I run OSX and virtualize everything else.Would buy a MBP as next machine if I can upgrade (none of that soldered on parts).
Pros: Cheap, Effective, runs Linux without an issue [ I'm a fan of full disk encryption ], and reliable
Cons: Keyboard is a little small, Trackpad is slightly more annoying than others I've used
old 13" macbook air 2012 for weekend trips (this was my primary until it got a little too sluggish for daily use)
the air is still much easier to travel with which is why i take it when i don't need full horsepower on the road. the small difference in weight makes a huge difference when lugging it around. both are ssd.
Absolutely love everything about it. The charger, the backlit keyboard, the El-Capitan OS, everything. Everything about this machine is beautiful.
I think it is the best value for money if you are looking for a laptop.
The only thing I miss is my mechanical keyboard. But the trackpad makes up for it, to an extent..
Pros:It runs 2 big monitors, 3 if you count the laptop screen.
More dependable in my experience than Think Pads.
I can get another one in a day if this one breaks or gets stolen.
Has NVidia GPU for running Cuda.
Until I can afford a new laptop.
Simply it gives the expected performance, always.
In the past i had HP notebooks, they were good but not excellent.Mbp costs more that it should compared to other notebooks, but i think it's one of the best machine out there.
Is there really nobody that went for the 16GB RAM version who can speak about the experience?
Can anyone suggest a good laptop / setup for this?
I like it. I'm a back-end web developer(php, node.js, python) that likes using Windows. Everyone else at work is on Macs.
Love almost anything about it. Have about 6 hours of work without charging, it's lightweight and very comfortable for me.
Got a work machine to upgrade from my 2011 13" MacBook Pro, and the extra screen space really helps with multitasking, but it sure is a lot heavier than the 13".
Next one will be Thinkpad P... (in a few years)
New team members go through the board moving cards from "New" to "Done" as they research/answer the questions. In theory, once they're done, they should know all the major information needed to do their jobs. This is a win in both directions as it also forces us to write high-quality documentation. If the person gets stuck, they generally have a good idea who to bug (the most recent author of the page) for clarification.
For a first employee in that particular space, it would be a valuable exercise for them to start building that deck and the associated documentation. It might make the "time to first code contribution" take a little longer, but should pay dividends in reducing mistakes.
What really sucked, and it's probably obvious, is the time when I had to search out all my information: where I was sitting, who to talk to to get ergo stuff (and worst of all when they required a doctor's note for whatever), who my manager and coordinator were, heck who my whole team was.
Not entirely on topic, but the same place also treated me like an anonymous cog: was interviewed for one project, told on my first day I would be on another, ended up on a third for two weeks, went back to another (didn't have anything to do), and then bounced two more times before they ended my contract a month early. Ugh, never going back there again.
Since you are so small, you need to consider all the resources you don't have, likely HR, Reception, Admin Assistants, any history of what information to give a new employee, detailed knowledge of how your benefits work.
This employee will likely have questions, especially about benefits, and IT for several weeks. It's important to be patient in answering those questions, and treat them as high priority tasks, when you have to follow up, even though you're a busy startup.
Consider the background of this engineer. Are they coming from another startup? If so, they know the drill. But if they're coming for a larger established company, take time to emphasize with their transition.
Finally, leverage your strengths. Being small and informal is a strength, as long as your work policies reflect a high-trust environment. Working from home, doctors appointments, vacation and sick time -- these should all be approved quickly with ease, or not require approval at all.
Break the ice. New environments can be scary. Start a conversation with a joke. This is also good for the company, everyone remembers their first day.
Give them a face book with job and interests. This makes it easier for them to blend in.
Other things not specific to work environment should be ready to go. Their e-mail account, phone (if applicable), or any other virtual or physical materials used on a frequent basis.
As others have suggested, prefer something like a 75/25 social/engineering split for the first day. Introduction to team members and others, company processes, goals, HR stuff, go to lunch, etc.
1. Where's the bathroom?
2. Where's the fridge, etc. What are the typical patterns for people. Do they bring lunch, go out as a team etc.
3. If they are new to the area, tell them where to find all the normal things. Food, Grocery, Drug Store, etc.
4. Tell them when they will get their first paycheck, if the amount will be a partial amount tell them that. This gets looked over way too often. Tell them the pay cycle, and any benefits information have it ready and laid out. Being a startup you likely have little to no benefits, so remind them of that as many times stress of changing or getting a new job has people flustered.
5. Make sure you are ready for them, have all the documentation, legal requirements and stuff out of the way.
6. Make sure you tell them what to bring their first day so they don't feel unprepared and so you don't look disorganized.
7. For engineers, give them their machine and have them set it up. Make sure you have all the necessary access codes and have granted their accounts to everything they need before they get there.
8. Have 3-4 small tasks they can get started on, but tell them your expectations with them. If you have a lot of potential places they could contribute have a few ideas in mind and talk to them where they might want to fit in. That is awesome for most people.
9. Tell them up front, you are still figuring things out, so they shouldn't be afraid to ask questions. Make sure they feel comfortable asking questions. People who have been in startups are far more likely to already be asking questions, but just be prepared and don't get defensive etc.
10. Have fun, take them to lunch day 1 or 2. Make it their choice, sometimes day 1 is a little overwhelming and they may want to wait on lunch for a day or two so they can get the feel for things. It sometimes helps them to get away for 30-60 minutes the first day or two so they can gather thoughts, not everyone, but some people are like this.
11. Warn them of any land mines. I had a team lead one time tell me day one, look we all work really well together etc, but here are 3 things that a lot of people around here hold sacred. His point wasn't to say not to challenge them, but just to get the lay of the land first before I stepped in something unknowingly. This isn't typically an issue in startups as much.
12. Tell them where to park their car if they are driving. Or where they can put their bike if they rode in. etc. More important in larger cities, but really important.
13. Give phone numbers and email addresses in a list for anyone they are likely to need to contact. Don't rely on them searching it out in Outlook or some directory someplace. Print it out and hand it to them, or already have emailed it to their new email address.
14. Your a startup, have some sort of swag to hand out. T-shirt, mug, stickers etc. This isn't an absolute requirement but it makes people feel welcome. Yes, some people will say that's stupid, but usually these are the same people that will later say geez, they didn't even have X when I started.
I could probably go on, but this is long enough. Sadly I have learned most of these from being on both sides of the table. And you won't believe how much less stress you feel as a founder when you knock most of this stuff off the list and have it ready for them day one.
BTW -- Congrats on getting your first hire!
In your case it may not apply if it's really your first tech hire.
I guess spending some time to give a tour of the industry, then of the share of the market you're going after, then of your product.
On day 1, I got a cubicle, a chair, and an ID badge.
On day 2, I got a trash can.
On day 3, I got a phone.
On day 4, I got a computer.
On day 5, I got network access.
Moral: If you're the hiring manager, don't be on vacation when your new hire starts. If you're going to be, make sure that someone is going to handle it for you.
Full disclosure: This was a decade ago, so I may have the exact details a bit off. It's pretty close, though.
They should be given something to do, even if it is busy work initially, like reading whatever existing documentation you have on your setup. They should also be given the means and clear direction to do that work. For the next week or two, their official or unofficial lead on the team should answer questions and check in every hour or so on what progress has been made on the initial assignments, inevitably they are missing some password or permission or explanation of how things are set up at the company.
The key is to have everything ready for them, be open to questions, and helpfully check in every hour or two for the first few days to see how things are going. Usually I have 100 questions, but after question #30 figure I should pace myself before bothering the lead or manager again with yet another question. But if they approach me in a helpful, friendly, unrushed manner and ask if I have more questions or if I am stuck, then I will get all my questions out faster.
Can I tell you something which is much, muuuuuuuuch more significant than the $25 or so you're contemplating spending on tax preparation software? It's highly likely that you're running a sole proprietorship (Schedule C). I am not sure from your phrasing that you are aware that you are doing something which can be categorized as a sole proprietorship. It is to your advantage to characterize what you are doing as a sole proprietorship given some plausible assumptions about what your cost structure is, because you will be able to deduct all expenses reasonably required to run the business from the revenue of the business (the number shown on your 1099-MISC) prior to paying taxes on the profits only. What the IRS considers "reasonable and necessary" is not what most natural humans would consider reasonable and necessary.
If you do not feel like reading an awful lot in the next month, bringing every receipt and credit card statement you have from the last year to neighborhood accountant will cost you a few hundred bucks and save you, plausible, 10X that in taxes. This is the bread and butter for lots of small accountants and tax-preparation shops, and they're reasonably good at it. WSJ? Deductible, always, 100%. Phone bill? Guesstimate how much of it was for business? 60%? Good enough; let's find all twelve of them. Do you have any other phones? Think hard. Internet accounts? Same story. 40%? Great. You're in software? What's your computer? When did you buy it? 2 years ago? Did you deduct it then? Nope? OK, so we're going to depreciate it, that will be another $600 or so of which we'll allocate $400 to the business and $200 to you personally.
I thought I was pretty good at this. My accountants are much better. We both color within the lines; they were just aware of entire other coloring books that nobody had told me about. (Most recent example: the Japanese government is sending me a wire for $600 because this year, instead of filing as exempt from paying sales taxes because all the products I make are exported, I am filing a return which shows me paying $0 in sales taxes on all $0 of my Japan-source sales. What on earth is the difference? Well, if you're an exempt business, you can't claim back sales taxes you paid against sales taxes you owe the government. If you're not an exempt business, you can. If you paid more in sales taxes than your tax liability, the government wires you the difference.)
I recommend https://ilovecoding.org/ they have interactive courses and lessons, you can get hold of how the real world applications are made, what goes behind the scene while building practical web apps, mobile apps, games etc.
Your code is going to look horrible at start but don't give up. start dipping your toes then move all the way. DON'T procrastinate and don't give up. Good luck
But don't just do courses. Have a project that you've aligned with the outline of the course you're currently on. Small at the start, then getting bigger, over several years, integrating a new skill but still applying older skills, so they don't get rusty.
And as well as the front- and back-end site, get dirty with the OS level too. The ins and outs of configuration files. Perhaps contribute to mailing lists, or have a StackOverflow profile where you start by lurking, then getting interactive. Expect to get criticized, sometimes rightfully, sometimes from armchair engineers, and learn from both - the knowledge and the tact.
As novicei stated, don't wait. Get started now! :)
You'll get out of it how much you put into it. If you spend countless hours learning and then building projects you will learn new things very quickly. Don't get caught watching tons of videos & screencasts while not building anything.
You can read 1,000 books about surfing but when you go to surf you'll fail repeatedly. The same goes with building software. Read code and then write code 5x as much.
The courses are good for beginners, but to take it to the next level you need to build a sizable app and get it to production. There are things you'll learn from putting a project to production that you wouldn't learn otherwise. Remember: software is built for users & actual people, not just machines.
Looking to do big 4 consulting? A degree will go a long way.
Looking to dive in at a start-up? A portfolio probably carries more weight - regardless of a degree.
There are always exceptions, but that's on par with what I've seen.
You can't reliably learn all of this from an online course, although it might be a good starting point, you become a good full stack developer after years of experience.
If you want to learn Python I recommend https://pythonspot.com/introduction/
"Learn by doing."
can you become a developer with no CS degree? sure as hell you can! my formal education lies in philosophy, economics, education, fine arts and spanish language and literature. i never took a single computer science university class. at least, not formally and on campus. yet, i have a decent career as a developer, serial tech entrepreneur and i was even teaching programming and CS. but, i was reading a lot, had my share of tutors, worked a lot, worked a lot with some of the world's best developers, took some online courses, tried many things, failed many times, some other times even succeeded
before becoming a developer, i had a successful career as a graphic designer and a photographer. luckily i was always a geek and loved technology. i've literally faked my way into my first developer (front-end) job at one silicon valley startup more than ten years ago. i was doing plenty of web design work and even more corporate identity work back in the day. my coding was rusty and definitely non-web given i previously fiddled with programing in the 80's and early 90's. the above mentioned startup's cofounder liked my visuals. he asked me can i do their UI, coding included. i said ''yes''. while making sure he liked what it looked like, i was studying CSS and HTML pretty hard. front-end back then was a pain in the ass to deal with. but, boy, did i get it wrong. so i literally had to rewrite all front-end code two days prior to deadline. well, somehow i've made it. was offered a job. accepted it. then i was hanging out with some of the brightest programmers, learned from them and on my own. as business grew up and they were onboarding designers (very few designers could code back in the day and transition from print to web was painful, while majority of developers had no clue about design. there were no tools/frameworks/libraries/templates/themes available either), i helped designers understand tech concepts, while i was helping both developers and designers communicate with each other
except for some hardcore computing stuff, you really don't need a CS degree. for stuff more advanced than developing database-driven websites and apps, having domain expertize is way way more useful than holding a CS degree
Second, I can't sign off on the Aeron it's a good chair - but it's far from great.
Personally, and through experience of owning all of these chairs, I would go for the Herman Miller MIRRA 2 chair -or- the Steelcase Gesture chair. They are impossible to beat from an ergonomics standpoint not to mention the countless hours of studied and research that went into these products.
The lumbar on these (all) chairs is negligible, cushioning technology is sound, the extendable lower thigh support is pretty sweet, butterfly suspension adjust to your posture and has a solid suspension / cushioning effect, build quality is A+
We have Mirra 2 and Gesture at our office, originally we started with the Gesture and they are fantastic and more "luxurious" but the Mirra 2 is the current star. They are expensive ($1.2k each) when fully equipped. But they are worth it.
The Aeron chairs we used to have back in the day were given to people to take home and I have two of them in my garage. Don't get me wrong - they're good chairs - but the Mirra and the Gesture are simply better and not by a little.
Don't sit for 13 hours per day. Otherwise you'll be in physical therapy for 13 hours per month. Signed, someone who used to sit for 13 hours per day.
The problem I've read of is the hard "lip" on the front of seating area which according to some reviewers tends to cut blood flow from the legs for longer sitting periods.
The Embody should be fine in that regard (from what I've read, but I haven't tried it - neither have I tried the Aeron).
I ultimately decided for the "Steelcase Leap" and from my experience this was the best investment I have ever done in furniture.
Before the Leap I was unable (and unwilling) to go sit at my computer after leaving the office - now if I get backpains while at work I cannot wait to get home and into my chair. This may not be the case for everybody but for me it reliefs my backpain.
If you're going to invest in good chairs, give the Leap a spin.
What you need to understand about a quality chair is that while it should be very comfortable, you should not expect to experience nirvana when you sit in it.
Often the prices of these chairs have people expecting some magic to happen when you first sit down. On the contrary, it shouldn't feel "superlative" when you first sit in it, it should just feel comfortable. In fact, it might not feel special at all. It's only later - 4, 6, 8 or more hours later - that you'll realize the chair's true value, in that it has become an extension of your posture.
The mark of a quality chair is not that you will notice it when you sit down, but rather that you won't notice it after sitting for a long time.
Other than that, ensure that you purchase the correct size. I have never found any problems with the Aeron's lip, but I purchased and customized my own, so I was able to make sure it came in the correct size. Offices with pre-assigned chairs may not offer this luxury.
In this context, I've been using the Aeron for 2 months now and surely I have no regrets regarding the investment; it's something from which you extract value every single day and you can measure directly how it affects your output. As investment, I would put it right next to the MacBook and resistance/strength training.
When you properly adjust it, the chair feels like a custom tailored suit or glove around your back - it's there, but it's not intrusive.
I'm frugal about most stuff and things - but, in our job even a slight placebo have the effect to benefit you orders of magnitude.
Beware, next coming is the search for the perfect keyboard :) Hint: just jump to HHKB2.
If you answered: Yes, Yes, No to the questions above, consider the cool and breathable rear-end attire that is the Aeron chair.
As to the hard front hard front lip, that to me sounds like either poor adjustment or wrong chair size. There are 3 sizes to pick from and offices often don't contain all 3 to fit the worker's size. So, you may end up sitting in a larger chair than appropriate.
Herman Miller's Aeron seems like a good chair but personally I think the arm holders are not needed as when coding I put my arms on the table. Also I prefer less wheels because they are in the way.
Little joke, perhaps this chair: https://upload.wikimedia.org/wikipedia/commons/5/5e/Emperor'...
But sit in one for awhile and you realize one day that the chair isn't bothering you like every other chair does after a few hours.
And they last forever. I have 2 and the oldest I bought used in 2002.
Grab a good deal on a used one.
You'll save significant money in lost developer hours, physiotherapy costs, etc by buying good chairs (and checking that the rest of your setup is ergonomic too) right now.
Personally I don't get on with the Aeron, which is why I have the Herman Millar Mirra instead.
1. Research chairs beyond the aeron, I personally prefer the steelcase leap
2. Check out some furniture liquidators (especially if you're in the Bay Area), these chairs are built to last a decade
Focus on those specifics when hiring and not something like specific technology stacks. Once you narrow your talent pool to that philosophy and then narrow it further by tech stack you may end up with so few people to choose from that you will end up with people that match the tech stack but not the philosophy and they won't work out long term.
It's SaaS, which means web application, which means your tech stack really doesn't impact success||failure. So choose smart, agile learning people that match your work philosophy and they can learn whatever stack needed. You say "we" so maybe you already have a team - in which case they may not agree with your new philosophy or they may not want to change tech.
Make sure the compensation, HR stuff like benefits, etc. match this philosophy. By that I mean make employee contributions tied to something like profit sharing, equity, bonuses, etc. That can help motivate and enforce the delivery of value priority over hours worked (aka here's a salary for 40 hour weeks).
Also have legal/HR stuff figured out in case - employment laws differ by country and if someone decides to work/travel through Europe for a couple months, does that have tax/finance impacts on your company or employee? Do they need a work visa? How will internet be funded? How will pay be handled for work locations with different costs of living ... will it be "fair" if someone chooses to live in SF area and gets higher pay than someone in Belize?
These are all rhetorical questions but if you have this stuff figured out, people might want to hear the approach.
I worked for a Fortune 500 company that began allowing people to work from home. They decided people working from home should do an extra 20% or 30%. It was a number pulled out of thin air and based on nothing whatsoever. The result: People began working 10 or 12 hours a day to hit that number. Then they had to make some changes to the program because this was in violation of labor laws.
So, my point is that if you have ridiculous expectations and want too much out of people, then what you propose is going to be a problem. But if you structure it well and hire the right people, this has a lot of positives to it.
I do something similar. I make money doing "gig work" and I can work where I want, when I want, and this works far better for me than my corporate job did. But you will need to be careful that you aren't expecting too much for too little, basically.
You could learn from their success
One idea to overcome this is: you work by small increments of features. You put each feature on the table and people bid the time to complete it. You assign the task to the one with the best reasonable estimate and with good track on the delivery - depending on the risk of failure. People that don't offer reasonable estimates can be replaced. The thing is that you know that without understanding the code, because someone else will bid less time and do it.
A variant is per-project, "last feature is free". After each feature, you pay the previous delivered feature, based on hourly time counted by the programmer. When you find the bill to be overcharged, you just pay the previous feature and close the collaboration. You might guaranty to pay a reasonable but fixed sum, in advance or at the end, to reduce the risk of the programmer to not be paid after too few tasks.
People should also have some stock or bonuses by global performance, otherwise they would not be also team players. And more than this, they should share a minimum motivation to be proud of the global outcome, for example because of how their work is making the world a bit better. Money if not always enough for people to really want to make it work.
I assume by you posting this that you come from a more traditional setup? Office of a bunch of local people? I suspect the biggest surprise you will hit will be with
> No geographical boundaries. You can be anywhere on the planet. You can be traveling through India as much as I care.
If you get async communication down, you can work this. However for async communication to work well, I find you need to all be on the same page. If you start in an office with 6 people then go move apart.. you still have the same brain space and same goals. If you just hire 6 people in 6 random countries? You will all have VERY different worldviews and ways to work and end goals in mind. One guy may just want to make crap work. One guy may just paste stack overflow code. One guy may like to write really high performance code. One guy wants to write very concise code. etc.
So I think your biggest challenge will be getting all people on the same brainwave. Even with a meeting or two a year in person, what keeps you looking for the same goals? In person we generally hire people very much like us. Which is good from the same brainwave view, but bad for a diversity point of view. Your worldwide company will have a lot of diversity and unique ideas, but also a lot of people fighting and clobbering each other as you head for disparate goals.
So my best ideas is maybe start with 1-2 local guys, get a tight bond... and then use them to hire future guys, to try and keep the culture the same as you grow.
2. Usually you need some kind of process and task dependencies. What if there is a total bottleneck of "progrmmaing tasks" or "QA tasks" does someone go a week with pay to "work" for you?
3. what about benefits? Is this 1099 or W-2 work?
4. What about team based contributions? I help team mate X out with something is that a task? Do I get any contribution from it?
5. Who pays for training and education time? reviewing code?
6. What kind of rate are you targeting? What would my monthly pay look like?
7. what about strategic types of contributions. I know guy or I want to take sub market and run with it? or did you ever think about xyz? If your piecemeal-ing the work is there an allowance for that?
8. is there an opportunity to "buy-in" via time or contribution or even real money and get % of the profits or company?
9. how does the system evolve over time? fix problems? do "workers" have a say?
Sorry I'm really into the idea of marketplaces and using technology to build hyper-efficient eco-systems.
Reading this always feels wrong to me. Face to face communication is higher bandwidth than text or video.
What I do: Entire laptop is linux. Full disk encryption enabled. When I leave home in the morning (I almost never take my laptop for walkies), I hibernate the laptop. When I get home at night I enter the long FDE password.
Long term I hope that I remembered to hibernate on the day when a burglar takes the laptop. I don't much care if I get it back, I just don't want the data to be used for ID theft.
To be honest they kept it a secret. I bought a painting of the timeline of computers from an estate sale from the dawn of history to 1970 and the people in computers and they don't even mention Turing and the team he worked with. Even if he did a lot of work in the 1950s, he isn't mentioned. The British government kept his work a secret.
So because it was kept a secret the public did not know about encryption and code breaking that encryption using computers until much later.
A lot of government employees aren't tech savvy nor are politicians or leaders. They might never heard of Turing. If they did read a history book on computers it might be old and not mention Turing and encryption.
It is up to use to educate them and remind them that encryption is important to keep our data safe and that a backdoor in encryption means weak encryption.
Of course Snowden claims that the Patriot Act and Prism were made to collect data via domestic spying, and used for politics and power and control. They see encryption as a threat to their power and want to eliminate it.
But for 50% off I would get an ok to use their logo on your website and marketing materials, be used as a case study, get quotes/reviews to use from their CTO/CEO, etc . . . also note they can not disclose a discounted rate and maybe spell out that the discount will reduce 10% each year, and also that plans/pricing can change in the future.
As long as their subscription to your SaaS won't cause any profit loss with the discount I think it's a win win.
As far as strategy can you add plans or plan levels that will protect you from absorbing their high use of your SaaS or put in place a growth in price as they grow use your SaaS more?
Sounds like a win win, as long as you're not losing money on their subscription.
I'm definitely more likely to sign up for a SaaS if I see a big name logo using it.
Congrats, good luck.
The stakeholders at the customer likely don't have the authority to say 'yes', it's very likely they the request will have to go through their legal team (who probably doesn't care about whether the project is successful or not) and a marketing review, and while they may be happy to help you jump through these hoops after the deal is closed, they may not be able to get it into the contract.
*I deal with many Fortune 100 companies and work this into almost every deal, but it's rejected most of the time.
A discount of two months (17%) is very substantial for a one-year prepayment (your customer can maybe get 1% a year from keeping that money in a savings account). You'll need to evaluate whether it's worth it to your business to give them even that discount.
- If you're financing your company off credit card debt at 20%, than giving someone 17% off to get money up front would actually save you money.
- If you're suffering desperate cash-flow problems and need money tomorrow to pay your operating expenses, then it might be worth giving someone a steep discount to get money today.
- If it costs you $500 a month in expenses to provide the service, then a 50% discount on $1000 would wipe out all your profit.
If you're getting adequate revenue from your current paying customers to keep the company going, you may not want to give that kind of discount. The problem with giving them a discount is that they'll expect another discount when the contract comes up for renewal in a year. And they'll tell their friends that your company gave them a discount, so future customers might also ask for one.
If you do end up giving them a discount, you might want to negotiate additional terms that are advantageous to you, such as being able to say on your web site that this company is your customer, and being able to use them as a reference for other customers. That might be worth something if they're a billion dollar company with some name recognition.
> (Heres a replicatable strategy for making several hundred thousand dollars with a single email: start with a revenue base of $X million a year. Email all customers asking them to switch from monthly billing to annual billing, in return for some incentive you can offer, which can range from a month free to 15% discount to Hey, you can book the expense this calendar year, so that will save you money on taxes. Feel free to try this with any client or day-job of yours if theyre already at scale We made so much money the accountant/bank called us to complain will make for a great bullet point at your next contract/salary review.)
50% discount is my expectation. Lately, my place had been scoring those kinds of discounts even on hardware.
Determine what you think is a reasonable deal for any customer who prepays. Write it up as your new policy. Notify theses guys you can give them X off. If they have a problem with that, they are free to go elsewhere.
I really need to start collecting links, because I have read too many stories and stats on exactly this kind of thing, but I never know how to find them when this type question comes up. Do not let a big company make you their bitch. Set boundaries. Let them go elsewhere if they do not like it.
If they need your service, they won't leave. If they don't, they will, but that teaches you something about your market. Either way, you win.
Btw: two months is substantial, it's a 17.5% discount.
A discount because they're a startup and putting trust into you and your startup. If they do well, you'll do well. If you screw up they will be impacted.
Also, you may be able to learn a lot of from them and help more people love your product.
I'd counter with like 25 to 30% for one year and a bit more for two years. Try to find a win-win even if you have to get creative. Perhaps they allow you to use their name as a reference on your website or some other consideration.
These sorts of negotiations happen all the time. Enjoy them :)
Good luck with the SaaS, sounds look you have some momentum!
Just try to avoid the slippery slope of giving everyone such a discount (and I hope your pricing plans mean that this presumably large customer is getting a discount on an expensive "Enterprise" plan that's only sensible for larger groups).
- reference statement?
- mention on their blog?
- referals to other billion dollars startup?
- case story?
Anecdotally speaking, I started off working with no life. There is a lot to be said for time periods where you shut out all else and just focus on your business, in fact the YC programme gave good impetus to only "write code, speak to customers or exercise". However doing this for extended periods is a great way to burn out.
Initially any time I took off I felt incredibly guilty about. I however came to the realisation that stepping away, even just for an evening to see friends, allowed me to recharge my batteries and I was able to recoup the lost time and then some.
A company is only really the sum of its people, and if those people aren't firing on all cylinders then it will become apparent. In short, lead a balanced life.
We are running our business for ~3yrs now and just realized in the last few months that none of the all-nighters or skipped holidays actually made a difference in the end. So just from my personal experience I'd say you should actively plan and maintain a private life from the get-go - If you don't you are not "better" then another person who is just working to finally reach retirement...
The reasons why people say you can't have one are two-fold. There's a very good, very valid reason, and there's a very bad, toxic-to-your-business reason.
The bad reason is that people who start companies are very competitive. This means they feel they have to be seen doing more, whether it's working longer hours, making more calls, writing more code, going to more networking events, and so on. Sometimes this produces value for their business, but more often it's just "busy work" that isn't actually adding anything useful - going to a networking event and only talking to people you already know is a good example. People who do that sort of thing are the ones who brag about putting in 80 hours a week. Don't emulate those founders.
The good reason to cast your life aside is that very often a startup is doing something ambitious that takes a lot of work to get off the ground, but only has funding to last 6 months. Consequently everything has to be done in that time, which leads to putting in loooooong days. If you have a low burn rate and a long time you can afford to go slowly.
If you take an honest look at the hours people are putting in and realise that half of it could have been done better, or automated away, or just not have been done in the first place, then you'll understand why "number of hours worked" is a pretty awful measure of effort.
Countless of people have started small and stayed small. I think it always been like that traditionally. You start a business, you grow it till its big enough to serve your niche market, and you pull in few million every year for the rest of your career life without much effort.
I used to work in manufacturing industry and this model is more prevalent in their whole supply chain. You could own 1 factory with less than 20 staff, producing 1 type of component(bolt/glue/bracket etc) and be done with it.
However, if you define successful startup, as multi-million dollar revenue organization, that's another story.
That would also apply to having a "life". Live your life in a way that a few people will greatly love you and miss you. Rather than spend time with a lot of people who kinda enjoy your company a little.
There's certainly enough time in an early stage startup to treat your closest people well. I have a great lunch with my wife all the time. I bathe my daughter, play bubbles, and dance with her. I mentor young entrepreneurs.
Do things that people will remember you for after you're dead. Or at least the things they'll remember 5 years from now.
Long answer: My startup (founded in 2000, sold in 2014, still going strong) took a huge toll on my personal life, but it was a 24/7 operation (a website), I was both CEO and lead programmer/CTO and I'm terrible at delegating work and inspiring responsibility in people. Also, web technologies did tend to fall apart more easily back then and my experience with that was limited.
In hindsight, all of these factors contributed to the (largely unnecessary) 100-hour-weeks I pulled in the first couple of years. So, brief advice: if your startup is a 24/7 operation (it doesn't have to be, there's plenty of other opportunities), you will likely be putting out fires around the clock. If you can, hire reliable people early on who can do this for you and put your mind at ease. You will be thinking about your startup a lot either way, but you can surely do that while enjoying your weekend trips or whatever.
Businesses come and go. So does money. But you are not eternal. Figure out what you want and then work backwards from the end goal to the present. Set yourself small goals. Be patient. Learn to forgive yourself for mistakes l. And above all, just try to be happy.
Must you have no life to run a successful business? No, but you must make sure to have a life. Whether you have a business or not.
Best of luck OP!
The reality is that if you are a small team trying to take on a huge market and maybe creating new technology while other major companies are trying to so the same then you need to get a better solution into the market faster.
So can you do that and also have "a life" however defined?
On the other hand if you have some niche of a niche kubernetes plugin for WebGL and are a team of two college students with no overhead. Yes you probably can.
If I had more money I'd definitely maintain way more of a life than I do now while continuing to work on my startup. Granted, I didn't really have much of a life prior anyways (remote job coupled with high expenses), so maybe that makes it easier since I'm used to it.
The timescale might seem crazy, but it's incredible what time does for your ideation and strategy. When I first started, my plan was basically a mid-sized SaaS business. Over the years both internal and external forces evolved that into a methodical blueprint for a company on the order of Magic Leap. Six months in I figured out trying to charge money for the product was probably suicide. Six months after that came the start of a radical shift to a far more ambitious plan that built off the original in a very natural way. Had I artificially constrained myself to a fixed time window, or otherwise quit, I'd have never discovered any of that.
The whole thing is very much like an obsession, something that occupies virtually all of your idle thought. Kind of like a nagging splinter in your mind's eye where you can see precisely what you want, the only challenge being to make it manifest.
Taking a fat paycheck as a software developer and everything that comes with it has always been tempting, especially with hindsightbut I know that the second I do it will be the end of my project. Giving up on that would be unbearable, worse than deathat least until I've seen it through regardless of the outcome.
Melodramatic narrative aside, to answer the OP's questionno, I don't think you must have no life to do a startup, and it's even preferable that you have one. For most people, the reality is just that time or financial constraints conspire to ensure that they don't.
There are many paths to a successful business. Some successful people sacrificed their families, health, relationships, etc., and others didn't. Some unsuccessful people also sacrificed their lives in pursuit of success.
If you rather want to do your own thing, I always liked the rule of thumb from the book "Start Small Stay Small". Put 100 hours into the product and 100 hours into marketing. You can do this in a month or two and then you'll see if it works or not and more importantly: You will see if you like working on this thing or not.
Or to put it another way, a passionate entrepreneur would ask the opposite question in some zen philosophy forum, "Must I spend time away from my startup so I appear to have a balanced life?"
The true entrepreneurs are obsessed with their startup. They don't want to spend time shooting the breeze drinking beers with their buddies. They don't want to sit still on the beach staring at the ocean. (At least at the early stage, but maybe later when they're Bill Gates' age.) They'd rather program one more feature on that web page. The startup work is not an "obligation". The business startup work is who they are. These types of passionate people are rare and most people really can't relate to the startup founders' focus.
The obsession and singular focus on startup work is similar to musicians' obsessions with composition, athletes with sports, etc.
Sure, you'll want to hear an answer of "no you don't have to give up your life" and many people will give you that answer but realize that you're competing with entrepreneurs who don't even ask it. The startup is their life and therefore, there is nothing to "give up" when they're working on it all the time.
EDIT to the downvoters: can you list examples of "successful startups" as that phrase is understood by the HN readers where the founders work 40 hours per week so they could have a "balanced life" outside of their business? Is there a YC company in the portfolio where founders are working just 40 hours? Did I misunderstand what the poster is asking? Isn't he asking about founders who run the startup and not the line employees?
You absolutely need to work hard and devote yourself but that doesn't mean you cannot have a life.
It might not be the 9-5 "life" all your friends are enjoying but how about sacrificing 5-10 years of hard work building something amazing in exchange for an early retirement while everyone else settles in for next 40-50 years?>
The most recent JS trend is to complain about how trendy JS is and how hard it is to keep up.
Since then, we've navigated away from Meteor to our own custom stack that better suits our needs.
Bottom line, it's freakin awesome for prototyping real-time web/mobile apps in a VERY short period of time. There are a few companies rolling it in production, though, it just depends on what you require.
Given the amount of frameworks, libraries and `the correct way` of writing proper code and using the `correct` tools, I think meteor has his own place in the world, but I guess, there is much noise, and I guess they are not hot anymore.
Few years ago, meteor was the next big idea of the web, then:
then no libraries anymore, as we can do it manually.
Even JQuery seems to recover and become a nice cool alternative :)
Basically, with skimping on details, they're really increasing in the future of the framework right now. You can check on their blog for more info and skim their accomplishments, upcoming releases, and current goals in the pipeline.
It's far away. Deepmind and chums are building systems that are very good at tuning some variables such that we end up with a set of calculations that perform well at tasks with small, well-defined input sets, fixed rules, very small sets of legal outputs, and simple measures of "goodness". A chum of mine working there says that this view isn't uncommon within the company, and that many people there believe that the current path is not leading towards any kind of general "intelligence", and isn't meant to. If we weren't already stuck with the term "AI" we would be calling these something like "rapidly iterated and highly-tuned algorithm sets for very specific, low-information, low-interpretation fixed-rule systems".
Don't get me wrong; they're impressive, and they've got the potential to be useful tools for certain kinds of task. Are there some tasks currently being done by humans that a suitably tuned set of automated calculations of this nature could do better? Sure.
The remainder of the rest of the human race will be in full support of this state of affairs, as some (small) portion of the AI will be charged with public opinion manipulation and securing/hiding the resources of the small portion of humans mentioned above.
If you want to see the future, imagine a golden Iphone, "Siri, stamp on this poor person's face", forever.
While extremely impressive, AlphaGo is still a one-trick pony. We won't be coppertops for a while, yet.
But what does a future look like for humans when we're no longer needed? As it has always been, that depends largely on the compassion of those humans with great wealth and power.
Good thing there aren't flying weapons to worry about. Oh wait...
If a computer and/or key is compromised, well, I just nuke all the related keys.
I don't understand the desire to manage a large number of keys since the attack surface is pretty clear:
A) The machine is not compromised and the key is safe.
B) The machine is compromised and the key should be replaced ASAP.
C) As a byproduct this forces obsolescence of keys in the ~3-4 year timeframe and you really should be swapping out keys every so often anyway. This keeps you from ignoring this fact for a decade :p
The downsides (besides possible security implications of trusting someone else's code to manage your keys) is that tools like rsync and scp won't work straight out of the box. You have to either alias ssh to ssh-ident, or provide the path to ssh-ident yourself.
I prefer a single ssh key for almost everything. It's on only 1 laptop that I use daily. There is no protection on the key itself, but I always lock the laptop screen (password protected) when I leave the laptop alone.
I have other laptops/devices, usually with different keys. My "master" key is also on my 2nd laptop. Although I could have a passphrase there, I still prefer no protection except screen locking. This said, this 2nd laptop never leaves my home, where only trusted (and "innocuous") people can touch it.
Now I just put an identity in ~/.ssh/id_rsa and use ssh-copy-id to copy it over. Dead simple and easy. One of these days I'm going to replace the key, a script to remove ~/.ssh/authorized_keys before re-running ssh-copy-id will do the trick.
Though, these days, I'm trying to move towards making servers cattle rather than pets. I don't want to ssh into a server at all, just use configuration management to interact with them.
If you don't do this, any root user on any machine you connect to can use your ssh-agent connection to auth to other machines.
* When you update your trusted GPG certificates (adding new auth keys, revoking others) the authorized_keys files get updated at the first execution of monkeysphere on the server (you usually put that in cron together with gpg --refresh-keys). So you can rekey without having to change manually all the SSH accounts you have.
* You do not need to recompile or patch SSH and it is compatible with other keys not fed by Monkeysphere.
* The GPG PKI, although not perfect, has quite some features; in particular, it lets you somewhat easily manage different keys on different computers, generate and revoke subkeys independently. The web of trust also helps you when trusting keys from other people.
* Monkeysphere can also be used for SSL certificates, although that is more difficult and less supported (and also less useful, now that we have Let's Encrypt).
* Monkeysphere's development appears to be a bit stalled; not the ideal situation for a security-related thing.
* Monkeysphere does a good job, but it should not be trusted blindly. There may be a number of situation where external conditions may break the game; e.g, if you do not realize there is a misconfiguration, a revoked key may remain in authorized_keys because Monkeysphere is failing at updating; if you trusted Monkeysphere to do everything correctly, you would be exposed without knowing it.
* The GPG PKI as well is not perfect; for example, key management is complicated with many subkeys (for instance, you cannot give meaningful names to them) and the web of trust mechanism does not support "scoped trust" (i.e., giving different trust levels for different things you want to do).
* Monkeysphere only works when the remote host is a Linux box where you can install Monkeysphere and have it update authorized_keys via cron. No hope to manage GitHub keys or things like that (unless they introduce support, which seems unlikely).
I did do quite a bit of open source projects both on my own and joining into other projects (LyX is a good match for a math degree :-)
If I had to do it again I'd learn statistics properly now, I find this is actually a useful part of mathematics for what I do these days (failure analysis and data mining). I believe that if you do your own software projects it should be good enough to be hired.
Why am I recommending this? Because I started with software engineering. And now that I want to do data science I know nothing. I find it really hard to get started with free courses online. I lack foundation in strong stats, linear algebra and etc. It is just so difficult to acquire these from books for me.