Ask HN: If you restarted your career, what would you do differently?
No matter the level of expertise or experience, it's always a favorite question of mine to ask people this.
If you could restart your career from day 1, what would you do differently (or the same)?
Please also leave years experience/current position.
97 comments
[ 2.7 ms ] story [ 171 ms ] thread41 with two kids, all that time spent working should have been spent experiencing the world and having a lot more fun.
I think a combination of getting more senior at work and having kids reduces your choices in how you can spend your time (To be fair it opens up new options as well). It highlights the value of your time and how little you got in return for it when it was abundant.
1. Change jobs more often. The only way to be paid market rates is to change jobs when your market value increases. Your employer has a strong financial incentive to keep you working as long as possible at your current rate.
2. Move into management quickly. I've heard it's different in other parts of the world, but where I am being a developer limits your career. In every software company the people who are the most influential, and the best paid, are in management or sales.
3. Be more aggressive about getting side projects finished and getting them out into the world. Like many developers, I've got a bunch of half baked ideas on my hard drive that could make decent open source contributions, side businesses, and there might even be a worthwhile startup buried in there somewhere. When all your publicly visible code is your employer's intellectual property, it makes it harder to sell yourself.
If you're on the Microsoft stack then Xero and Trade Me are the most obvious choices. Mobile development and Ruby on Rails are somewhat popular. Wellington is a government town, so there's a fair amount of work maintaining legacy platforms if that's your thing.
Quality of life is decent. Good weather most of the time, better traffic management and city planning than Auckland, good food and coffee. The place feels like it has a personality.
You will not be paid well compared to Australians and Americans. The cost of living is lower than in those places, but still high relative to salaries. Food is expensive, housing is expensive, broadband is expensive and somewhat slow, anything you want to import will have to travel a long way which raises the price, and all purchases have 15% GST.
https://www.wetafx.co.nz/jobs
I don't think that's necessarily true in Silicon Valley, where companies like Google, Facebook, Airbnb, Uber, etc. have parallel career tracks for individual contributor vs manager, with equal salary bands. I'm earning way more as a high-level IC than mid-leveled managers.
Another to add as of two weeks ago - start learning marketing earlier.
Different:
1. Looked for more work while I had work. Even these days it's easy to get into the work-home-sleep wash repeat cycle and forget about the next gig.
2. Committed to the top tier company that wasn't leading me along with bread crumb contracts. That company was artist driven and I kick myself for leaving over software preference.
Same:
1. Continued to push my social circle outwards, go to company events and hang out after work with 'em.
2. Doge overtime as much as possible. after 40 hours a week adding more time behind the desk neither improves the quality, speed, or beauty of the work.
It's a differentiator, all other things equal. But it's not "insurance."
What I would have done differently...
1. Spent more time working on my own ideas and less time on other's ideas
2. Exchanged W-2 work for 1099 work to give myself more flexibility to do #1
3. Stayed in the city longer before moving to the suburbs
4. Spent more time outside
5. Spent more time working out and eating right
6. Spent less time working
One thing I would not have done different...
1. I still work have gotten my Computer Science degree -- even if I could get a job without it, they were some of the best 4 years of my life and I met my wife there
1099 work would give me more freedom to pursue other tasks while still doing work for other companies.
Also, you can't tell a contractor what hours to work. So I would have more leverage to set my own hours.
Edit: if I was in a state where non-competes were generally unenforceable it would probably be a different story.
- I'd quit my first job earlier. I stayed there for 10 years - should have left at 5. Things went gradually downhill after that.
- Spend more time building longer-lasting projects. I kept doing freelance work on the side for quick and small amount of money instead of using my free time to develop something that would benefit me in the long-term. I can't even remember those freelance projects.
I would have also pushed them further to purchase even a mid-range machine to learn all this on, despite our financial difficulties back then.
If I made these decisions early on, I know I would have taken a different path. At least, it wouldn't be the mess I'm in now.
I would've attempted to build something cool instead of build stuff for other people. I realized very late in my career that there was more going on than the agency life - at one point I was even chasing the big agencies. I built fun little joke sites, but never attempted to build something that could've been a business. Reading "Founders at Work" really opened my eyes to what I could've done back in the day -- and while it's not too late, it definitely feels like I missed out on a lot of opportunities.
Re wind the clock a scant 16 years. Linux was barely a thing, you were buying servers from sun, putting them in a cage to "start up". There wasn't really a way to be technical and be "ramen profitable".
Look at the environment now. You can start up a SaS business with the skills you have acquired, and probably what you spend a month on coffee from Starbucks, or a few lunches out.
Just build something, then go build something else, keep building things till one of them starts to get traction, and then iterate on that... wash rinse repeat. Will you get rich? who knows? But the more arrows you shoot, the more likely you are to hit a target.
It has never been easier to just do something than it is today.
The internet in general is becoming less of a frontier, so yes highly specialized folks have more opportunities but not primary industry guys. Also, the flood of VC into ridiculous startups has distorted the playing field.
Generically I would advise, research your options, make the best decisions you can, and don't look back. If you end up unhappy with something, change it. Always be ready to answer "what would it take to hire you away from what you're doing now" because you never know when the question will come.
26 years in computer technology and software, experience in academic large enterprise, mid-size business, and a couple of startups.
1. I would have pushed myself to really harden my understanding of the languages and frameworks I've used over the years. I usually get a cursory understanding and then just dive in. I should have, and still need to, continue to read, learn and keep up with ongoing changes and new practices.
2. I'd learn to negotiate sooner. It's never "work" when you do what you love, but then - yeah it is and you should be paid what you're worth.
3. As someone else said, push myself to finish side projects. I doubt I have any real moneymakers lying around, but I also have hardly anything to show for 11 years of work as it's only been with 3 companies and more than 4 years of that was not consumer-facing work. I still want to put something out there that I can proudly show off and say - I made that.
4. I had an opportunity to move to California (was in the midwest at the time) at one point and do basic entry-level database stuff for a friend. I backed out because it was a huge change and I was scared and I had just come off being an IT director and probably wanted something higher paying. Going back, I think I'd probably take the shot and see what happened. As the kids these days say - YOLO
5. Contribute more to open source. Both to give something back and to try to cure my ever-present imposter syndrome.
6. Definitely dive into mobile sooner. I'm a developer, not a designer, but I still have to throw together sites now and again and even the mobile-friendly aspect of bootstrap evades me. Responsive? What? It looks good at 2560x1600!?
7. Finally - and perhaps most importantly - BACKUP, BACKUP, BACKUP! Lost all my user data on a ramen-profitable side business that I managed to get going before I ever got my first professional gig as a programmer. Host corrupted my database and didn't backup either. I can't even remember who it was now, but this was 2004/5. I will forever kick myself for that one.
The biggest regret I have is taking a string of 4 jobs that all sucked, and sucked the life out of my enjoyment of programming. I lost about 6 years to these shitty jobs and it left me demoralized and depressed. But then I took 1 year off, which did wonders for me, I suggest it for everyone at least once in your life.
I should have focused more on becoming an architect instead of a front-line programmer, so that I would have a higher-ranking position now. But I moved around too much, and every time had to keep proving myself, which stunted my career. There's a fine balance between moving around to get better experience, and sticking around to level up in rank.
That said, I still love programming to this day, and feel blessed that I got into this field that pays so well and gives me a lot of freedom to move around.
1. Work on products that other people would find useful, and then be sure to release it. Early in my career I was a contract software engineer for an agency. I was selling my time instead of making products that could be resold with zero marginal cost. I would have focused on making products sooner.
2. Either learn, or earn. The best jobs frankly are both. If you're learning, it's OK if you're not getting paid as well, and ideally it's not forever. If you're not, then you better be earning valuable equity at a company that matters. Investors get a portfolio but you only get one place to work, so it's even more important that you invest your time in a place that matters. I would probably not have worked at Microsoft knowing this. I wasn't earning or learning at the time.
3. For a while, I decided I wasn't going to code anymore. That was a mistake. Thank god I ended up picking up software engineering again. Don't ever stop coding, even for a fancy title like program manager. If a job has a fancy title, the job probably sucks. Writing software is very high leverage, and more meaningful than writing a lot of emails.
I'm trying to tailor my career now to be primarily programming-oriented, but with opportunities to explain ideas/concepts and think about value creation. A relentless focus on creating business value is a huge differentiator in software engineering.
1. Build your own company early on if possible. Only way to really make money.
2. If you must work for others change jobs every 3-7 years. And take your equity with you. The company's success or failure will not depend on you. Really it won't. Companies by their very nature are designed not to depend on individuals.
3. Learn to manage people. Hard job - your success depends entirely on the success of others. Talk about uncomfortable.
4. VC investment is the not the only way to fund your company. VC need the next MS or Apple etc to exist. The chances of you pulling that off are equivalent to buying a lottery ticket. The chances of you creating a company that makes a small number of people an above average return is quite good. A VC will find that a waste of time and exit leaving you with nothing. VC ask you to do something they are unwilling to do. Invest all you capital in one risky venture.
5. Don't be greedy. Easier said than done. If you can get a couple million for part of your equity now and live modestly but comfortably - do it. Freedom is everything - anything more is gravy. If the company does in fact take off the small bit of equity leftover will pay off big anyway.
Good luck
I think this isn't true these days, looking at the salary spreadsheet. In fact, I have friends who are putting in insane workloads building up their own company that would have probably been better spent slaving away at AMZN.
I also wish I had gotten more involved in other projects early on, as my current interests and portfolio are pretty narrow in scope.
The one thing I really miss from not studying computer science is a network of programmer friends. It's a lot harder to meet new people after university. I'm currently trying to hire my first employee, and the advise I usually get is "hire your friends from university" -- but that doesn't work if non of them are programmers.
You can meet new people at meetups etc, but it takes a lot of effort.
I'm running up against the same walls, too, when I go to local user group meetings. Then I also find out my interests are mostly different from theirs.
1. Make more friends. 2. Have more sex.
1. Make more friends. 2. Have more sex.
1. Learn to sell. The single biggest hindrance to my career to date has been not learning how to sell myself and my work to management. My entire life I was always told that if I did good work I would be recognized for it. That's a big fat lie, especially in a field where your manager doesn't necessarily understand what it is you do. Sales is also applicable to everything from finding a new job to freelance to consulting to selling side projects. It's probably your most important skill, bar none, even programming.
2. Pick an industry to specialize in, not a technology. Basically, be an X who can program instead of yet another JS programmer.
3. Stay away from the video game industry.
4. Always take care of your mental and physical health first. Burning out blows.
I worked in the video game industry for three years before burning out. I let the company I worked for work me 80 hours a week for 2 years straight[0]. I let them because the work is addicting and I was having fun.
When the project I was working on was finally canceled (we never launched), I was given the opportunity to move on to other teams, but to my surprise I just couldn't bring myself to make the transition. I basically spent two weeks browsing the internet instead of looking for a new game team. When I hadn't transitioned to a new team, I was laid off.
I looked around at other companies (inside and outside the game industry) and once again, to my surprise, found I couldn't progress past the phone conversation stage of the interview process. I would schedule technical interviews and cancel them at the last second or simply not show up. This went on for a few months before I simply stopped looking for work.
I didn't work for a year after that. Then I took on short web dev contracts and, between the contracts and my side projects, over the course of another year finally worked back up to a full time 40 hour a week work schedule.
At this point, I'm sure there are people here that would say what happened is entirely my fault and they would be right. I would have been better off had I refused to work more than 40 hours a week and then been fired.
[0]: Fun fact: during that time, I did the math and found what I was making as an hourly rate. My brother works manual labor for the DOT and made more per hour than I did during those two years.