I made the jump 5 years ago and have worked for a number of companies since, on 6-12 month contracts. The money has jumped each time, such that I’m on what I consider to be silly money now for the job I do — Ireland, not US.
The work is always interesting for at least 6 months and I learn a ton of new stuff with every contract, much of which I use when building my own products (Downtime between contracts).
Every aspect of contracting is better than being permanent: the ability to jump ship quickly without affecting my hireability, the exposure to so many different technologies and different ways of doing things, the constant freshness of new things and new people, the ideas that come with seeing how different teams create and build different software, the ease with which you can step into new contracts (often one 30 minute interview as opposed to multipel interviews tests and take home projects for perm roles), and of course the money.
In terms of learning, each contract is like spending 3 years in a permie job, and I’ve had 7 in the past 5 years.
However, I've recently started considering returning to permanent, primarily for one reason. At the age of 50, half of which has been in a software development career, I find being a code-monkey -- even a senior one -- quite unsatisfying. I would like to return to leadership roles I had while I was permanent, but they are nearly impossible to find as contracts.
Two years ago, I went one step further and moved from SF Bay area to Saigon, Vietnam. I've had a variety of tech jobs while here, but I am currently consulting for two primarily US based companies.
My expenses are almost nil (compared with before) and I live a very minimal lifestyle (own and purchase very little). I plan on going nomadic in the next couple months (I've never been technically homeless) and driving a motorbike around Vietnam, Cambodia and wherever else I want. I can work during the week and travel on the weekends.
I'm so much happier with my life. I was doing it wrong before.
If it works for you, great, but there's a lot more to it than people in the business will say.
Derek has mentioned basically all of the positives of contracting - the downsides are that shorter contracts (three months, or anything less) tend to be either quite dull (very routine work that nobody else has the time for) or unpleasantly intensive (desperately trying to ship a disaster); in some organisations you will be treated as "just another bloody contractor" by the perms, who will know you make more money than they do and hate you for it; you may get less responsibility than you would have as a perm, or generally "less say"; and if you end up contracting for the sort of company that you'd hate working for as a perm, it will be just as bad as a contractor, except you'll probably care even less for them because you will know that you can quit very easily, which is, itself, a bit demotivating.
I transitioned from contracting to running my own consultancy, which is much harder work, much more stressful, and with a lot more risk, but quite a bit more rewarding (for me personally - definitely not something I'd recommend to everyone).
Starting a new contract is just like starting a new permanent job — hand in your one month’s notice and move on. Though, I tend to just quit, take a couple of months off, and then find the next contract, but most contractors move directly into other contracts with no down time.
Dev jobs in Ireland are predominantly corporate enterprise software — very few start-ups. This means Java, .Net and front end Javascript roles are most common. I actually landed my first .Net contract after a 10 year career as a C++ developer and learned on the job.
There’s an idea out there that contractors need to be expert or top rung developers, but this is not true. You can learn on the job and usually end up doing so as most companies have unique ways of doing things.
Previously I was all about startups or small companies and was very much against the mega-corp environment.
Over several months a colleague "recruited" me to join their team and I don't regret it.
I've been able to climb pretty high within this corp and it has been a wild ride. Never in a million years would I have thought I'd have any sort of influence over technology strategy that one of the largest US corporations would follow for the next decade.
So, I've learned to keep an open mind and not let preconceived notions on how others do business until I see it for myself. If I had not done this I'd still be hopping from start-up to start-up.
On hindsight, I consider it a mistake. Micromanagement, lack of depth in terms of engineering & vision made me rethink my career path. Joined a BigCorp as a result and I regret not doing it early enough.
Work-life balance, clear decision makings, freedom to experiment with new tech, time to work on personal projects, financial stability and most importantly ability to bring real impact to real users – I clearly see now things that I'd have missed if I continued with that startup.
patio11 wrote a brilliant piece here regarding this, along with other awesome career advice - https://www.kalzumeus.com/2011/10/28/dont-call-yourself-a-pr...
I’ve learned a huge amount and appreciated the opportunities and flexibility I have.
I think experiences in both worlds are valuable and wouldn’t trade either experience for anything else.
Turns out I am not cut out to lead from such an abstract level, directing other directors and barely knowing how stuff is being shipped.
However this is where I was most surprised. My senior leadership recognizes where my skills are and have let me “manage myself” out of my role and move into a senior (think fellow/principal/staff) individual contributor role where I manage peers and work hands-on with whatever interests me (as long as i can align it to some product).
I have influence in a couple major tech areas for this Corp. influence in a type that I develop strategy and report on a semi regular basis to the C suite and am actively brought into other silos to contribute or kickoff ideas.
Long story short. I’ve spent years as “lead developer” at startups with no where to go except perhaps CTO. Here I am able to carve out an influential space that can maximize whatever talents I have while working closely with others who can augment skills I lack.
I had such a negative view of this corporate world prior to joining that I am ashamed of myself now that I know what the reality is, at least for my own experience.
The guy who was recruiting me made all the assurances that would not happen. I respected this guy, it’s the only reason why I even entertained being “recruited” for this role. Even with that though his word was not good enough.
What put me over the edge was meeting with his boss and then his bosses boss. I got the impression that these people had great skills in running an organization. They both were ex engineers who made the leap to senior management prior to joint the mega Corp (VP and Exec VP). I felt like I could trust them to a degree. It has proven out for me.
So, I suggest trying to get information to gauge how much you can “trust” your senior leadership beyond whomever will be your supervisor since those are the people who will really have the most control over your agency and future at that company.
I have two questions if you don't mind answering.
How large is the company you are referring to? 10K people? 100K, 250K, 500K?
What type of company is it? A company that builds and sells mostly software, or a company that uses software to sell something else (e.g. automobiles?). Amazon+AWS is a an example that is a hybrid of both.
I'm now a 'mid-level' AH-1Z pilot.
I work longer hours and have generally a lower quality of life but there's something to be said for the immensely unique things I've gotten to do and how profoundly well-rounded the entire experience has made me.
I will be re-entering the software industry in a few years unless another passion pulls me in some new direction.
The military is obviously not for everyone but picking up the phone, ducking into a side conference room across from my cube, and giving a verbal commit to my 'recruiter' that day (after a years-long selection process) has been the best decision I've ever made.
In the end good/evil are myths. They are human constructs and they can change depending on time and place. Ethics is not a hard science and your belief that something is good does not make it a fact.
The military can cause a lot of destruction and grief around the world, no doubt, but it can also cause a lot of good and stability. In the real world there will always be "winners" and "losers" An action that benefits you may directly or indirectly hinder someone else.
Our military's mission is to defend our country and that means that sometimes other countries will lose if they decide to engage. Inevitably there will be innocent casualties. This will never ever change. It is an honorable thing to do what we can to minimize it but unrealistic to expect it to ever go away.
You will likely see the world in a different light the older and more experienced you get. You're not a good person. You're not a bad person.
You're just a person.
And I could imagine that a former naval aviator who is also a programmer has a bright future in the defense and aerospace industry if you want.
I'm jealous. I always wanted to do something like that, but my eyes suck.
Sun Microsystems happened to be across the road from us. My mind was blown the first time I saw the value of the invoices for servers and Solaris licenses that we bought both for ourselves and on behalf of our customers. That's where a lot of those dotcom-era "investment" dollars ended up - at Sun.
One day we needed a router + firewall for some internal service. One of the Unix sysadmins in the team grabbed a spare i386 desktop PC, stuck a 2nd NIC in it, installed Slackware Linux and configured ipchains. Job done: no budget, no managerial approval, no licenses, nothing. I couldn't believe it.
I asked him about Linux and after learning more came to the conclusion that it could basically do most things that Solaris could do but was 1) free and 2) ran on cheap, commodity hardware.
That was the writing on the wall for me. I taught myself Linux and pretty soon had my first bona-fide Linux Sysadmin job. Linux went on to become the OS that runs the world and I've never struggled to find relatively interesting, well-paid work since then.
Ive used linux for years, I develop on a chromebook running an all cli ubuntu chroot and have loved working this way for the past two years. Im very interested in devops (Im a fullstack JS freelancer) and enjoy working with servers and the cloud a lot. But Ive never considered myself “learn-ed” in the ways of linux.
I have the time to devote to linux sysadmin training, and intend to do so.
Specifically: What areas of linux knowledge are most useful from an employer’s standpoint that would make a candidate attractive? Is it mostly experience architecting systems in production?
I think devops as a realm of work is very interesting, and would like to gain experience doing it professionally to find out if I’d want to pursue it longer term.
Beyond joining a team and learning from real world applications, is there anything useful you would recommend I look into? There are training courses available online for these things (AWS certs and linux foundation training comes to mind), does anyone have an opinion about the usefulness of such material?
I've built relationships with people just by doing right by them in tough situations that have lasted decades and paid fantastic dividends.
Also understand the motivations of people more powerful than you. They want to succeed, get promoted and make more money. If your goals align with theirs, you're golden. If they see you as being an impedance to their goals, you will get tossed aside, no matter how much bullcrap they heap on you in orientation and all-hands meetings about caring about the employees. It's just profit and loss, raises and promotions- nothing else.
That was it for me. I found a much better paying job within two weeks and never looked back.
The next company I worked for laid people off on schedule even though they were growing like crazy. In my four years there they went from 2b to 6b, but laid off many employees every year or so.
My take is that the loyalty a company has towards a given employee cannot be the same, simply because it lacks the emotional basis that usually makes that loyalty as strong and/or as irrational. It's completely a matter of company culture which, in most cases, isn't very empathic to employees.
I don't think lack of loyalty is a rule though. I think that if the company culture is set up properly, it can totally have some form of valuable, albeit different, loyalty towards its employees.
1. My engineering ended in 2013. I was shit broke. I started doing online courses in 2016. Till now I have done 51 online courses in different things and just a month ago I got moved into a DevOps role (from a WordPress developer role). $0 invested in it.
2. The other best thing is growing my LinkedIn network. I grew my network from 200 people to to 15000 people (most of which are founders and recruiters). I invest time in writing articles and sharing new opportunities via LinkedIn.
3. I started reading a lot of books (related to tech and business).
4. I started emailing, tweeting to people (and getting heard by people like Jimmy Wales, Elon Musk, Tim Draper, Craig Newmark, Charlie Cheever) etc. This helped me grow exponentially.
5. Planning ahead. I started visioning life 30 years ahead. What was what I wanted. If your goals are clear, it will be much easier to find the path.
6. Ask, ask, ask. I asked a lot of questions on StackExchange, Reddit -> r/webdev and Hacker News. Whatever I plan to do, I take feedback from these groups. I have also joined Slack channels of professionals from different groups where I talk and take feedback. From ideas to resume review and career guidance.
7. Anyone that could teach me, I made him/her my mentor and listened to them and acted on their advice. Everyone I work with (founders, coworkers etc) see the passion in me and tries to mentor me. The trick is to always be willing to listen to others and keep connecting dots.
I can't imagine the low SNR because of that enabling you to derive any use from it.
1) Which courses would you recommend?
Which had the greatest impact?
How would you do things differently?
Would you forego engineering entirely?
2) Suppose one doesnt have friends from school or work, how does one build a linkedin following?
What did you write about?
How did you promote your articles?
3. Again, favorite books? Most impactful?
4. Maybe once you get back to me, we can talk about 4 this sounds super interesting! But maybe you can give me the jist of what you did? For example why did they bother replying to you when tons are reaching out to them everyday?
The greatest impact was the combined effort of being able to do multiple courses (in so many different things) and being able to better understand different programming languages, technologies and marketing (SEO, ads, content marketing, referral marketing, driving sales).
Can't leave engineering. Engineering is the passion. I have a strong belief that all parts of business should be driven by engineers from development to sales and marketing. Yesterday I went to a meetup and I met sales people on the booths who had no idea on the product they were selling worked and how it could help others.
2.) If you don't have friends in school, go out to events, network. Talk to people, add them on LinkedIn. Found someone interesting online? Feel free to email them and get to know each other. Thats how I have built my network. Don't forget the nurture professional relationships. Your network is your networth.
3.) I have a 15000 people following, the articles that are of interest get viral. A few times I tried to post my articles on some FB groups. It did work out well but I don't do it anymore. Best is to just keep writing (you may post on Reddit, FB etc but be aware that you might get banned for self promotion).
3. 'The Lean Startup' and 'The defining decade' are the most impactful books.
4. You can see my Linked: https://www.linkedin.com/in/ifahaduddin/
If more interested on cross technical concerns (leadership, regional) I have found the best thing is word of mouth (I know several Colorado slacks, but found them through people I met at meetups). Though again you could try Google.
I have also found that most non project oriented email lists I am on have a link to their slack in the email footer.
Maybe I'm lucky, but every single one of these changes (there have been 4 major ones in ~15 years) has led to something better than what came before it in one way or another.
Life is too short to hate what you do. That will always be the guiding principle of my career, through all the ups and downs.
I still work for them.
Theoretically I should be able to retire in about 5-10 years, in my mid 40s, depending on how frugal I am with my expenses. This wouldn't have been possible working for a local software company, even though I was paid about 3 times the average national income.
insurance and healthcare system is a joke. so whenever you got health issue, be prepare to spend butt-load of money.
i have no idea how gdp per capita is so low yet people have so much of money (unreported income, corruption probably)
I make about 25 times the national gdp per capita yet i'm just above average in my country.
As a back of the envelope calculation, if you can live with 30% from the income, one should be able to retire in about 7 years.
Well then. Move to Romania. Problem solved.
When I got made redundant from a very large company, they were able to secure me a severance package which I pivoted into running my own startup.
They also gave me a huge amount of training on pensions and dispute resolution, which I still use to this day.
They also helped boost my confidence in public speaking by inviting me to address a huge conference. I was a few speakers before the then Prime Minister.
Being a union member also got me face to face with several senior leaders within my industry, and with people from a wide range of backgrounds that I'd never have encountered otherwise.
Basically, for a few quid a month, I was able to completely transform my relationship with work and my peers.
1. Before I built my reputation and experience, I said Yes to a lot of things. Not all of them I could do, but once I said yes and jumped in the deep end, I found out I can do them and do them very well. Necessity was a big driver.
2. Life style trumps "exit". I worked with various start ups for 20 years. I founded and co founded 4 of them. At some point I decided that if a company succeeds or fails, I want it to be because of me, not despite me. So in 2 of those startups I had no investors and full control. I work at and dictate my own pace.
3. Best decision: My time and family come first. Nothing urgent has never been really that urgent. Nothing requires me to work 20 hour days. Nothing justifies my family being hurt because I'm somewhere working more than I should be.
Taking job interviews not as events where I had to prove myself for a chance to get validated, but rather as a discussion between two parties to see if what they have to offer to each other matches is another that comes to mind.
I can really see a before and after break in my career.
I was 15 years old back then. I had just learned how to code and my hunger for programming was insatiable. I didn't think much, browsed through relevant classifieds and sent out a couple of honest e-mails stating that I really want to have a job, but I have no real life experience.
A company replied within a few days and they were interested. It was a very small company, consisting of a CTO and CEO. We agreed on 200$ for a portal type of website(it was a thing back then), with user sign-ups, public and private posts, comments and a few more things.
This company was hired by a rather large media company, to develop a dedicated website for them. I knew who was behind it and I was hoping that I would get recognized by the media company.
I dreamed about writing lines of code in my sleep, daydreamed through school and spent all time I could on coding the whole thing.
I think I was done in three months or so, and then came the day I asked to be paid. I had put daily changes on their FTP server, as we agreed, so I had literally no leverage. And they stopped responding. I tried reaching out to them in numerous ways, such as using my mom's cell to call the CEO, but he hung up immediately after realizing it was me who called.
As I realized that I had been scammed, since we did not have any form of written contract and had agreed that I would be paid in cash when the whole thing was done. Therefore I went on the media group's website, found the contact section and somehow managed to stumble upon the personal cellphone of the CEO of the media company. And I called him. I was an emotional teenager, but I spoke the truth. I did not have any demands other than to be heard. After a 10 minute long discussion where I explained that I was ripped off and worked for free for months, the CEO invited me over. I still remember the awe everyone was in, when they realized that a kid had just called them and walked through their front door in a few hours.
That phone call has been the best career decision I have ever made. The media company terminated their contract with the agency that had ripped me off because of terms violation - they were prohibited from outsourcing any development to any third parties, without a written permission given by the customer a.k.a media company.
And so I landed my first job! The people working for this media company were so genuine, mature and supportive, that I did not lose my love for what I did and had been in web development ever since.
It pays off to be brave and righteous in the end.
I still feel like I should be selling fridges, but they keep getting good performance reviews, so I'll take it. Sure pays better than selling fridges.
I never took anything so seriously in my life as when I decided to become a programmer. I bought dozens of used textbooks, read and meticulously underlined them, relentlessly wrote code and read all the programming interview books, made guides for myself to study, said yes to every contract and bug I could help with regardless of the tech stack. I refused to be anal about picking one programming language over another.
I have a marketing degree from a not good school. If I could do it again I would (a) drop out and move to a major tech metro and (b) identify a high growth tech stack and study it intensively. Never should have wasted time getting a useless degree.
The best thing learning to program taught me was how to read books properly - Write in the margins, take extensive notes, phrase and rephrase the lessons, write my own articles and guides to solidify the learnings.
This year I mad $350,000 and got promoted to manage five people. I couldn’t have gotten here without learning to code.
The stock compensation is a big deal after several years if the stock does well. The initial grants can become worth a bit more than they started at. Also, at senior or management levels the raises get smaller and the stock grants get a lot bigger.
Given that, what is your opinion of where is the puck going/gone for programming languages?
ReasonML? Go?
Note that while I feel this is the best decision in my career, I think it's debatable whether it has helped my career in the traditional sense (i.e. more money, more influence, etc). Probably not :-) Still, I like the direction I'm going, which I would not have said before I made that transition.
Edit: Link :-P [1] -http://jetprogramme.org/en/
Out of curiosity, were you a single person? Wondering if they accommodate adults with a spouse and one or more children.
I haven't looked at the situation recently, but there used to be an age limit of 40. I applied when I was 38, which is essentially the very last time you can do it.
In case you (or anyone else) is interested, I'll write a few things about my impression of what the JET programme is (which differs slightly from the official version). The official version is that JET is the "Japan Exchange Teaching" programme -- so the idea is that people come to Japan to teach English. In reality, it is a rather brilliant plot by the Japanese government to both get rural people used to having foreigners in their communities, and to expand awareness of Japanese values abroad in order to soften the position of foreign powers in business and trade negotiations.
Basically, what was explained to me by a few Japanese government officials (after many, many beers) is that in the 1980's Japan was flying high in the world economy, but they were having a lot of trouble with the rest of the world understanding how they did business. There are some great English language documentaries on the subject (I wish I could remember some, but I suspect you can search on Youtube to find some good ones).
You would have American sales people coming to Japan and saying, "We make car parts. Our parts are 30% cheaper than your supplier. You should buy from us". And the response would be, "We've worked with our supplier for 250 years and have developed a level of trust with them. Why should we betray them for a mere 30% discount" Even small things like people showing up for discussions with important business people and not bringing a souvenir as a gift, or refusing to suspend conversations until everybody had properly gone out and had a drinking party would derail a lot of trade deals.
At the same time, the Japanese government was thinking, "Our population is getting older and if we keep growing financially we're going to have a massive labour shortage". But the vast majority of Japanese people had never seen a foreigner in their life. They realised that they needed some kind of cultural shift to accommodate the bringing in of foreign workers.
They concocted this really bizarre plan where they would seek out and hire young, educated foreigners who are from rich connected families and bring them to Japan for a few years. The idea was to indoctrinate these young people with Japanese ideals and then send them back to their home country. Then 20 years later, those young people would inherit their thrones (remember they are from rich, connected families) and they would be in a position to change foreign policy towards Japan. They would also be able to educate foreign businesses how to communicate to Japanese people. They would also send these young people only to rural locations (where there are no foreigners) to pave the cultural way for the inevitable influx of foreign workers.
I think we're getting up over 30 years of the JET programme and it has been a crazy success - from that perspective. There has been a problem, though. When they initially set up the programme, they didn't know what the young people would do. Someone had the bright idea of having them teach English at the schools. So that's what they did. However, young, rich, snotty-nosed kids right out of school... ummm... They aren't necessarily the best workers (of course there are many exceptions to prove the rule!). In fact, historically quite a large percentage of them had never had a job in their life. They didn't know how to work, had never had any real direction in their life and were also suffering badly from other kinds of culture shock. To top it all off, virtually none of the teachers in the school system wanted these people and took it to be a particularly onerous babysitting job.
Over time, the programme has started to hire a percentage of older people into the programme. They still look for people with good connections. Even though I do not come from a particularly wealthy family, I worked for some of the largest and most influential tech companies in the world. That's the kind of thing that has the JET programme licking their lips. You get a person with that kind of influence and a proven track record of working hard, it's great for them. They can send that person to one of the schools that are pissed off about the people who have worked there before. For example just before I came they had to fire a guy who never once showed up for work -- he went surfing every day. They needed somebody that would keep a low profile and just do what they were told.
The JET programme in Japan, despite being wildly successful in their unadvertised nefarious plan, is under a lot of criticism for their public role. The JET programme pays a lot more than private companies charge for "assistant language teachers". Quite a few schools have moved from JET assistants to assistants from private schools. The advantages are many: usually the workers are older, experienced in teaching EFL and they are a good %30 cheaper. Why should a school hire JET assistants?
This has caused JET to hire actual teachers! These are people who have no money and no connections and are probably not a good fit for the original goals of the programme, but they can actually do their job when they are in Japan. I think there is some hope that the teaching skills will rub off on some of the others (it doesn't, but it's a nice thought...).
So that's where it stood about 5-10 years ago when I was involved. I'm not sure how it's moved on from there. But basically they have 3 categories of people that they are looking for - 1. young, rich, connected people from famous universities; 2. older, connected people who have life experience; 3. people with qualifications in teaching. I think you're still more likely to get hired if you are in category 1, but there are a fair number of positions in the other categories.
Disclaimer: many tongue in cheek comments -- I apologise if anyone found it offensive rather than humorous.
I was driving 30+ minutes to work, working overtime every week, and got a bad performance review on the grounds that I wasn't working enough. The company had a "work hard, play hard" culture, which in practice meant "work all the time and occasionally we'll invite you to take a booze-filled trip without your family". They had flown me in for the interview and let me eat sushi with the CEO, but after that it was "nose to the grindstone".
After a few months I got a call from a recruiter about a job 5 minutes from my house, using a language I liked more. In talking with the company I learned that they worked business hours only. I felt slightly guilty about making the switch, but I got a lot less stress, more learning, and more respect at work out of the deal.
In the nearly-a-decade since then, I've never again been told I don't work enough, and have always ruled out jobs that smelled of workaholism. I'm having a happy career.
On multiple occasions I have resigned from jobs after 2-3 years with no clear plan for the future, let alone another job lined up, simply because I didn't like my current job anymore.
On multiple occasions I have poured hundreds, maybe thousands, of hours into projects and start-up ideas that never had a realistic chance of working out. I did this safe in the knowledge that I could run down my finances working on some fun speculative project and someone out there would give me a job to let me pay the bills when I needed it.
So I certainly haven't maximized within my career but I chose a career well.
The best paid job I ever had was also the worst by any other measure.
I saw the kinds of DNA sequencing analysis our collaborators were doing and said "hey, I could do that", so I checked out all the R books from the library and taught myself some stuff. And then around that time both Coursera and Insight data science were just starting to become a thing, so I looked up the Insight curriculum and cobbled together my own version with Coursera and made a genomic data viz website.
That computational transition set me up to go into data science in 2014, which has turned out to be a succession of being in the right place at the right time for incredible learning and growth opportunities, but it never would've happened if I hadn't decided to analyze my own sequencing data.
I guess I learned a few things:
1) don't overthink decisions (which is not to say "don't think");
2) to back myself and my abilities with the requisite effort. I'm typically smarter than I think but I need to put in a matching level of effort. When I got my Bachelor degree 20 years earlier, I literally skidded out the door in a haze of alcohol and with a shit grade. That cost me a few years;
3) don't be afraid of a challenge; don't be afraid of the unknown;
4) be sensitive to where you are in your life - can you afford to take a hit if things go pear shaped? Time-box your attempt to shake things up in your life;
5) If you work as a contractor - networking and self-brand management rules. I rely heavily on LinkedIn and the network of contacts I have cultivated, and keep my brand alive with posts and articles relevant to the kinds of work I want to be doing - not necessarily flavour of the month.
There's probably more but that's pretty much it. My income now is almost 3 times what it was in 2007, and while I'm not suggesting that's the only measure of success (far from it), it affords me a professional freedom to be more picky in the work I take on, and to live with far less fear than before.
EDITED TO ADD: The reason I chose Enterprise Architecture was because it suited my temperament. I discovered I was a "systems" thinker pretty early on, and as I moved through a typical IT career trajectory, the "systems" I was thinking about became bigger and bigger. EA probably sounds pretty passe compared to all the "it" technologies people are playing with, but it's kinda like politics - reality is gritty, the problems are hard, endless and fascinating (if you're so inclined).
I'm not even talking about Silicon Valley. I worked in Boston, Seattle, and Sydney, Australia. Never set foot in the valley as an employee of a local company. Made insane salaries, one company I worked for got acquired, another one went public, etc.
EDIT: As a part of this: I was honest with myself that I cared about money (to a point). For a while I stayed in a job I liked that didn't pay me well, trying to convince myself that "quality of life" was more important than money. The reality for me is that money is part of the quality of life equation, and I'm glad I admitted that to myself. It was also sort of a canary that I wasn't being challenged and could do tougher work that paid better.
I agree with many of the people here that say understanding the relationship between worker and company is crucial. In the words of Don Draper "That's what the money is for." The mission of the business is not the same as your mission as a person. Giving too much of yourself to an employer is a mistake.
I've been trying to get up earlier, but evenings/nights are still prime time for family, spouse, and "me time." So, starting work at 5am seems out of reach.
Can I ask for more detail about why it was that software was not the proper path for you?
I found that I was spending an inordinate amount of time in front of a computer and not interacting with anyone. I also was extremely disappointed with a general lack of self-improvement; I think part of that was that I just graduated, where I was used to everyone constantly studying and working to improve themselves. These experiences may have also been in the minority in the industry, but they were my experiences.
I also had EMS experience in college, so I knew what it was like to treat patients, and I missed that very greatly. I've loved every day I've gotten to talk with patients here in medical school, and can't wait to start truly practicing medicine.
I do still do some web development work, including incorporating my current predicament - traveling the country interviewing for residency. I worked with two current residents to build Swap&Snooze (www.swapandsnooze.com)
I have a relative who did the same thing. She is now a doctor.
I was fortunate to have completed all prereqs through my bachelor's degree. I worked in software for 3 years or so, then left to go to med school.
I was 19-20 years old, without a home of my own (sleeping on 2 chairs side by side for many years in a single room with my grandparents), working in a fast food and with almost no education (just high school night classes done - I was working since I was 17.).
I've started learning on my own (every day I read), learned Linux and at 36 I am an accomplished man. Ambition, self education, learning and reading got me where I am now... and maybe a bit of luck.
People are everything and I find myself being much more motivated going to work knowing there is a group of people I trust and which challenge me everyday.
When I will feel that I'll have nothing to learn from my comrades, or that the friendships have degraded, I will probably switch to another venture where again: the type of relationships will be my priority.
I was working in an infra/support role at a state government run education institute, and following a reasonably interesting (compared to most of the work) project I started looking for work I would enjoy more (than the regular stuff) elsewhere.
I got a call from an interstate contracting agency (and I still don't know how this part happened) about a job I couldn't do (flash dev) and didn't apply for. I explained that I hadn't applied and wasn't interested but then they mentioned they were also looking to fill a federal government contract for a front-end developer. I had been applying for web jobs (despite having zero commercial experience in it, it'd been what I originally intended to do when I started studying years earlier) so I said I was interested, and within 10 days (I think? It was a while ago) I had confirmation I'd won the contract, over someone with 10 years experience.
I've long since moved back towards ops/infra (albeit in a web focus - load balancers and DB clusters rather than desktop management policies and file/print servers) and dev-tooling type stuff, but that first big step - away from family, and a reasonably safe government job, to a fixed-term contract definitely played a big part in getting me where I am now.
Then I quit that company and co-founded a startup, to which I dedicated myself 100%. In 6 months we had a functional product. In retrospect, that might easily have gone south, but I had the good luck of choosing to build a product that obviously had a market, and the extremely good fortune of having great partners.
I never would have thought that one day I would achieve such professional and financial success.
I am an introvert and have difficulty making and maintaining contacts. Yet all of this was possible because of people I knew. On the other hand, it was my history of dedication, passion for engineering, and 'tackling difficult engineering problems' that led to people having a high respect for me and my abilities.
Introverts, consider that possibility that people respect and like you more than you think.
And then four years later leaving the startup for a job at a public company.
In fact, my entire career has been startup/corp/startup/corp/startup. So far all the money has been made from the corp jobs, but the big learning spikes came from the startups. So that pattern has served me well.
It's certainly not the right choice for many people, but it was for me.
I often wonder what language is the "new Python", or if that question even makes sense in 2018.
Related: http://www.paulgraham.com/pypar.html
Switched to machine learning circa 2007-2009 from signal processing (my PhD area) after reading the first few chapters of Elements of Statistical Learning Theory. Quit my eng job. Took a job in ML after studying many nights.
My paycheck is less but I get to enjoy life a lot more and I have more time to replenish my energies. I remember that before this I always felt out of breath at work. Too much high paced, too little time. After this change I got more efficient (and I was efficient before) and that feeling of time missing to do things has gone away.
For anyone reading: if you have a decent pay and have been employed in the company for some time, consider this option. Chances are they'll agree to moving onto part-time with no trouble and the benefits are well beyond the change in the money you earn.
ie the developer turn usmc pilot. another example is the police officer i met the other day who was previously a developer at ibm for TEN years.
not to be too dark, but seems like we get a limited amount of time here on earth being conscious, so spice it up!
my bias here is that i'm currently craving something different; something totally outside of my current tech gig (recruiter, hello, DMs open ;) and have to courage to jump into the unknown...if only i could figure out how the finances and budget might work.
Now I only work for companies that use their software to provide a service. There is more of an incentive for the software to actually work.
Working as a freelancer with only 6 months of programming experience before that. (1) Best entry job salary ever, (2) you act and move like a consultant and see different industries, (3) you realize that there are industries for which graduate programming level knowledge is enough, (4) tax benefits and (5) it gives you some time and experience to actually think about what you want to do as a career after freelancing.
The rub: I am terrible at getting clients. I just have 1 friend who knows that I'm capable of and he thinks I'm awesome and always recommends me whomever he talks to. So having a champion is vital. The thing is all kinds of companies see him as a good programmer (he graduated a bootcamp, top/1st of his class -- by a landslide) and he thinks I am as good as him but with a lot more in-depth knowledge due to my CS background. So for him it is very easy to recommend me.
The tip I got from some people was: don't be a freelancer for too long. You don't want to be one in a recession, so being a freelancer should always be either (a) a side gig or (b) a temporary full-time thing (for a couple of years). I wonder what people think about this statement.
Immediately investing the excess of whatever you earn is amazing too.
- Learning Vim and working from the terminal
- Going through the book 'Seven Languages in Seven Weeks'
- Learning typed Functional Programming
I think the above three things are solid, foundational skills — proficiency with power tools, learning to learn, and learning to think about problems differently.
Another transformative moment in my career was when I learned that many things popular and shiny today are just bad implementations of things we've had for 40 years. Specifically I realised this after learning GruntJS, and then Make.
Don't burn bridges is for relationships where people like each other.
Strategically burning bridges is cya in a way that you benefit while leaving, leave others wondering before they deliver a blow.
This is often super difficult to do, and the Seinfeld "off like a bandaid" approach is probably best. By doing it clearly and quickly, you allow yourself to focus on what you really want and not to carry around a lot of baggage. For example, I've been approached by previous employers about working for them again and I've had to tell them politely that it's never going to happen. Usually I try to give them some constructive criticism if they are able to receive it, but I admit to having done the "It's not you, it's me" routine before. Basically, I think it's important to focus on explaining that the paths are different and that each party needs to concentrate on their own path without needing to try to drag the other along. A couple of times I've received the, "But I've changed..." thing and I just have to reply, "That's great. I know you'll be able to find great people to work with because of that. I need to focus on my own stuff."
Also realizing family and enjoying life are often more important than the next step in my career.
Personally: Taking time out of the office for my family and myself. I'm happier and healthier.
I was an active duty Air Force intelligence officer and I had been building a mobile augmented reality product as a side project. This was before AR really took off.
I had a choice to make: Be a professional spy for the government or do what I wanted to do since I was a kid and build computer vision/AI products, with the goal of doing AI for the rest of my life.
This was right as Neural Nets were exploding in vision and I had been focused on geometrical computer vision and causal bayesian networks.
So I decided to leave the military and start something that was super unproven without a PhD in CS/ML etc...
Now my whole life now is developing Computer Vision products and doing commercial research around vision, with an unfinished MS in ML systems. I realized today that I reached one of my main goals which was to just be in the field as a professional, doing it full time.
What happened? I was out of the rat race and I took time to look around me. I could feel the rush of people going to work on the morning and coming back on the evening, while I was simply on my way to starbucks or to the nearest gym. It is scary. You understand how a 9-5 job turns you into a madman. People looked so angry, depressed, like robots. You endup doing things during the day when everyone is in jail working. You have to try it yourself to realize how life sucks if you follow the rat race. The only way to get out is to break the rope. My goal in life is to never go back to this dark place.
I'd love to ask you a couple of questions about your story!
So I have to make a homebase to fix this. But the problem is that I feel like I would be making a mistake whichever place I choose.
At one side I like Europe more because it's better aligned to my personality, interests and also the standard of living is higher. I would settle down somewhere in south of France, Italy, or Spain, and then travel maybe few months per year max. I want to start a family and figured out Asia is not the right place for me to do this.
At the other side there's SEA and all the spicyness it brings. I go back to Europe every summer and spend winters in Asia, and I have good friends in SEA which I miss, but I feel like I am delaying the "real life" whenever I go there.
It's a good question to which I don't have a good answer to. I am going through a bit of existential crisis right now due to this.
When I actually started to focus on work that experience benefited me extremely well.
I wanted to validate my skills after being passionate about building software as a kid; it worked, I convinced a unicorn startup to hire me and moved into management where I'm able to save much more money. I went from 60K to 285K with over 500K in options vested in 4 years.
I've had so many growth opportunities and now I manage multiple teams with influence over the strategy for the company. This has allowed me to develop the skills to see software as more than just engineering, but a business, and understand the hard problems of motivating very smart people around me. I would never have guessed this was possible for myself.
You'd be surprised what you will learn if you just "go for it".
Had I not had the opportunity to spend 6 months working on something that made no money, but afforded me the ability to talk about the full-stack skills I developed, there's very little chance I'd have walked into a temp web developer/marketer role and stayed for 3 years.
The second best thing that helped me being happy is just doing what I like. Whenever I see an improvement, technical or business related, I start making a plan to improve it and start talking with co-workers/clients about this. This resulted in me having better relationships at work and just doing what I like instead of building (/programming) something someone else came up with. I really like to be in control of whatever I'm doing. Still in my early twenties and trying to figure things out.
Any advice?
I used to think you need to job hop to progress (in terms of position & salary) - definitely not always the case!
B) Moving to silicon valley, mostly due to the climate, but also because my house often made more than I did, and there are just so many opportunities.
C) Joining a startup - learned to be agile - didn't get rich but at least got to roll the dice.
D) Becoming a contractor - can get foot in the door more easily after the dot com bust.
E) Becoming full time again at large company. Nominal paycut but with all benefits and bonuses and stock actually earn 30% more plus more job security at the tail end of my career.
I'm now trying to hire other developers and have interviewed people who are still living in Brazil (some from my hometown) but excited to move here too.
2. Understanding and accepting that it’s more important to love what you do than to chase status and promotions. At my previous job, I was keeping track of success by how many people I had in my team and how much responsibility was given to me. But most days were spent in meetings and budget forecasts and PowerPoint slides, and it kinda sucked. Plus to reach the next rungs it was heavily hinted that I should move from engineering to marketing or customer operations (because “you will never manage a BU if you don’t have direct customer experience”), and I knew full well that I’d hate it. Accepting this gave me the impetus to look for a new job and quit, and I haven’t regretted it for a second.
Leaving aerospace because I was able to retain flexibility, career-wise, personally and more importantly intellectual. Aerospace is great sector to work in but also very, very special. Not having any experience in other sectors carries the risk to end up limited to that sole industry.
Now I ended up again in aerospace, and so far it most of the tome feels like coming home, just with a lot more skills and experience most people don't have.
I have to add, so, that all of the above might seem like a great plan in retrospect. Reality is it was mostly unconscious, except for the part of quiting aerospace. The underlying goal, unconscious as it has been, was to seek out new opportunities to learn and develop new skills. This process got more and more conscious as I got older.
Yes, and maybe one last piece of advice. It is not, under any circumstances what so ever, worth it to sacrifice your private life of your health for a simple job. Most of the time we are not literally saving lives, and even if you cannot do that when you burn out and get a heart attack or something like that. Know when it is necessary to give all you have for the cause/mission/task and when not. And never ever do that just because.
1) 1993: switching from computer programming to system administration in order to avoid the C++ onslaught (at the company I was working for). Managed to successfully avoid it since then (25 years). And now we have Rust: life is good.
2) 1999: going back to programming while excluding closed tech and focusing only on free and open tools. With all their faults, having complete visibility and control of the software stack has been a blessing. And now there's hope for hardware too. Life is good #2.
Just as an example, in Vancouver, I got poached by a recruiter from G&E to work with FPGA in a senior position. The offer was around 80K.
At London a senior embedded systems engineer would get 40-45k pounds.
A senior fullstack / devops / backend dev at any of those cities can clear around 50% more easily with 10 times more jobs available to pick from.
Embedded systems don't really scale the same way backend systems do. In embedded, you write the firmware, and it gets loaded into thousands or millions of devices. There may be a few updates, but firmware kind of gets frozen in time.
With backend, you write code that can be used to expand a business. You're adding features to grow marketshare or scaling up to meet user demand, so it has a more direct correlation with the health of a business. It's less of a cost center, and more of an investment.
I ended up starting a blog (https://zwischenzugs.com/) and wrote a few books. It's all made my career far more fun and given me more control. As a by-product I'm better paid too. But that was not the aim.
Now, six years on, I am all "ugh recruiters spamming me" like my peers, but I remember how awesome it felt when I woke up to an inbox full of emails after posting my graduate resume.
After working that job for a few years and rising through the ranks to lead the group, I've realized that running a small business is really what I'd like to be doing.
Currently I am working part time trying to figure out what to do next!
The real best decision, though, was leaving my job. I had been talking to people for years about the future of work being online and freelance and such. So, I decided to just quit my job and see what happened. Turned out to probably be the best thing I could have ever done. My income dropped a lot, sure, but I learned probably 10x as much in 2 years as I had in the previous 15 years combined. The anxiety of being entirely freelance and chasing money wasn't really my cup of tea, but it certainly put me in a much better position when approaching employers with that experience at my back. Not to mention the psychological confidence knowing that no matter what happens, I won't starve.
The massive pay increase was just a bonus on top of all that.
The shit really hit the fan in my life and this forced me to take stock. Had I not been forced, I probably would have continued down the mba path and career change. Losing my father after two very sick years, being laid off by a business in collapse, having a six figure student loan application on my desk, and other crucial "etc" pushed me to reevaluate my life decisions.
Here are some important lessons learned:
An MBA from a reputable program was leading me into debt servitude and constraints that would shape my career. Debt constraints are major life constraints.
Changing careers to do something that was more meaningful can lead to many new opportunities. I left prime brokerage in financial services and was planning to transition into healthcare, hospital cfo type of work. Helping create novel solutions to rising costs of healthcare was a mission I could align myself with. Helping protect investment bank lending to hedge funds through margin financing paid well but served no higher purpose. Healthcare doesn't have a monopoly on purpose, though, and many who work in healthcare do so just to collect a paycheck. I realized I could achieve my goal elsewhere and with fewer bureaucratic constraints, but at a cost-- as an entrepreneur!
Entrepreneurship has been everything I expected it to be. I had to become the technical expert I needed as a partner. It's been a long, grueling experience. I am so fortunate to have taken it.
I had been working as a self-taught web developer before that and went into college already knowing much of what I needed to know to do the job. However, getting a degree significantly improved my ability to get the positions I wanted at the pay I deserved. Also, I learned some important things that I had never heard of before.
1) Long term accumulation (buy and hold). These are at Vanguard due to their low fees. Most of it is in VTSAX (Total stock market) and VTIAX (Total international) funds. I have been averaging 12% yearly returns for the past 10 years.
2) Short term investments: Individual stocks, for more active trading. I don't have a long term return figures, but the past year has been 30%.
3) Cash: I keep about 15% in cash at all times. I look for high interesting savings accounts (Ally Bank gives you 1.85% returns) and money market funds (Vanguard VMMXX gives you 2.05% ish)
So I went contracting, and for many years enjoyed banging out code.
But as each new contract starts, the meta-work, the git conventions, the missing linting hook, the vital relationships I left behind, all start to grate. Adding them back in, getting this team back up to speed like the others is just repetitive.
And the more time I spend mentoring, encouraging, reviewing, the less time there is for fun parts and the more it looks like management again.
I might just bite the bullet and decide I am now old.
I have a Bachelor's in Molecular Biology and was going to walk the academic path but decided to switch to Computer Science (had some engineering background before) for a Master's degree with the specific plan to go into industry. It was hard, I had to do a lot of extra credits while studying full time and working to pay the bills, but I got into a CS Master's degree and finished it very successfully.
I now have a very interesting job with good pay, high recognition and enough flexibility to pursue other dreams (like making music, etc.).
Without taking the time to do the degree, none of it would have happened. Had 2 kids whilst working and studying - come to think of it, a supportive wife was by far the best decision career wise.
I liked my previous job, it was interesting and demanding. But being my own boss has taught me a lot as well: I have learned new skills, I have met a lot of people I probably wouldn't have got in touch with in the previous job, and I learned a lot about myself. On most days I wake up feeling that some new discoveries are out there for me... Until now, this journey is very rewarding.
However, I do regret not having spent more time with my parents and my sister. I haven't been back for the first 3 years or so, but I've changed my attitude quite a bit, and try to visit them at least twice a year now. I've also paid my sister's vacation in Hong Kong, so she could come for a visit(she's still a student).
My greatest worry now is that I can’t spend myself into more time any more and need to make personal improvements instead (like not reading so much social media like HN)
As soon as I could work remote, I sold my house and moved across country. After moving I updated the city/state on my resume and immediately started receiving much better offers.
I was pretty burnt out on research at that point. I can guarantee I wasn't mature enough or stable enough to get through a PhD program.
It was scary, humbling, deeply rejuvenating and ultimately immensely beneficial, both from a personal growth and from a financial standpoint.
I’m still here and now I’ve helped to build a team of super-talented engineers and we are building some very cool things and having fun doing it.
I got paid less and I had to work harder.
The pay-off? I learnt more in those two years than I would in ten years in another job.
Since then my general philosophy has been to find jobs based on maximising my rate of learning.
Because my very first decision in my IT career was wheather or not to drop out and join my brother in a larger city who was working for a small web host at the time.
That job lead to another and launched my career.
I feel I should have done this a few years before. But you need to feel you have enough knowledge/experience and some cash to burn to get a business started.
Not only did I enjoy it more as it was a better fit for my temperament, it was better for me financially.
I feel pretty lucky to have fell in to programming.
2) Starting contracting - Higher salary, greater variety of roles/projects etc etc.
I'm more worried about the government and their IR35 reforms in the private sector to be honest.
I stopped using Ruby and Rails and opted for Python when I started teaching at university, because I realized Ruby wasn't ideal for teaching novice programmers. But I've recently picked up Rails again for some freelance work and have been delighted at how easy it is to get back into. My sense is that Ruby and RoR are no longer as dominant or competitive compared to Python, but it still seems to be a very high in-demand skill because of all the apps/startups that used RoR from the time I learned it back in 2009. That said, learning RoR was less about having the specific skill on my resume, and more about my first exposure to professional and open-source application development, which I'm embarrassed to say I had virtually no experience with when majoring in computer engineering.
Today, I personally would recommend people learn Python and do Django, even though I've personally never used Django myself, but feel confident that it's not much different than my RoR experience.
One of the core Rails developers José Valim created his own language Elixir built on top of Erlang and web framework Phoenix.
Ruby is a beautiful language - well written code can bring a tear to your eye like Haiku. But its not designed for concurrency so you have to bend over backwards to add caching and scale your web server a lot more than other languages.
Learning Ruby/Rails and being part of a team that followed Sandi Metz 5 Rules and TDD made me a better programmer in other languages.
Most companies are moving towards microservice architure where each service runs separately and can use whatever language makes sense for that service. We replaced our monolithic Rails web app with 20+ microservices, most of which use Golang, some Python and Node and Java. The main web server service renders one html page (about 20 lines!) that simply renders a React app that communicates with our API server (API server router then routes to the correct microservice).
We don't need Rails view templates or localisation support as most dynamic websites do this clientside. Doing lots of Javascript in Rails was always clunky and poorly supported until a year or so ago when they caught up and added modules and hot reloading support.
We have found Golang very easy to learn, ridiculously fast to compile and run tests and very robust. Google said it was designed for Programmer enjoyment and it really shows.
I think if you're looking for something new, look for things that you (or others) get excited about, because they are way better then the current way. Learning Rails was because it was 10x better than the PHP spaghetti shit that I was personally coding in early 2010s.
I think this can apply to a lot of trends. For me, Golang was a much much better way to handle concurrency. Add typing, strong performance, compilation. It's also on an upward trend that I was on the leading edge of.
These days I'm learning Rust because I think the borrow checker is an interesting and much better way to handle memory than manually allocating/freeing, pointers, or slow GC. However, who knows if it will take off.
Similar things have happened with frontend. From what I understand React is much much better than coding together stuff with jQuery and random plugins.
I (think) I was seen a high performer with an upward trajectory. The whole thing was incredibly stressful, but it was life changing for my family.
I also learned a lot more about what I want to get out of my career.
They look so obvious right now...
Right now, I think that the best decision I'm taking is learning Japanese.
But: A PhD gives you intellectual freedom you don’t get any other way. I’m the PI for a space robotics program. And in grad school I made friends I’ll have for life. I got to do a Vomit Comet flight. I got to do a spacesuit run in Marshall Space Flight Center’s neutral buoyancy lab. I designed a spacecraft simulator robot from scratch. I’ve done things very few people get to do.
Just avoid dreaming too much about tenure track jobs and you'll have a great time. (Well, so long as the program doesn't suck. Do your research...)
This sounds cynical, but it's really peaceful. With the emotional energy and sheer time saved I am able to cultivate strong relationships, passionate devote myself to music, be a better father/husband/son, discover new interests that have nothing to do with the internet.
I frequently espouse the virtues of a "Fuck you, pay me" work attitude, and I recommend everybody examine their relationship with their careers and ask themselves if on their deathbed they will wish they had worked more.
Often the answer is yes. A job is a good thing. Currently, I work for a company doing meaningful work, with a decent team, and a product that is heading the right direction. I get a decent paycheck to support my family and let us have some fun, and go home and see my family earlier than most.
On the flip side, if the organization changes, the answer can flip to no and it becomes time to leave. Sticking with a place that used to be a "Yes" after it turns to "No" is a painful experience, and people frequently stick around too long because of how things used to be. This is where the emotional detachment matters -- It is critical to your well-being to recognize when that answer flips.
When you can be manipulated by guilt and "the VP wants this tomorrow, it's high visibility", the most manipulative people in your org are going to latch onto you and praise you. If you are emotionally detached from this type of behavior, other people who are emotionally detached will be more willing to associate with you because they do not fear getting sucked into projects created by those manipulative people.
Note that emotionally detached does not equal lazy or bad worker. Some of the best people I know are emotionally invested in their work (e.g. being an awesome developer), but they are not emotionally attached to the manipulative drama you see in every office and being the knight in shining armor who comes running in to put out fires that somebody else created.
On the other hand, hanging meaning and mission over one's head seems like a great way to manipulate and underpay them, and being susceptible to this seems like a great way to become a useful idiot.
Squaring these two views is something I struggle with.
This way you can put out your best work & work on things that excite you, but are still protected from manipulation and underpay.
Your customer is your employer. He's also the main person that needs to be pleased with your work.
Companies try to push the "This company is all of us" mentality, but in some situations it becomes painfully clear that it wasn't.
It's a lot harder for a company to manipulate someone if they have alternate ways to derive meaning and emotional support. For me, this involves always having a side project that's fulfilling.
I think this sincere desire for unexploitable meaning is why a lot of engineers try to start startups.
One friend of mine is a developer at a nonprofit, and I know he's earning in the 25th percentile for his skills and experience in this region. I am certain his passion for the cause helped lead to this. Ironically, this situation has, over time, eroded his passion for the cause!
Nonprofits lose a lot of good people doing this, but they don't seem to care. Maybe because they've always got fresh meat ready to take someone's place? Maybe because donors always pressure for low overhead costs? Hard to say, but it's foolish. Only harms everyone involved.
Many people use manipulation and guilt to get other people to do what they want under totally unreasonable/unrealistic circumstances. If you are able to emotionally detach from being affected by this type of behavior, they lose the control they have over you. You're then in a much better position to dictate a situation where you can a) work on stuff you find meaningful, b) provide high value to the company) and c) do it on your terms. Sometimes the only way to do this is to switch managers and/or jobs.
One can enjoy the company they work for, but at the end of the day, they're not family and the loyalty only goes one way. Employment is a business contract and business is about making money. A company is going to try and wring everything they can out of you, so you should absolutely do the same.
My little bit of advice: save enough money for your emergency fund. I recommend at least six months worth of expenses. Not just for your primary bills, either, add up how much you actually spend in a month on everything and save 6 times that. That way, if you end up in a shitty situation, you can walk away and not have to worry about money, and you don't have to start eating ramen noodles everyday. I feel like money (or the lack thereof) is usually the reason why people put with so much crap. You don't need FU money, just enough to give you a comfortable runway to getting a new job. If you're even a halfway decent developer and you're in a decent market, six months should be plenty of time to get a new job.
It was actually one of my managers who told me to get some perspective about it, it was very hard for me to realize that my work ultimately doesn't define me.
The contract between employer and employee is a simple one. You trade skill and time for money [Period].
I wish this could be easier.
I found that this made me a better employee - focused on completing work quickly during the working day.
Easier to set these ground rules when you start with a company, also easier to set when you are 40 than 20.
http://fortune.com/2016/06/02/lying-leadership-skills-expect...
Even if you entire leave aside how immoral this advice is, it is still a terrible strategy for success: unless you are a Kasparov-level master of lies, you are going to make your life terribly complicated and this will weigh you down and make you miss a shit-ton of legit opportunities.