I interviewed with a company. Naturally they asked for my side projects which I showed them. We talked about technical challenges, scaling, interesting bits of codes - all these kind of things. They were really excited. I passed the interviews and got the job.
Fast forward a couple month, still working on my side projects, some of which started generating a couple hundred bucks a month. My boss started asking me to stop any side projects and put all my time thinking about the company instead. I refused and said that I am 100% there during my work hours but what I do in my private time is not related and even the reason why I got this job in the first place. My boss didn't like that at all and even tried to figure the exact times out when I would work on private stuff to hold it against me. I eventually quit.
If your company wants to see side projects but dislikes the idea of you actually working on them after starting, you are doing something wrong.
Since the 1980s, employment has become a game. Employers don't like it if you realize this and play them right back, of course, but there's not really any other option. Their viewpoint is dominant and essentially universal. In response to monumental productivity multiplication due to technology, they froze wages, destroyed pensions, cut benefits, and extended the work week. They believe if an employee becomes irreplaceable, they have become expendable. Keeping employees dispensable is weighed as far more important than keeping skilled talent. Read books written by managers for managers. Their actions aren't random or stupid, most people just don't understand their reasoning.
And if you only get one tattoo in your life, I highly recommend this centuries-old quote from The Rubiyat of Omar Khayaam: "Make game of that which makes as much of thee."
Consider that we openly talk about Bus Factor as a way of explicitly quantifying the indispensability of certain people; but the solution is not to get rid of them, it's just to train more people on those aspects. Of course there's still some amount of Machiavellian maneuvering, but at least while talent is thin on the ground employees still have enough leverage not to get screwed—not as badly as most non-unionized employees anyway.
I believe that on average non-tech companies treat their employees better and give them more right and freedom.
With non-tech companies you usually sell your time. But with tech companies you sell your brain power, if your side projects affect your brain contribution to that company for sure they don't want that.
So silly of them, I always say this. Companies should stop treating their employees as assets.
And let me say again, there are successful tech companies run by smart people that don't do this! And most employees including the founders are happier because of it.
At SunSed we believe that we should treat business like a passionate music band — making money is not the ultimate goal — the ultimate goal is to see people enjoying your music while you enjoy playing!
Programming all day at work and then spending a lot of your non-work time programming too could put you at higher risk for getting burned out on programming. Spending your non-work time rebuilding old cars probably won't affect your programming at work.
Note that I'm not suggesting that the boss should be able to make you stop programming at home. Many people can program at work and at home and not get burned out, and it should be up to the programmer to decide if they are such a person. I'm just saying that programming related hobbies are more likely to affect programming work than are non-programming hobbies.
My impression was they generally want to see side projects for newbies/recent graduates, i.e. stuff the applicant would have been working on during college or something. Not stuff the applicant was doing on the "side" during his/her previous years of employment. Am I totally wrong here?
So at least for 15-year veterans it does not really seem to be much of a thing. Although I do secretly wish they would discover my 4-digit GitHub user id, that's gotta be worth some kinda programmer-cred right?
Hmm, the way I see it is that side projects usually demonstrate that you have a passion for code outside of your work as well. From a company perspective I would probably also hire someone who is using his free time to advance his knowledge since some of that stuff he is using/learning could also become useful for the company at some point.
I personally don't mean any harm with my projects. I just really like coding, creating things and learning more (my way of learning also being to experiment/build something with technology X). The field is so broad and there are so many interesting things to learn about with new ones getting released almost weekly.
So when the last company I interviewed at asked me "what is the difference between range and xrange in Python?" I just kind of rolled my eyes (on the inside). To me this is like asking a professional translator "what is the difference between 'si' and 'sí' in Spanish?" They were not interested in the thousands of lines of code I have on GitHub for my side projects, nor in a recent project that got me 15 seconds of fame. I ended that interview by saying "I don't think I'm a good match for this job".
Different companies have different cultures. It's good to be able to identify the kind of culture you want to work in, and even better to be able to respectfully decline an opportunity because it doesn't work for you. Don't become bitter and think that all companies want you to be a coding robot, just because Google and Facebook do (or seem to; I'm not sure how many of my friends who work there actually have that many side projects either). There are plenty of jobs that will work for you that won't work for me, and vice versa.
Having interviewed close to a hundred people in a year for a senior C dev position I can assure you that people lie like you wouldn't believe. They cheat with take-home tasks, they show others' code as their own. And that's in the system programming circles, where the level of professionalism is typically much higher than in app/web development areas. We got burnt really bad when a brilliant dude whom we relocated across the country turned out to be the laziest moron I've ever had a misfortune to work with. So you bet we started most of the interviews with fuzz-buzz kind of questions.
For my next job, I've thought about offering to work for free for a week or so as a kind of mutual trial period. I want to know what the entire office is like, what the codebase is like, what the tools are like, and what actually needs to be done. If they want to rip me off and get a week of free work, great! That's exactly the kind of thing I would want to know about a company upfront. And after that week, they should know the degree to which I'm a fraud and be excited to pay me commensurately.
I know this wouldn't work for most potential employees since they don't quit their jobs until they have another one, but I always take a few months between jobs. I wonder how I might actually be able to pull this off..
P.s. I don't believe anyone actually fails fizz buzz.
I think the author is just realizing that this field isn't for them. Tech moves fast and to stay on top of it you have to move fast too. At least for modern tech. Maybe that author would be more comfortable being a COBOL programmer, or an embedded systems one.
Dude(ette), you're still in college. You don't even know what it's like to have a real engineering job yet.
Do me a favor, save this post and look at it in 5 years.
There's a middle-ground to be found, for sure, between OP and parent. I do think it's a little odd to have years of experience in software development and not one "if only ... I'm going to make it."-project.
This is a myth that comes out of drinking too much VC kool aid and watching too many TED talks. Most successful tech is built using 20-40 year old programming languages, operating systems, and data stores. Depth is far more important than breadth.
> My weekend plans always consist of building another project of my own. A place that will let me code all day, give me a nap room, a shower, some salary, and food sounds like a dream.
So what, you don't have any other hobbies?
However, coding home has one - big - perk: it's almost the only way for you to code something from scratch. Alone. You and your code. You and your progress rate. You and your bugs. You and your choices. You and your mess. Nobody to smooth any angle.
I believe coding from scratch - alone - makes you a completely different kind of programmer indeed. But it has nothing to do with passion. Nothing at all.
I think (I can be wrong, still trying to validate that) that "number of projects from scratch" is the metric that tells the ultimate level of a programmer. In other words, if you've almost never coded anything from scratch (below say 40-50 projects), I do believe you are not very good at programming. Conversely, I know from experience (my own) that coding from scratch can make you so good, that you would find Amazon SDEs complete novices (I know from my own experience at amazon) and this before your 30's. It can make you better than principal engineers before your 30's. It can make you so good that TDD, OOP and agile development sounds like novice exercises to you. It can make you a programming master and beyond.
Could you be as good without coding from scratch really? Well, ultimately maybe but not as fast. Coding from scratch is so painful, so hard, so stressful, so frustrating that maintaining code or adding small to medium sized features is a baby step in comparison. Now of course, if you add something pretty big to an existing code base or make a god damn big refactor, you're doing the same thing as coding from scratch basically. The thing is that it's rare you 1) add that big a feature to an existing codebase 2) alone, in a big company.
I'm pretty sure the author has passion for programming, probably as big as anyone else. And balanced life is good for skills as feeling great makes you more creative amongst other thing. It's just that coding home makes you write a type of code that is 100 times more difficult than the one you do in big companies. Paradoxically, I'm pretty sure interviewers don't, at least consciously, know that.
A lot of very talented people don't have side projects, and they don't do any coding outside of work. They don't go to hackathons. They don't bother to learn the newest reactive javascript framework. They go to yoga classes after work. They talk about TV shows they watched last night during lunch.
But they EXCEL at what they do at work.
I can say that this is really a subjective thing. When you make a judgment about these people, it actually tells more about yourself than the person being judged.
When I saw these people who are super talented, but "waste away their lives" just climbing up the ladder I just couldn't sympathize. Also personally I like them but I would never think about starting a company with them.
That's why I understand where OP is coming from, and he's right in a lot of cases, but also I think he should understand that not everyone will agree with you on how you view your life. People like me can't stand not working on my own project, but there are also super talented people who are perfectly fine with living a balanced and stable life. Talent and intelligence has nothing to do with how you live your life.
So, I think no one should judge anyone else. The company who didn't hire this guy may have lost a talented person, but in many cases talent is not what companies need the most.
For large companies like Amazon (which OP seems to work at) this type of employee is the ideal choice since they get the talent AND stability.
But for startups, the concept of stability doesn't really make sense anyway so it's a different story. If I was doing a startup and had to pick the first employee, and was given a choice between a passionate, right out of the college guy, and an experienced and talented engineer who wants to live a balanced life, I would definitely choose the former. (Although the best case would be to find the third guy who's passionate AND talented)
On a tangent, I don't really like the word passion anyway. What makes me a good programmer is not my passion for it, it's my curiosity and motivation. My motivation is a primary factor in my performance, and that probably is 80% influenced by context, and 20% by the content of the task itself (at least for most things that fall within the standard purview of programming tasks).
Finally, you don't mention talent for the new graduate. That is a huge factor. If the new grad is not extremely talented, they will never produce anything of value. If they are highly talented they can likely power through a lot of things, but they also need to make good decisions about what to work on since time allocation is the single hardest thing about getting early traction for a startup. Yes, all else being equal, take the guy that wants to work 16 hours a day and has no other distractions, but if the veteran who wants to work 30 hours a week has better business sense and a smarter idea of what to build and when, then that dwarfs the code quality consideration.
From my experience, all these brilliant, intelligent, and talented people (who don't do extracurricular activities related to coding) have completely different motivations than myself. My point is that it's fine that they do, and it's fine that I don't think that way either.
I'm just saying that there are people who are fit for certain type of situations, and some people--no matter how talented they are--are not fit for certain jobs just because their life values are not compatible with the situation. That doesn't mean the employer who made that decision is an idiot. They're just not compatible, and that's fine.
I take issue with this.
I don't write code in my spare time for fun, I have a family.
When I do write it, and when I do Open Source it, it's because it makes my life easier. It makes it easier to check my email, track what I still need to do on the house, and cut out half my work tomorrow, so I can take some leave and be with my family.
I release it to the wild so that others might benefit, and I can pull it out when recruiters ask to see my code, even if they can't understand it, which is most of the time.
A friend of mine, who works for a well-known technology giant, recently told me about a Linux guru they interviewed and hired. He was amazing in the interview, and they gave him an offer on the spot. When he started working, however, he constantly turned in sub-par work. A couple of months later, one of the members of the team who had interviewed this guy flew out to where he was working, and discovered that the guy sitting in the cube doing the work was not the guy they had interviewed. It was someone else. The guy went through quite an effort to cheat his way into a job, but when he was discovered, he was immediately fired.
If cheating was my thing, and I really wanted to get a job via nefarious means, so I could worry about my job on a daily basis, how hard would it be to pay someone to write a bunch of Github code for me? Exactly, which is why the request is pretty dumb to start with, I think.
For a bunch of smart people, we engineers sure have a hard time figuring out how to interview people and ascertain their skills.
>A couple of months later, one of the members of the team who had interviewed this guy flew out to where he was working, and discovered that the guy sitting in the cube doing the work was not the guy they had interviewed. It was someone else.
This seems absolutely incredible to me (just in the slang sense, I don't mean that I'm incredulous). I mean it's way more than enough for the company to sue for fraud the (highly qualified) person who showed up to the interview, or to sue the person doing it. TBH if I were that company I would likely sue for damages. I mean it's just so blatant and goes so far.
I've never heard of this. So I would be curious if you would reply with a somewhat more detailed write-up (maybe 1 or 2 paragraphs) of anything else you know about that case! But, maybe you've mentioned everything already. (You said a friend of yours told you about this case, so I realize we are reading this third-hand.) I would just be really interested if you could mention anything else you remember.
go to interviews and talk abou range vs xrange.
it might never happen, but when one employer decides to go crazy and try to blame you for leaking code (that you may have written even before joining them) on open source projects, you are going to regret skipping the silly interviews by showing your open source persona to them. best thing you can do is keep it to yourself. then when you really need it, say for a research grant, then go public.
Maybe I've just been lucky, but all have been either okay with it or actively supportive (even when concurrent with in-house development). That being said, I've been careful to avoid open-sourcing projects that I think come to close to hired work.
Skip the novel writing for a month and instead create a 10 hour project that shows potential employers you know what you're talking about. You can use it for years so it's well worth the time investment.
For most jobs you don't have to have a ton of active side projects or contribute to open source. You should have something to demo though.
Most candidates who show their previous code, either written for their employer, or from side projects that are still within the scope of their contract, are violating non disclosure clauses of their contracts. Someone who has sample code to show is likely an unreliable candidate who thinks nothing of violating his signed contracts. Such candidates should not be hired.
No one has ever shown anything more than a nodding interest in them, as they lead me to a whiteboard and ask me to regurgitate a couple of pages from Crack the Coding Interview.
I've been on the other side (the hiring side), so let me give my perspective. It's okay to not have side projects, or a presence on Github. It is perfectly okay to say "I don't have a very active Github account, but let me tell you what I enjoy about programming". "Show me your side projects" is a (poor) way of asking, "show me that you are passionate about your job". I'm not looking to hire the elite, but I am looking for someone who will be happy to come to work.
I too have been on both sides of the hiring discussion. Because anyone can write anything on there resume, there are only two way to know if someone can code. They can write some code of they can show some code they have written. As both an interviewer and interviewer I would rather work with real world problems and discuss real world solutions.
So the choice seems to be between stupid whiteboard processes or portfolios. I suspect there is a reason writers and painters don't have auditions and perhaps that same logic maps onto programming.
For me, the whole idea of proving oneself as professional by being on linkedin has been a biggest turn off. Coupled with this, when I look at some of the people's linkedin profile and the actual attitude and proficiency they demonstrate in their jobs makes linkedin look like a ridiculous circus.
Can you share some examples?
I've contributed bugfixes to GNU less, GNU screen, and GNU emacs, and GNU make. None of those would be easy to dig out references for, and none of them use github.
Some examples from my area include a small grocery chain (5-6 stores) with their own app and a local credit union with their own online banking app with support for mobile deposits via photographs of checks.
After getting a "real" programming job, where I had to deal with design-by-committee, power struggles, keeping up appearances, etc. I didn't dare jump back into recreational programming--I'd never go back to my actual job.
Even now, working for myself, I have to be very disciplined when I crack open the "fun" code, because I know it will be very painful when it is time to go back to the code that pays the bills.
> For every one of those
> folks there are thousands
> of amazing, solid
> developers
This does not match my experience.Also, for every genuine genius in the world, there are a whole bunch of pretty average people who think they're really smart.
Edit: phone auto correct shenanigans
Naturally, I can't open-source any private business code. But if I'm doing my job right, I'm building libraries and reusable code that isn't tightly coupled to business logic -- and there's no good reason to avoid throwing all of that on github, and have it be used by as many people as possible.
Of course there are going to be companies that aren't onboard with the idea of open-source. It's taken a lot of places a lot of time to get to that stage. But are those the places you really want to work?
The assumption that "lots of side projects" is somehow a positive attribute (from an employer's perspective with regard to "types" of engineers) is very much a flawed one.
No, this is nothing more than pity-party because one person wants to fit in and be recognized for something they aren't. I am glad you think your dog business,and art, and running makes you equal to or better than someone who is passionate and dedicates themselves to their interests. You aren't that person. that's okay. but don't try and form the world to fit your views. You aren't the best developer, you don't want to be, move on.
[1]http://www.census.gov/newsroom/press-releases/2015/cb15-33.h...
If the market was worse, then it wouldn't seem so strange. Lots of other professions require a portfolio of work.
The good stuff (including libraries and frameworks) is all in my professional career.
I dislike Pulse because it's mandatory content on "my" LinkedIn page, which I find a bit obnoxious.
So I avoid visiting Pulse stories in order to discourage that entire aspect of the site.
Good luck mate, that's got nothing to do with software development. If you don't love software development then applying for a software job at a software firm probably isn't the best idea. Many small buisnesses need software people who are pasionate about other things. Many of these things include "Running, painting, writing" but a software shop writning software owned by people in the software industry populated entierly by people who absolutly love writing software probably isn't the place for that.