Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
Paolomania
Apr 26, 2006

Some of shrughes recent threads on big-problems/certs got me thinking that we've been lacking a general compliment to the "newbie programming" thread for old dogs. Even those who are far past undergrad and the first interview need to bounce ideas around to figure out where to go next. My suspicion is that as the forum ages, there will be more posters in this situation around, so let's discuss:

  • Career Advice: where are you at and where to next?
  • Career Strategy: what positions to seek and how to get there
  • Companies: where are the opportunities and where will your cog get welded in place
  • Technologies: where to place your bets for the next 5 years - what is waxing and what is waning
  • Moonlighting/Side Projects: if you can make the time, how to spend it?
  • Degrees/Certifications: when do you really need a resume booster?
  • Politics: how to handle situations when you are staying for a while

Adbot
ADBOT LOVES YOU

Paolomania
Apr 26, 2006

My admission: I feel like a change in direction is coming up for my programming career and I have no idea where to go next. I've been working as research staff in academia for a few years and although the high-level problems have been interesting, as a non-academic there is no upward mobility and I've been given mostly the uninteresting grunt-work and the tech has all been highly specialized nuts-and-bolts stuff that I really don't want to make a career out of. I'm feeling like I'm a mile wide and an inch deep and I need to train-up expertise in something with more commercial appeal so that I can move into a position with some prospect for growth.

However, the choices seem daunting and I don't feel like I have a finger on the pulse of where the industry is headed. Is mobile going to continue to be big? Are there trends conspiring to waylay webdevs? Is high-performance computing a safe niche? I'd appreciate people's thoughts on what tech is a good bet for the near future.

Doctor w-rw-rw-
Jun 24, 2008
I was just looking for a thread like this, thanks! I'm being considered for a senior software engineering position, but I've got to ask: What does it mean to be a senior software engineer? I'm comfortable with my skills, but I know there's more to it than that. Any veterans care to chime in?

What can I do to develop as an engineer outside of the technical aspects, which (IMO) I have well under control? What are some signals I can look for to determine if a company is good or bad, in terms of leadership, communication, opportunity, etc.?

Paolomania posted:

Is mobile going to continue to be big? Are there trends conspiring to waylay webdevs? Is high-performance computing a safe niche? I'd appreciate people's thoughts on what tech is a good bet for the near future.
Yes. Mobile is growing and shows no signs of slowing down in my experience. Webdev is a broad set of skills, but the skills are becoming commodities more quickly than mobile as frameworks that help application developers bootstrap mature. Mobile development offers more opportunities for top engineers to shine, in part because resources are more constrained and implementation tends to be closer to the metal than large websites (for good reason: size+performance is way more visible on single devices). iOS has revenues that are many multiples of Android's, and having spent my career developing both my iOS and Android skills extensively, I would definitely advocate for iOS as a gateway to mobile development, even factoring out the costs to transition to a Mac (if you haven't already), buying a device, etc. - besides the platform being much more profitable, it's much easier to pick the targets you want to reach: the OS version cycle is by far less broken, and the devices far, far, far less invisibly broken.

That said, Android positions compensate competitively with iOS positions, because (again, in my experience), despite the lower revenues, Android is harder to hire for, especially when it comes to finding people who aren't full of poo poo. On the other hand, iOS empowers engineers and designers to care about and execute on improving application quality to a much greater degree than Android does.

tl;dr: Mobile > webdev; iOS > Android if you want to get your foot in.

As for high performance computing, that sounds like a pretty vague term. If you're looking to go into ops (Operations), which is basically a union of sysadmin and engineer, and involve yourself in the maintenance, creation, and continued development of large systems, there's always demand, but it is also pretty challenging to get a start in, since you need to get really good at a lot of tools and be good at holding a mental model of how large systems work in your head. It's not a particularly *hot* thing, but I guess it is perpetually very warm, so to speak, to be one of those magicians that engineers a really robust backend for a company.

Software is eating everything and mobile is eating nearly as much. Usage patterns are shifting away from laptops and towards mobile devices in a big way and it's not a flash in the pan by any means, IMO.

JawnV6
Jul 4, 2004

So hot ...

Doctor w-rw-rw- posted:

I was just looking for a thread like this, thanks! I'm being considered for a senior software engineering position, but I've got to ask: What does it mean to be a senior software engineer? I'm comfortable with my skills, but I know there's more to it than that. Any veterans care to chime in?

What can I do to develop as an engineer outside of the technical aspects, which (IMO) I have well under control?

Are you mentoring the junior members of the team? Are you speaking to external teams and understanding the business value that your technical work has? Are you client facing?

I'd say the border is somewhere around an engineer you can sit in front of a well defined problem and expect a professional solution some time later. Doesn't need technical mentorship to produce results, but doesn't really reach outside the technical tasks to engage in defining those problems.

This is a very incomplete answer, I'd look forward to others in more traditional software shops' take on it. This is general enough to apply to engineers beyond software.

Doctor w-rw-rw- posted:

Software is eating everything and mobile is eating nearly as much. Usage patterns are shifting away from laptops and towards mobile devices in a big way and it's not a flash in the pan by any means, IMO.
I'm utterly compromised and biased, but I think the next hot area after mobile is wearables. Even those require a mobile dev at some point in the process, blinking lights are great but having a high-def screen and internet connection a BLE (sorry, "Bluetooth Smart") connection away is awesome.

New Yorp New Yorp
Jul 18, 2003

Only in Kenya.
Pillbug

Doctor w-rw-rw- posted:

I'm being considered for a senior software engineering position, but I've got to ask: What does it mean to be a senior software engineer? I'm comfortable with my skills, but I know there's more to it than that. Any veterans care to chime in?

That varies from company to company. In some places, it means that you've been working there for a long time or have been working in the industry for a long time, and thus has very little correlation to actual skill as a developer.

In other companies, it's actually well-defined and has additional responsibilities, such as taking a bigger role in the architecture of applications or mentoring other developers.

Paolomania
Apr 26, 2006

Doctor w-rw-rw- posted:

I was just looking for a thread like this, thanks! I'm being considered for a senior software engineering position, but I've got to ask: What does it mean to be a senior software engineer? I'm comfortable with my skills, but I know there's more to it than that. Any veterans care to chime in?
That is pretty much my job title now. For as long as I've had it (through several sites both commercial and academic) I've still been low on the totem-pole and the positions have had little to do with taking more design responsibility or managing small teams (which is always what I thought it entailed).

Doctor w-rw-rw-
Jun 24, 2008
Thanks for the thoughts. To pose one of my other questions again, what are some signals that a company is good or bad, in terms of leadership, communication, opportunity, process, etc.?

JawnV6 posted:

I'm utterly compromised and biased, but I think the next hot area after mobile is wearables. Even those require a mobile dev at some point in the process, blinking lights are great but having a high-def screen and internet connection a BLE (sorry, "Bluetooth Smart") connection away is awesome.

Connect the right dots and it's clear enough that Apple spun up a wearables development team some time ago. I think that that's a clear enough indicator that it's going somewhere in the next two years, but as a general category, it hasn't fully proven itself to the degree that phones/tablets have, and I think it's not unreasonable to expect the skills to translate over from mobile to wearable to some degree, since the solution would probably share CPU architecture (ARM) and possibly even OS. On the other hand, there's also the upcoming VR tech from Oculus, which is an entirely different approach and extremely compelling for other reasons.

Dren
Jan 5, 2001

Pillbug

Doctor w-rw-rw- posted:

What does it mean to be a senior software engineer?

Probably the only consistent characteristic of senior software engineers across different companies is that they bill more than a junior software engineer. If you want clarification about what the title means you should ask wherever it is that you are interviewing.

New Yorp New Yorp
Jul 18, 2003

Only in Kenya.
Pillbug

Doctor w-rw-rw- posted:

Thanks for the thoughts. To pose one of my other questions again, what are some signals that a company is good or bad, in terms of leadership, communication, opportunity, process, etc.?

If they don't ask you to write code at some point in the interview process, they're almost guaranteed to be bad.

kitten smoothie
Dec 29, 2001

Paolomania posted:

My admission: I feel like a change in direction is coming up for my programming career and I have no idea where to go next. I've been working as research staff in academia for a few years and although the high-level problems have been interesting, as a non-academic there is no upward mobility and I've been given mostly the uninteresting grunt-work and the tech has all been highly specialized nuts-and-bolts stuff that I really don't want to make a career out of. I'm feeling like I'm a mile wide and an inch deep and I need to train-up expertise in something with more commercial appeal so that I can move into a position with some prospect for growth.

However, the choices seem daunting and I don't feel like I have a finger on the pulse of where the industry is headed. Is mobile going to continue to be big? Are there trends conspiring to waylay webdevs? Is high-performance computing a safe niche? I'd appreciate people's thoughts on what tech is a good bet for the near future.

I was pretty much exactly in your shoes, up until about six months ago.

I was 10 years out of school and outside of a stint working as a consultant for an international vendor of ERP software, my entire career was research staff in an academic lab. Admittedly we were very well funded so we had some crazy compute resources and some novel big data problems. However, while cutting edge bioinformatics work was going on there, I wasn't doing that myself; I wound up getting pigeonholed as an infrastructure reliability developer. I was basically dealing with all the pipeline glue software we wrote, and trying to unwind layers of hasty decisions so as to make things more robust.

While my immediate and middle management folks realized this was important because we were getting buried under technical debt, upper management didn't really see that as a priority (they wanted results as quickly as possible). So without a lot of resources allocated, I was perpetually behind the 8-ball and I just felt like I was doing constant gruntwork trying to keep up. Career-wise, it was also plainly evident to me that I just wasn't going to get anywhere further there without a PhD.

I wound up hopping into mobile instead. I had already done some seriously small-time freelancing, having built a few little iOS and Android apps. I had a friend who worked remote for a Silicon Valley software company doing iOS work; I asked him for a referral and wound up getting hired in August.

Honestly I have never been happier at this point. I'm doing interesting work, I'm making a product that I enjoy dogfooding, and it's just pretty damned awesome to see your team's app get featured in the iTunes store. I've had a fair amount of impostor syndrome to chew through, because I had done zero full-time mobile work and felt like I had totally just backed my way into this. But my boss and colleagues aren't stupid; they are good at spotting lovely developers, so I can't insult their judgment.

If you want to go into mobile, I would definitely recommend starting in iOS versus Android. Some of the tooling sucks (I don't like Xcode, but I dislike Eclipse and IntelliJ more) but like Dr 666 says, you'll have a lot less surprises in terms of little elements of sub-surface brokenness in Android. Now that we've pretty much shipped our major iOS release, I've hopped over onto the Android side and I am honestly regretting having told my boss that I was cool with that. Making a big app that people actually would want to use just seems a lot less headache-inducing in iOS.


Doctor w-rw-rw- posted:

I was just looking for a thread like this, thanks! I'm being considered for a senior software engineering position, but I've got to ask: What does it mean to be a senior software engineer? I'm comfortable with my skills, but I know there's more to it than that. Any veterans care to chime in?

I think this really does differ between organizations. At my last job, a senior software engineer was one who was primarily a mentor. We had a lot of really green fresh out of college kids on the team and you were expected to pair with them so they learn and have someone to bounce ideas off of. At this job, there's probably a dozen people on my team and I think all but two of us are senior developers, so there's no mentoring really going on. The expectation there is you're supposed to have honed your ability to analyze a larger problem, solve it on your own, and be able to cogently justify your decision.

kitten smoothie fucked around with this message at 07:08 on Feb 8, 2014

Doctor w-rw-rw-
Jun 24, 2008

Excellent story, and it's great to hear some validation on the iOS and Android comparison. Word of advice for Android that I haven't already covered in the Android thread in past years - avoid animation and if possible, don't try to cache anything for your first version. Any local data model and abstraction will almost certainly change many times throughout the development if you do so save yourself the trouble and just get something working. Don't use fragment back stacks (fragments - use your best judgment). Forget about supporting tablets in v1 as well.

I remember being pigeonholed. It's particularly easy to be pigeonholed into Android, in my opinion, especially if you complain about it. Sorry to say, but bury the pain or bear it on the forums. The best way out is to let the next naive sucker take your place on android, ruthless as that may sound. Then again, I am particularly strongly against developing for Android. Real talk: the combination of it and my boss at the job where I did it drove me into a severe depression that very nearly killed me, because he refused to acknowledge any responsibility for my well-being and did not have sympathy for the difficulties and pushed me unreasonably hard and blamed me (side note: that depression is way behind me now, though). Returning to the point I was trying to make, I suggest expressing a desire to get the ball rolling on Android and then hand it over to others and return to iOS.

Anecdata: I've been to both WWDC and Google I/O. I have met several iOS and Mac devs passionate about engineering, design, and products, and love writing them on top of Apple's SDKs. I have met none who enjoy Android in a similar fashion, and close to none who enjoy Andrpid development, period...and none of the people who liked it were even close to senior-level. Obviously, I am biased and have a non scientifically gathered set of anecdotes, but I trust my informed opinion on this enough: if programming is more than a job to you, or you like using your imagination, or if you just want to focus on building things instead of fighting code, don't get stuck on Android. Treading water pumps poison into the soul.

-----

Different question. This thread isn't just going to be about careers, right?

Wearables aside, what do you see as big opportunities in the industry? Mobile payments has already had a couple of years to reach a critical mass and a glut of companies jumping into the space make it unappealing to jump into, and the incumbent players in hardware are going to benefit from scale and tend to push out competition with price and distribution.

What kind of software is going to be important in the next five years that hasn't yet been made (or hasn't yet reached maturity)?

hirvox
Sep 8, 2009

Doctor w-rw-rw- posted:

I was just looking for a thread like this, thanks! I'm being considered for a senior software engineering position, but I've got to ask: What does it mean to be a senior software engineer? I'm comfortable with my skills, but I know there's more to it than that. Any veterans care to chime in?
More often than not, the job is not about writing lines of code. It's about helping your team work more efficiently. Sure, occasionally you get to immerse yourself in implementing an algorithm or design pattern that would have took junior engineers days or weeks to develop. But it's more important that your team gets poo poo done. You talk with the customer and figure out what they need (which can be different from what they want). You turn vague functional specifications into implementable tasks. You read countless pages of bad API documentation and figure out how to use it. You research new tools, plugins and libraries and choose which ones will save your team from performing busywork or stop them from reinventing the wheel. You make sure that every part does what it's supposed to, and that they fit together to form a coherent whole. You teach other developers best practices. You help them debug problems. You set up servers, version control systems continuous integration processes and define policies on how to use them. You enforce those policies. You automate. You document everything you do, so work doesn't stop just because you're in a meeting, in a conference on vacation or on sick leave. You lubricate the proverbial gears.

Glimm
Jul 27, 2005

Time is only gonna pass you by

Doctor w-rw-rw- posted:

Forget about supporting tablets in v1 as well.

While Android can be painful to work with at times I have to disagree with this completely. If at all possible design for tablets first, use Fragments, and for the most part Android will handle the heavy lifting for you. Just use custom resource folders for particular width devices and it's actually quite a lot easier than supporting say, the 3.5"/4" iPhone (that is to say, extremely easy ). Basically if you follow Android design principles, you're going to have a good time.

The rest of the Android complaints I tend to agree with (though animation is fine if you are minSdkVersion=14) - but that's maybe because I've been forced to do mainly iOS only at my day job for ~2 years now :( but I do keep up with my Android team and things have improved drastically as far as community support/developer excitement.

Paolomania
Apr 26, 2006

Thanks for the anecdote, smoothie. It provides alot of food for thought and reinforces the idea that it really is time to move on from academic research.

Doctor w-rw-rw-
Jun 24, 2008
Nice description!

Glimm posted:

While Android can be painful to work with at times I have to disagree with this completely. If at all possible design for tablets first, use Fragments, and for the most part Android will handle the heavy lifting for you. Just use custom resource folders for particular width devices and it's actually quite a lot easier than supporting say, the 3.5"/4" iPhone (that is to say, extremely easy ). Basically if you follow Android design principles, you're going to have a good time.

The rest of the Android complaints I tend to agree with (though animation is fine if you are minSdkVersion=14) - but that's maybe because I've been forced to do mainly iOS only at my day job for ~2 years now :( but I do keep up with my Android team and things have improved drastically as far as community support/developer excitement.
So using Fragments are a good idea period, but Android tablets in my time were far less popular than Android phones, and to reach the total addressable market, I always had to write against APIs 7 or 8. Perhaps the Nexus tablets changed this somewhat, but given the engineering tradeoff of polishing a tablet interface and making a good phone interface, pick the phone every time. If you don't have to choose between them, sure, do both, but for a minimum viable product, if tablets aren't a part of the spec, it's best to keep it in mind and release for phones first, if that saves time. This also reflects my more general belief that all other things being equal, the more targets you try to hit given a constant/stable amount of manpower, the lower the attention each target gets, and thus the greater the risk of lower quality of each experience. But there is certainly plenty of room for us to hold different philosophies :). I personally go for release fast - release often.

Though in terms of supporting 3.5" and 4" iPhones, there's a trick to making it easy that involves using Objective-C++ to create structs with measurements, and building your layout around that (ask me in the ObjC thread)

E: vvvv if you want GCD you might be able to mimic it with the executor framework, and writing some sort of glue to the main thread handler for main thread operations (I.e. UI). Relevant info: http://developer.android.com/training/multiple-threads/index.html

Doctor w-rw-rw- fucked around with this message at 21:20 on Feb 8, 2014

kitten smoothie
Dec 29, 2001

We've basically just determined that there's about a dozen devices we really care about and we'll use for our automated test suite, mainly recent Samsung, HTC One, Galaxy Nexus/N4/N5, and recent Moto. For devices not on that list, then API 15 or GTFO. That's made my life easier.

When I say I regretted going into Android I think I can really boil it down to that I do not like developing in Java. My prior experience with my day job was in Perl and Ruby primarily so I just have developed a negative reaction to seeing all the boilerplate necessary to make things happen in Java. I find all the fluff distracting when trying to read code, and I hate having to write it all, and I just think it's a testament to that fact that IDEs will attempt to fill in what boilerplate it can for you. I also really, really miss blocks and GCD.

That having been said I've found that iOS has its own share of rough edges, especially in iOS 7. I can grep through our codebase for "rdar" and find plenty of places where we are doing workarounds for iOS bugs. You just don't have to deal with them as long because people upgrade faster.

But maybe that all belongs in a "share your mobile dev war stories" thread.


Doctor w-rw-rw- posted:

Wearables aside, what do you see as big opportunities in the industry? Mobile payments has already had a couple of years to reach a critical mass and a glut of companies jumping into the space make it unappealing to jump into, and the incumbent players in hardware are going to benefit from scale and tend to push out competition with price and distribution.

What kind of software is going to be important in the next five years that hasn't yet been made (or hasn't yet reached maturity)?

I think the health tracking space is going to be really, really big, and this is why I believe the rumors of Apple getting into this. You've got an aging baby boomer population carrying iPhones, they have money, and their doctors are telling them they need to keep a closer eye on their health.

Counting steps is great and the trackers we have now are pretty revolutionary in terms of helping people keep tabs on their lives, but that's only barely scratching the surface. I think we're going to see software that will provide people a tighter loop between what they eat, what they do, and how their biometric info reacts.

Obviously this ties back into wearables, too, though, and those nifty wearable sensors for things like blood sugar and the like. It's a huge market opportunity that in TYOOL 2014 diabetes patients still need to prick their finger and look at a device with an LCD numeric readout, and pretty much apply some heuristic to that to decide how to go about their day.

Also as much as I left bioinformatics to go into the mobile world, that's still a huge space that will only get more important. At this point the sequencing technology is starting to get really commoditized, at least in terms of a box where you put in DNA in on one end and get a 350GB file with 30x sequence coverage on the other. The analysis of that data, however, is still pretty greenfield. There still has yet to be a clinical analogue to 23andMe for whole genome sequencing where a doctor could send in a tumor biopsy or a data file for that tumor genome, get back a list of possible genes involved, and correlate it with a list of possible drugs that target expression of those genes.

At some stage in the future we'll basically move toward a desktop analysis suite where a hospital lab can sequence a patient like they do bloodwork now, and then the doctor can run the analysis on the cloud and get back actionable results.

kitten smoothie fucked around with this message at 20:01 on Feb 8, 2014

fritz
Jul 26, 2003

JawnV6 posted:

I'm utterly compromised and biased, but I think the next hot area after mobile is wearables. Even those require a mobile dev at some point in the process, blinking lights are great but having a high-def screen and internet connection a BLE (sorry, "Bluetooth Smart") connection away is awesome.

I'm told there were a shitload of wearable computing companies at CES this year.

Professor Science
Mar 8, 2006
diplodocus + mortarboard = party

Doctor w-rw-rw- posted:

Thanks for the thoughts. To pose one of my other questions again, what are some signals that a company is good or bad, in terms of leadership, communication, opportunity, process, etc.?
(oh hey this also is sort of an answer to differences in senior positions question too)

For me at this point in my career, after having been in bad situations, accountability is pretty much the signal of whether a place is worthwhile or not. Let's say a longer-term strategically important project fails very suddenly--completely misses schedule, simply does not work, so much worse in some critical area that it's not a viable product, whatever. This failure comes as a surprise to higher-ups. Assume this is at a company where you have several levels of hierarchy (in other words, any larger company)--engineers, manager, director, VP, executive staff. Whose head(s) will roll as a result of this?

When managing people, the worst thing that can happen is a surprise. Surprises should never happen. If you're a relatively junior engineer, senior engineers and managers will check in with you to make sure that everything is okay and under control and working as planned. Becoming a senior dev moves a lot of that responsibility over to you; it's now your job to make sure that the team is working okay, notify your management chain of problems, and generally be proactive.

Back to the original failure question--if your company would fire individual engineers without evidence of gross negligence (guy said he's been writing code for six months, turns out he's been playing dota the whole time or something like that), that's a very bad sign, because it means management is only interested in protecting themselves. The exact causes for the failure should be determined--where was the critical piece of information missed? Was someone along the reporting chain filtering information about how things are going, or was due diligence just lacking during the planning process? That fault usually doesn't lie with the front-line engineers, it lies with the architects and managers and directors who approved everything in the first place.

If you can't imagine a director getting fired for a major project's failure, that's a really bad sign. Get out before too long.

Similarly, after major resources have been invested into a product, how often do you see its criteria for success change ("be the best" -> "be competitive" -> "exist in some way" for some major initiative)? Would your company actually fix that (change process to allow for more due diligence, fire architects, whatever)? There's a balance here. You want people to take risks and you can't always do totally thorough due diligence (would miss your market window, can't because of other deliverables you're tied to, whatever), but a project for the sake of having a project is insanely damaging except for the person who gets to wear its "success" as a badge.

tl;dr how many people between you and the CEO are playing politics to make themselves look good instead of trying to make good products?

re markets: mobile is huge and here to stay, desktops are dying, web probably won't take over mobile (sorry mozilla), anyone interested in perf (especially on mobile) has to get used to the idea of using different types of processors (in other words, if you're interested in doing high performance stuff, go learn CUDA, OCL, RenderScript, C++ AMP, whatever), machine learning will explode (especially in retail), wearables will be a thing because everybody thinks it will be a thing, robots in some form may be a thing (sensors and cameras have gotten good, SoCs have gotten good, it's more a question of what would you do with one than can you do it at this point)

Sign
Jul 18, 2003

Doctor w-rw-rw- posted:

Thanks for the thoughts. To pose one of my other questions again, what are some signals that a company is good or bad, in terms of leadership, communication, opportunity, process, etc.?

One of the more interesting things I've seen regarding this is to ask to see their code during the interview. If they won't it says that they don't feel comfortable with it or don't feel they have the autonomy to do so. If they do show it to you, ask them to show you a good part and a bad part.

A lot of what makes a company good or bad varies from developer to developer a place where I am happy would be different from where you would be happy.

Doctor w-rw-rw-
Jun 24, 2008

fritz posted:

I'm told there were a shitload of wearable computing companies at CES this year.
There were many of PMPs before the iPod and plenty of PDAs before the iPhone, none of them very good (I owned a RCA Lyra and a Dell Axim). I have a sneaking suspicion that whatever comes next, Apple will put a product out that changes how other people were thinking about wearables. On the other hand, it could end up being an AppleTV - interesting, but not good enough to change anything. I kind of hope that there's one clear non-Apple winner that puts out a quality product.


Interesting, but that makes it sound like turnover for senior levels/managers could be pretty high, and it's a high risk position. Can someone who reports early and often eventually be seen as too dependent on others, or be ignored on account of being too noisy? Crying wolf and being wrong seems like it could be as damaging to credibility as trying and failing to meet goals (with or without fault). What skills are involved in not loving up at that level?

Are there any good books to study the people parts of working in industry?

Professor Science
Mar 8, 2006
diplodocus + mortarboard = party

Sign posted:

One of the more interesting things I've seen regarding this is to ask to see their code during the interview. If they won't it says that they don't feel comfortable with it or don't feel they have the autonomy to do so. If they do show it to you, ask them to show you a good part and a bad part.
I think this is pretty bad advice, actually. Without context, code quality is totally meaningless. Something super-elegant and written in Erlang may be fantastically stupid for the job at hand. Some piece of crap you wrote in Perl and will never look at again may be perfect.

Doctor w-rw-rw- posted:

Interesting, but that makes it sound like turnover for senior levels/managers could be pretty high, and it's a high risk position. Can someone who reports early and often eventually be seen as too dependent on others, or be ignored on account of being too noisy? Crying wolf and being wrong seems like it could be as damaging to credibility as trying and failing to meet goals (with or without fault). What skills are involved in not loving up at that level?
yep, that's the hard part. it's a balance--don't hide things from your superiors, don't be afraid to ask for help, keep some regular lines of communication open in order to report your status, but don't panic over every little thing that goes wrong until it looks like it could impact the business. the important part is to minimize surprise. if you said three months ago, "hey, this could be a problem," and you said a month ago, "hey, it looks like this is going to be a problem," and now you're saying "hey, this is a problem that is happening right now and I need help to solve it," you'll be okay (at least at any company where you would actually want to work for a long time).

turnover *is* pretty high. I'll claim it's uncommon to last more than five years at a place in the bay. (part of that is growth of FB/Twitter, continued growth of Apple/Google, new Samsung offices, desire to play the startup lotto, and part of it is that it's easier to advance in some ways when changing companies than in the same company)

Pie Colony
Dec 8, 2006
I AM SUCH A FUCKUP THAT I CAN'T EVEN POST IN AN E/N THREAD I STARTED
how much free time do you guys find you get over a day? by which i mean time to just look at websites, blogs, maybe even videos or personal projects. also i guess overtime would be negative here.

Doctor w-rw-rw-
Jun 24, 2008

Pie Colony posted:

how much free time do you guys find you get over a day? by which i mean time to just look at websites, blogs, maybe even videos or personal projects. also i guess overtime would be negative here.

Disclaimer: I'm not working at the moment but this applied when I was, and I'm keeping it up in the meantime:

The workday is mostly for work, but it's not horrible to spend a couple of minutes here and there keeping up on relevant technical blog posts. Investing time in your craft outside of work is kind of necessary to get an edge. I'm developing my career in something I love, so ~20 hours per week outside of work is not a big deal, but could be to someone who doesn't enjoy it as much (caveat: for me, that 20 hours is soft/flexible; I frequently interrupt it to do stuff with friends, play games, etc.). But time in this case is more something you make than something you get/find.

Unless you mean how much time I spend on HN, SA, and Reddit over the course of a day. Too much. :P

NovemberMike
Dec 28, 2008

Doctor w-rw-rw- posted:


Interesting, but that makes it sound like turnover for senior levels/managers could be pretty high, and it's a high risk position. Can someone who reports early and often eventually be seen as too dependent on others, or be ignored on account of being too noisy? Crying wolf and being wrong seems like it could be as damaging to credibility as trying and failing to meet goals (with or without fault). What skills are involved in not loving up at that level?

Are there any good books to study the people parts of working in industry?

Ideally it should be if they're screwing up. They get paid more money because it should be a riskier job. Remember, most of the failures in software development are failures of management, if you have a reasonably competent group of people, you manage them reasonably and you set reasonable expectations then you'll do fine. Every once in awhile the programmers or testers or whoever are legitimately at fault but most of the times I've seen projects fail it's been because management treated estimation as a Christmas list of things they'd like to have instead of a realistic assessment of what can be done or they failed to assign the right resources to the project at the right time.

As to what skills are required, it's mostly basic management stuff.

Pie Colony
Dec 8, 2006
I AM SUCH A FUCKUP THAT I CAN'T EVEN POST IN AN E/N THREAD I STARTED

Doctor w-rw-rw- posted:

Disclaimer: I'm not working at the moment but this applied when I was, and I'm keeping it up in the meantime:

The workday is mostly for work, but it's not horrible to spend a couple of minutes here and there keeping up on relevant technical blog posts. Investing time in your craft outside of work is kind of necessary to get an edge. I'm developing my career in something I love, so ~20 hours per week outside of work is not a big deal, but could be to someone who doesn't enjoy it as much (caveat: for me, that 20 hours is soft/flexible; I frequently interrupt it to do stuff with friends, play games, etc.). But time in this case is more something you make than something you get/find.

Unless you mean how much time I spend on HN, SA, and Reddit over the course of a day. Too much. :P

yeah, all those sites count as free time. i get a feeling just about everyone does this, but i'm wondering just how much they do it as a non-junior.

Bruegels Fuckbooks
Sep 14, 2004

Now, listen - I know the two of you are very different from each other in a lot of ways, but you have to understand that as far as Grandpa's concerned, you're both pieces of shit! Yeah. I can prove it mathematically.

Pie Colony posted:

yeah, all those sites count as free time. i get a feeling just about everyone does this, but i'm wondering just how much they do it as a non-junior.

One of the C++ components I'm working with takes fifteen minutes to build+link, so I generally get a lot more internet done when I'm working on that component, but I tend to prioritize programming related blogs so I don't get out of the flow. I'm probably solidly into the above 40 hours a week group even after all that thanks to working on a deathmarch project.

New Yorp New Yorp
Jul 18, 2003

Only in Kenya.
Pillbug

Pie Colony posted:

how much free time do you guys find you get over a day? by which i mean time to just look at websites, blogs, maybe even videos or personal projects. also i guess overtime would be negative here.

Depending on the day, a ton. I'm a consultant, and I work mostly remotely (which means from home!). Sometimes, a client falls through or gets blocked, and then I have bench time. We generally use bench time for improving our consulting service offerings and learning new stuff. Some days it just turns into a few hours of hacking on a personal project or answering questions on Stack Overflow. I very rarely work more than 40 hours a week.

baquerd
Jul 2, 2007

by FactsAreUseless

Pie Colony posted:

how much free time do you guys find you get over a day? by which i mean time to just look at websites, blogs, maybe even videos or personal projects. also i guess overtime would be negative here.

When I was working my last job, I would literally do nothing but browse the internet or work on my own stuff for weeks at a time. The company was fixed in their ways to the point where if they thought a project should take 3 weeks and I got it done in 2 days, I couldn't get more work even by asking directly for it. It got to the point where I'd work sub 4-hour days and "work from home" in the afternoons. If it wasn't so depressing, it would be really sweet.

Now that I'm in a job that I love, I'll usually take an hour a day or so to tear myself away and get a fresh perspective, generally around lunch. Add on another half hour or so to play with financial stuff. I might do a couple of hours outside of work on my own projects, but work allows plenty of time to learn new technologies to apply there.

Dietrich
Sep 11, 2001

I've got 10 years of .net/sql development experience under my belt and my company is pretty dead set on killing "custom development" and moving everything to IBM BPM (which is a development tool, but for some reason everyone thinks it's off the shelf software) and/or Dynamics AX (which will need to be heavily customized to do anything like we want it to do).

I have zero interest in working in either of these development environments long-term, but this is a nice stable job, even if it doesn't pay well.

I've been considering jumping ship but I'm worried about job stability (two kids, stay at home wife), and having to work more anywhere else.

Some one talk me down/up.

Doctor w-rw-rw-
Jun 24, 2008

Dietrich posted:

I've got 10 years of .net/sql development experience under my belt and my company is pretty dead set on killing "custom development" and moving everything to IBM BPM (which is a development tool, but for some reason everyone thinks it's off the shelf software) and/or Dynamics AX (which will need to be heavily customized to do anything like we want it to do).

I have zero interest in working in either of these development environments long-term, but this is a nice stable job, even if it doesn't pay well.

I've been considering jumping ship but I'm worried about job stability (two kids, stay at home wife), and having to work more anywhere else.

Some one talk me down/up.

There are large stable .NET shops around, they just don't get talked about a lot. A friend of mine works at Ancestry.com, I think, and they have a lot of .NET. I think they're transitioning a bit to Java, though.

Munkeymon
Aug 14, 2003

Motherfucker's got an
armor-piercing crowbar! Rigoddamndicu𝜆ous.



I'm in my 7th professional year with most of that being webdev (I tried to get out, but it sucked me back in!). Am I an oldie yet?

Doctor w-rw-rw- posted:

There are large stable .NET shops around, they just don't get talked about a lot. A friend of mine works at Ancestry.com, I think, and they have a lot of .NET. I think they're transitioning a bit to Java, though.

Not only that, but you might not realize they want .Net people until you drill down into the job descriptions since some of them are just '5th Degree Software Incantor III' or something equally meaningless.

I was looking at one the other day and it was listed as a Ruby+Rails position, but the description was full of .Net and IIS stuff - no mention of Ruby at all :confused: I might apply anyway since it's a ten minute walk from my front door and above a brewpub, so basically my ideal office location, so I feel like giving them the benefit of the doubt.

leftist heap
Feb 28, 2013

Fun Shoe

Dietrich posted:

I've got 10 years of .net/sql development experience under my belt and my company is pretty dead set on killing "custom development" and moving everything to IBM BPM (which is a development tool, but for some reason everyone thinks it's off the shelf software) and/or Dynamics AX (which will need to be heavily customized to do anything like we want it to do).

I have zero interest in working in either of these development environments long-term, but this is a nice stable job, even if it doesn't pay well.

I've been considering jumping ship but I'm worried about job stability (two kids, stay at home wife), and having to work more anywhere else.

Some one talk me down/up.

I'm sure there are plenty of stable jobs around, but I would plan on job hopping a couple times before landing in one. Don't settle for the first job you find if it isn't going to work out long term (and if you've been in the industry 10 years you should be able to figure this out pretty darn quickly). Explaining job hopping to interviewers sucks, but it's better than gutting it out at a terrible job for several years.

pr0zac
Jan 18, 2004

~*lukecagefan69*~


Pillbug
Just noticed this thread and realized its probably a good place to put down some stuff I've been thinking about my career and its future and hopefully get some outside input.

I've been a developer for almost eight years at this point and have written code all over the stack and in way too many languages (written code professionally in C, C++, Obj-C, Python, Ruby, Scala, ActionScript, PHP, Javscript). I've been lucky enough to work at two of the biggest names in tech and got to go through Y-Combinator with a startup I founded with my best friend and eventually leveraged to get acquihired at my current employer.

All of this churn is largely because I've got massive ADHD and start to get bored once I've actually gotten comfortable and feeling competent at what I'm doing. I love and thrive on the stress and adrenaline that comes with a new position where I feel in over my head. This means after about a year I inevitably start looking to move on to something new. This has worked pretty well so far at continually moving my career forward as I'm constantly jumping into new challenges that are way above my skill level and force me to learn. The one issue though is at this point I've become much more of a jack-of-all-trades developer, one whos good at picking up a new project or language and implementing things quickly but I lack a specific domain I could call myself an expert in. In the first quarter of last year I transferred into security tools oriented work which I really love as infosec used to be a passion of mine that got dropped in favor of the significantly larger SWE salaries. I'd really like to be able to find a specific area of the security field that I can actually delve into enough to eventually call myself an expert but my constant direction changing would make that impossible.

So my first question is, does anyone have any suggestions on staving off the need for something new my brain seems to always get once I'm no longer completely terrified in my job? I'm lucky to have gotten a chance to move back towards security and don't want to ruin it by jumping ship for the next shiny challenge. If anyone else has had a similar feeling of wanderlust and has been able to quell it, I'd love some advice.


To document my second dilemma, I was tech lead on my last team and in moving over to security tools I knowingly took a step back in seniority in order to do work I found more interesting. In moving I also knowingly pushed back a promotion in engineering level by about a year. Recently, the two senior engineers on my team have moved on to other teams and we've brought on four new grad junior developers. At the same time the management structure above me has been shaken around (my manager, whos not really an engineering manager is leaving, my new manager is an engineering manager but also manages a couple other teams). These events combined to make my work in the last two months involve significantly more "management" type work. I've spent probably 1/3 of my time doing things like writing project roadmaps, mentoring the new engineers and helping them get up to speed, writing project progress reports, participating in planning meetings, and working to hire and interview new people (the latest of the four newbies picked our team largely through my doggedness).

Theres currently a search for an engineering manager to place between my current manager and my team, ie someone to concentrate specifically on security tools. Because of the work I've been doing recently, I've been asked about my interest in possibly moving into the management track. I've really enjoyed the management stuff a lot more than I had originally thought I would, and could definitely see myself enjoying doing more of it, but the idea of not having producing code as my main job focus scares the crap out of me since for a long time I thought it was the only thing I was any good at. While its tempting, I'm just not sure if its a direction I'd like to head. I also have to wonder if I'm simply considering it because I'm at the time where my ADHD would have me looking for a new challenge.

So I'm looking to see if anyone has any experience making this kind of transition and what their experience was? Is the management side of things fun and challenging? What are people's opinions on the better decision for long term career outlook? In 5 years am I going to have a harder time finding a job if I move to management? Theres no financial reason to do it or not, my company has good equal promotion tracks for both engineers and managers, so its totally a career style choice.

I apologize for the length, I'm brain dumping about two weeks of internal monologue. Any input would be greatly appreciated.

JawnV6
Jul 4, 2004

So hot ...

pr0zac posted:

So my first question is, does anyone have any suggestions on staving off the need for something new my brain seems to always get once I'm no longer completely terrified in my job? I'm lucky to have gotten a chance to move back towards security and don't want to ruin it by jumping ship for the next shiny challenge. If anyone else has had a similar feeling of wanderlust and has been able to quell it, I'd love some advice.

I'm kinda similar, challenge-driven at least. I spent 7 years at my first employer, mostly by hopping teams as frequently as I could, worked out to about once a year. Spent a year in the design team, spent a year on the emulation team, followed the project when it went from design into silicon testing in the lab, etc. You can still be valuable to a large organization for years, even with a need for constant switching. I don't think that's the only pathway, but keep it in mind.

If big orgs aren't appealing and you want to keep a steady flow of different problem types, a consultancy might be a great fit. The work is very different, you or someone else has to be hustling for new work a lot of the time, there's a variety of different ways clients can shaft you. But it's a new problem for every client. This year alone I've had to research a couple new platforms, brush up on my black body radiation theory, and there's a decent chance I'll be writing some raw AT commands.

It's also worth noting that life circumstances can change your drive. A lot of people fresh out of college are challenge-driven and are happy to have a huge technical problem that will consume their dreams. It's much more rare to find that same drive in someone with a family and children. Big enough problems can't be tackled by challenge-driven people alone. You need someone eager for a boring 9-5 problem that lets them leave at 5 without a second thought. Don't pigeonhole yourself and think that you have to always be challenge driven. Don't disparage other professionals for having different priorities.

TodPunk
Feb 9, 2013

What do you mean, "TRON isn't a documentary?"

pr0zac posted:

So I'm looking to see if anyone has any experience making this kind of transition and what their experience was? Is the management side of things fun and challenging? What are people's opinions on the better decision for long term career outlook? In 5 years am I going to have a harder time finding a job if I move to management? Theres no financial reason to do it or not, my company has good equal promotion tracks for both engineers and managers, so its totally a career style choice.

Management is a different challenge at every new company and with every new team, which sometimes correlates with every new project or milestone. I'd take a serious evaluation of what kind of management style you have (are you hands off or hands on, micro or macro, etc, etc) and judge for yourself how well you think that achieves the goals of the team and your personal goals. Then you'll want to deeply consider the kinds of management tasks you are enjoying, what you do NOT enjoy, and what other tasks you might inherit. Are you assigning tasks and making sure they're being done? Are you helping resolve disputes? Are you filling a role that might be more HR than Team Lead? How do you feel about the politics?

I will say that personally I got back out of management (though I will be project lead) for two reasons. First, I didn't want to build a team and product just so someone else could get rich, and I wasn't getting paid a whole lot more. Second, middle management is a huge amount of politics where you straddle the interests and perspectives of two worlds, often at odds with each other (they shouldn't be, but I work in the real world). I find that all frustrating and dull, I just want to get some awesome things done. Maybe you enjoy the nuances of diverting emotions and politics to get people working together. That's up to you.

If I'm missing the question a bit here, let me know. Open ended questions get my foot in my mouth sometimes.

New Yorp New Yorp
Jul 18, 2003

Only in Kenya.
Pillbug

TodPunk posted:

Second, middle management is a huge amount of politics where you straddle the interests and perspectives of two worlds, often at odds with each other (they shouldn't be, but I work in the real world).

My first good boss explained to me that there are two types of bosses: poo poo funnels and poo poo umbrellas. You want to work for (and strive to be) a poo poo umbrella.

bartkusa
Sep 25, 2005

Air, Fire, Earth, Hope

Ithaqua posted:

My first good boss explained to me that there are two types of bosses: poo poo funnels and poo poo umbrellas. You want to work for (and strive to be) a poo poo umbrella.

My first boss out of college was an amazing umbrella.

When he left the company, I couldn't cope with even the tiniest, most-routine amount of poo poo.

I appreciate what he did, but it made me a weaker dev (in the short term).

TodPunk
Feb 9, 2013

What do you mean, "TRON isn't a documentary?"

bartkusa posted:

My first boss out of college was an amazing umbrella.

When he left the company, I couldn't cope with even the tiniest, most-routine amount of poo poo.

I appreciate what he did, but it made me a weaker dev (in the short term).

This exact issue is why I prefer to look at good management as a poo poo filter instead. Basically, your reportees are adults and should be given all the information they want in an adult format, and they should be expected to act on that information like adults. You have a lot of people out there that cannot for any reason act like an adult, and you should either get rid of them or make the rest of the team immune to their tantrums by being a poo poo filter the other way, too, so that management above you gets as much info to know that such a problem child will be annoying as much as the busybody old lady on your street that gets angry when your lawn isn't trimmed to her expectations.

If someone like that is your manager, well, gently caress.

Doctor w-rw-rw-
Jun 24, 2008
I start on a trial at an early-stage startup (still in stealth) tomorrow. Any clues on what I should expect from companies where my employee number is going to be a single digit?

Adbot
ADBOT LOVES YOU

down with slavery
Dec 23, 2013
STOP QUOTING MY POSTS SO PEOPLE THAT AREN'T IDIOTS DON'T HAVE TO READ MY FUCKING TERRIBLE OPINIONS THANKS

Doctor w-rw-rw- posted:

I start on a trial at an early-stage startup (still in stealth) tomorrow. Any clues on what I should expect from companies where my employee number is going to be a single digit?

Expect a wild ride, remember that promises are just words, and keep updating your resume.

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply