Live data from Hacker News

Veteran engineers (10 yrs exp+) advice needed

news.ycombinator.com

11–20 of 44 posts

Re: Veteran engineers (10 yrs exp+) advice needed

#11
post #9
post #2

None. My choices where all terrible and held me back. Stuff like naively believing the company promises, working with obscure tech, switching stacks multiple times, stuck with the same company, etc. I guess I'm a good example of what not to do.

Bad experience are even more valuable than good ones. I think that because you probably can tell what and why happened, and what you could and couldn't to prevent that situation.

It's only helpful if it's actionable. I don't have anything actionable.

Re: Veteran engineers (10 yrs exp+) advice needed

#12
I've been working in the industry for 15+ years (including internship). I've job hopped every few years (currently working for a FAANG company), but I know devs with similar experience who have had the same job the whole time. Both can be very successful.

I think the biggest differentiator between a good engineer and bad engineer is ownership. Care about your work (not to the point where you have no work/life balance) and be passionate about your craft. That's what separates a good engineer from a bad engineer.

As for your career, remember this is your livelihood. If a company is falling apart, go look elsewhere. If a company isn't giving you a raise you deserve, talk to your manager.

Re: Veteran engineers (10 yrs exp+) advice needed

#13
These are all gleaned from mistakes I've made or seen made in my career:

. Don't do a good job; only seek to make sure ppl (managers and co-workers) are happy with the job you do.

. Do what's best for you (not necessarily the organization). Aka Resume Oriented Architecture. Aka ROA for the best ROI.

. View being employed as a business. Would you ever start a business to sell to one client? Always be looking for the next client.

. Never document anything. Sadly, the more obscure language/tech/code/artefact you emit, the harder it is to get rid of you. I inherited a whole team that had all the router/switch/etc passwords in their heads "for security reasons". They could not be fired, even for coming in at 10.30am and leaving at 3.30pm, constantly missing meetings, etc.

. Hire someone to replace you once you've built an inscrutable system. You can't get promoted if you still do everything and you can't do nothing (manage) if there are things to do.

. Save and invest often. If you do, by the time someone competent is in a position to see how bad a job you did and bring the hammer down on you, you'll have enough to take up woodworking and occasionally chuckle to yourself thinking about how anyone would ever right the trail of destruction you've left.

. Never tell anyone these things. ;>

/sarcasm

Re: Veteran engineers (10 yrs exp+) advice needed

#14
The people around me made the biggest difference. Its not hard to find ways to work with great people. Everyone needs help in some form or the other, in this complex ever changing world we live in, and if you are paying attention to what other needs, you can be of use to anyone. And once interesting, driven people find you useful, doors keep opening.

Re: Veteran engineers (10 yrs exp+) advice needed

#15

I've been in my current role for nearly 9 years, working in the field for 12+. I'd say that the one piece of advice is to not get stuck to a certain stack if you have the authority to make those decisions. You're definitely going to make the wrong decisions about the stack you choose, or the way you design elements of your code, but that is how you learn. Good problems to have, like scaling to thousands of concurrent…

i see people around me jumping ship every two years for various reasons, but you've been with a company for almost 10 years, do you think that steadiness has helped you become a better engineer or has detracted from helping you gain experiences?

I think my position is unique to others. A year after I started, my wife and I had our first child, so ensuring we had a stable and steady stream of income was my priority above all else.

Along with that, the company I work for has been good to me through the years. I've enjoyed working with my co-workers and the projects I work on. While I may be able to make more working for another company, I do think that the atmosphere and ethos of a company bring a certain amount of value that I would be trading off. I may be wrong, but I have no reason to think otherwise at this point.

I've always been self-taught, and always tried to be working on something on the side, so I believe that has allowed me to keep up with changes and try new things to scratch my itch of not being complacent.

When I first started working at my full-time job, I was the only developer working on my project and was entrusted with choosing the stack I felt could get the job done. It felt very early start-up in that sense. Shortly after that, I began working on another product that I'm still working on today, and wrote the main components in Go and some back office parts in PHP. To help support me being the sole dev, we had a few other devs come in and rewrite the majority of the components in Java because back in 2013, Go wasn't as widely used as it was today.

I'm thankful that for the most part I've always been able to choose the tech or libraries I want to work with, within reason. I try not to push it too much, for example we use MySQL and Redis primarily for data storage and transient storage, but part of our app does use Mongo and that was a direct result of me trying to hop on the bandwagon early on that I now do regret because Mongo provides us no benefit over MySQL.

If I do want to use some obscure tech to test out, then I'll use it for my own projects. If I feel comfortable enough then I'll use that for my client projects as well. Only if it's something I've battle tested will I see if I can use it in my primary job.

For the first time in 5+ years I am not developing a client side-project in PHP or Go, I'll be using Ruby on Rails, because I'm at the point that the stability of the toolset and my productivity outweigh any performance gains that may be had with Go, and these projects are primarily back office that won't be doing a ton of data crunching or have more than a dozen users using it at a single point in time.

Re: Veteran engineers (10 yrs exp+) advice needed

#16

These are all gleaned from mistakes I've made or seen made in my career: . Don't do a good job; only seek to make sure ppl (managers and co-workers) are happy with the job you do. . Do what's best for you (not necessarily the organization). Aka Resume Oriented Architecture. Aka ROA for the best ROI. . View being employed as a business. Would you ever start a business to sell to one client? Always be looking for the n…

I made it more than halfway down thinking you were serious. Sadly there are people who think these things.

Re: Veteran engineers (10 yrs exp+) advice needed

#17
I have called myself “programmer” for 40+ years, never “engineer.” I worked as an employee in cubicle farms for over 20 years, then freelanced full-time for about 15 years as I aged out of the cool startup/FAANG scene.

Since you asked about career moves, the best things I did:

- Learned relational databases and SQL in depth. Many applications (and almost all business applications) are built around databases. Databases tend to have more business value and longer lifespans than application code.

- Learned Unix/Linux and the command line tools. I can get a lot done with simple stable tools that come out of the box when other “engineers” are writing piles of code to get the same job done.

- Get along with other people, learn from them, listen and pay attention. I always want to learn how the business works and what people who aren’t programmers do. That pays off in the form of contacts in various industries and positions who may give me work later. Connections count for a lot, more than languages and tools (now called “stacks”) in my experience.

- Domain expertise. Rather than think of myself as a “C programmer” or “PHP programmer” I present myself as someone who can understand business requirements and add value. Knowing how logistics or retail or finance works has more long-term career value than mastering a programming language.

Re: Veteran engineers (10 yrs exp+) advice needed

#18
If you've primarily worked on B2B/enterprise software where the company makes a lot of money with a smaller user base, try working in consumer software where the company makes a lot less money across a lot more users.

If you've primarily worked on consumer software, do a stint working on B2B software.

The way you work as an engineer changes a lot among these two customer types, and there are valuable lessons you can learn and apply from working on each one. The systems design and scaling challenges can also be quite different.

Your versatility as an engineer who can recognize a wider variety of problems and define different solutions also improves.

There a lot of B2B-like problems lurking inside of big consumer tech companies. And a lot of things that can go faster and provide massive technical improvements if you deploy B2C thinking and tech inside a B2B company.

Re: Veteran engineers (10 yrs exp+) advice needed

#19

  * working in a consulting shop (for breadth of experience)
  * working in a big company (exposure to scale I can't get any other way, though I didn't stick around long enough, tbh)
  * working with a product for years and years. makes you think about ways to help future you in a way that consulting won't.
  * blogging about problems I found interesting. to write a description of a problem is to begin to truly understand it.
  * speaking. doesn't have to be at a bigname conf, even at a meetup will force you to learn.
  * founding a startup. not for everyone, but super helpful to me in having user empathy, thinking about business process as well as code, GSD
  * doing a stint as a technical trainer. really improved my grasp of the technology.

Re: Veteran engineers (10 yrs exp+) advice needed

#20
The single best thing I ever did to level up my knowledge:

I left a (huge) company that I had been working with for seven years, to work for a tiny company. It taught me just how little I really knew.

If you want to level up as an engineer, once your current company runs out of things for you to learn, change companies to the exact opposite. Shift from a large company to a startup. Shift from education-based to finance-based. Shift everything that you can, so that you get completely different problems.

Post reply on HN