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
hendersa
Sep 17, 2006

Demonachizer posted:

It also looks like I can go study at a pretty prestigious doctoral program but it is in Singapore.

quote:

I guess my big worry is that since I am in my late 30s, I feel like I need to make as much money as possible right now.

PCjr sidecar posted:

What's your end goal? Tenure-track at a R1? Google?

What would you be able to do with a CS PhD that you couldn't do with your BS?
I think these are the two big questions that need to be answered. A PhD program's primary purpose is to train you to be a researcher. Is that what you really want? Now, granted, a PhD might have some minor benefit if you are a candidate for a highly-competitive industry job, but it is largely a waste of time if you don't want a research career. You might eventually want to teach or consult or something that might require a PhD, but that is (in my opinion) not a good enough reason to spend 5-7 years of your earning years working on something with marginal utility. Definitely read this, as it gives you a pretty good idea of what's up.

I recommend taking a look at this post from this thread, where I was asking the thread for advice on getting out of government research work. It's not all that its cracked up to be. If you have a job offer and it works well with the cost of living at the lab's location, maybe give it a try for a few years. Get some experience and then get a better job elsewhere. The important thing is to start building up retirement funds. You've burned a lot of earning potential runway already, and you need to make up some ground ASAP.

FWIW, I was 33 when I started my PhD in electrical and computer engineering and it took me a little over 5 years to finish it. But, I also had my BS in CS when I was 21 and had gained a lot of industry experience in those 12 years between the BS and PhD. So, you can get a PhD that late in the game and still do something with it. But, will what you gain be enough to offset what you're giving up?

Adbot
ADBOT LOVES YOU

hendersa
Sep 17, 2006

necrobobsledder posted:

Which is why I'm letting people know that my (new) company is hiring for:
Sounds like they are an up-and-coming org with an exit strategy of being acquired by someone like FireEye...

... not that I happen to know about that particular market or anything. :ssh:

hendersa
Sep 17, 2006

runupon cracker posted:

Software Development Manager position that's intended to include some actual development

This is a red flag that often indicates that you've got management responsibilities on top of engineering team-lead responsibilities. Some places hedge their bets by saying you'll be 50/50 on your time between the two, but this just means that the number of hours you work each week will swell to something more like 75/75.

quote:

I suspect this has been hashed and rehashed a zillion times, but I really want to slam-dunk an answer to this horrible question.

The answer to this question is less about honest soul-searching and more about selling a negative that can be considered a positive. Forget your first two points, as those paint you as someone who will struggle with the management portion of your position. The third and fourth ones aren't bad, so I would suggest sticking with those. The third one at least shows that you have some emotional IQ and are at aware of other people's needs. A little rewording on the fourth one can show that you are someone that is willing to suck it up and eat your vegetables before jumping into dessert. Management can include some unpleasant duties, like having "the talk" with a report about a performance improvement plan, dealing with prima donnas on your team, and having to micromanage and nudge people. Showing that you aren't overly fond of these aspects, but are willing to power through them, is important.

hendersa
Sep 17, 2006

vonnegutt posted:

I completely disagree. I think doing this comes out sounding like bullshit, no matter how well thought out, and interviewers can tell. When interviewers ask this question, they're not looking for the most clever answer, they're trying to see if you're an ego lord who thinks they can do no wrong. Being able to own up to one's shortcomings is important, and people who can't tend to be impossible to give feedback to.

Oh, I didn't mean to advise anyone to cook up some clever lie or try to BS the interviewer or anything like that. I meant to pick shortcomings that could be considered to be a positive, too. These two are good examples of that:

cynic posted:

* I can get very deeply involved in problem solving, and sometimes I can come across as standoffish, even though that is certainly not the case.
* I enjoy my work, sometimes so much that I need to remind myself to turn off or address other tasks.

hendersa
Sep 17, 2006

School of How posted:

The PI zero website says they will be in production until at least January 2026. Even if the Pi Zero goes out of production, it's just a tiny linux computer. You can just substitute in a competitor board, and the only thing that has to change is the way you copy the image onto the board during installation. The actual app don't actually have to change.
The selection of the parts for an embedded system must be under the control of the system designer. Purchasing a third-party daughterboard and integrating it into your embedded system is simply not done by any reputable company. Such a daughterboard becomes a "black box" where individual components on the daughterboard can change from lot to lot without warning. This can and will change the system bring-up per the errata of the particular quirks of new revs of existing parts. In addition, the mechanical coupling of two PCBs is one of the most common points of failure.

Concerns about how easy it is to migrate the "app" running on the device to a new device aren't common because such migrations won't occur.

quote:

Still, it's just 5 bucks. What product can't afford to cost an extra 5 bucks?
Most of them. Embedded systems hardware costs are always in a race to the bottom.

hendersa
Sep 17, 2006

I was recently contacted by a few previous research associates of mine that are interested in exploring VC options for a small business that they've had for a few years. They've been getting by on various grants and funding that they've won from military and government sources, and they now have a few patents in their IP portfolio and have published papers on their technology (scanning binaries and libraries in a product and telling you which CVEs are present based on their control flow patterns) and want to push into the endgame.

Has anyone heard how the VC landscape is looking these days? Has COVID-19 reduced the number of companies looking for funding, or has it maybe caused VC firms to reduce their investments?

hendersa
Sep 17, 2006

Sab669 posted:

Just curious, for those signing bonuses, what area are you guys in? If not silicon valley / Seattle etc. then how big of a "tech hub" is your region?

My professional network isn't especially big, but here in poor, destitute western New York state I've never heard of anyone getting one.

I am currently working in Syracuse. Over the past twenty years or so, I've been a researcher or have developed embedded systems and Linux user space applications. I've worked in Florida (Orlando, Jacksonville), California (Orange County, LA), and New York (Syracuse). I've received starting bonuses in Orlando and in every single job offer (accepted or not) that I've ever had in California. Every other job market looked at me like I was crazy (or that they were embarrassed) by my asking.

My guess on the lack of starting bonuses in your market is that employers in upstate/central/western NY assume that you're trapped in that job market for some personal reason (you want to be by family, you went to school there and want to stay, you're a competitive skier and/or snow shoveller, etc.) and that they are one of the few companies around that will hire you. You don't have enough choice to be picky, so why should they spend the extra money on you? Of course, with the reduced cost of living compared to NYC and California, you're probably still not doing so bad.

I'll get pinged by internal recruiters for outfits like Amazon or Google every month or two, and they always assure me that dropping $50K-$100K for a relocation package to move me to the west coast is nothing to them. To get a relocation package like that to move to the Buffalo area, you'd have to be filling a VP or C-level exec position at most companies. Much of New York outside of NYC is gently rusting away under the pressures of high taxes and less/shuttered manufacturing. There are still companies here and there that are doing OK, but those are companies that just need bodies to do a job. Writing CRUD stuff, maintaining old stuff, generic web dev, etc. They aren't looking for the absolute best that they'd be willing to pay a premium for, and they're happy to backfill a leaving employee with a hire fresh out of college.

hendersa
Sep 17, 2006

redleader posted:

yeah, american devs thinking about fleeing their sinking ship really need to understand and internalise how drastically higher their salaries are compared to the rest of the world. sure, americans have to pay for things (healthcare) out of pocket, but even accounting for that you earn substantially more

My wife and I are anchored to our current location in the US because my step-daughter has visitations with her father (who will never leave his little home town no matter what). But, once my daughter is 18 and off to college (another four years), my wife and I are planning to leave this frigid land of snow and ice for a new location. With our travels in the past, we've decided that Ireland is a prime candidate for us. Salaries are, of course, much, much lower there. Housing (around the cities, anyway) is more expensive. But, with what we make now, it is trivial for us to invest for retirement and build significant equity in our home. It is our hope that once we sell our home and reinvest it in a smaller home overseas, the lower salaries won't matter so much because our primary expense (housing) will be greatly reduced by eliminating a mortgage.

But, money aside, it is all about an improved lifestyle for us. We're tired of rush-rush-rush all of the time, and we're willing to trade money sitting in a brokerage account for actually enjoying life by just sitting on the front porch and sipping mugs of hot tea with a couple of dogs nearby. Right now, it is Saturday morning and I am answering mails and taking care of work housekeeping tasks that I haven't been able to get to this past week in the ~50 hours that I worked Monday through Friday...

I've researched the job market for embedded systems jobs in Ireland and they are quite promising. There are a number of jobs there that fit within that domain, and the requirements are laughably low compared to the inflated requirements for a US job. We're talking 3 years experience for a senior embedded developer position (usually more like 7 to 10 with a masters degree in the US), and about 7 years for a director-level position. My PhD makes the visa/residence process super easy. Hell, I could even ping a university and probably get a lecturer position for two years until permanent residency kicks in. With only 5 million people in the country, finding an experienced professional in a more niche area like embedded systems is a difficult prospect at best.

It is my opinion that the older you are, the more that a move to another, less lucrative country with higher quality of life makes sense. Go ahead and burn yourself out while you're young and make the big bucks. But, once you've done that for a while, you'll find that chasing the next dollar just isn't as fulfilling as it once was. Work a decade or two, make your money, and then take the opportunity to enjoy a slower pace of life. Develop some hobbies outside of the office, and stop feeling guilty for not working every second of your life. It isn't fair to you that many US employers place unfair expectations on you, but too many software developers just accept it as the price of admission and make it a part of their way of life.

hendersa
Sep 17, 2006

Progressive JPEG posted:

I'm an "architect" because that's the title they use for the pay band I'm in
What's up, "architect" title buddy? :hfive:

Well, my title is "Systems Architect", anyway. Close enough. In the embedded space, that title means that you lead cross-functional groups and have final decision authority to select chips for the product design, review schematics to ensure requirements are being met, make the call on which OS, toolchain, BSP, etc. to use on the software side, and all that good stuff. You are permanently on the hook for flaws in the design that turn up months down the road, so you'd better be really sure on all of the design decisions you make. You get some wiggle room on the software side, obviously, but once you get a few proto PCBs spun and there is "somewhat working hardware" in hand, you are pretty much stuck with any of your own decisions that turned out to be a bad idea.

In reality, it isn't that bad. You make decisions based on facts and time spent swearing at devkits. If you were just winging it all of the time, you'd be a nervous wreck second-guessing yourself on everything. If you make solid choices, though, you make it look easy.

hendersa
Sep 17, 2006

I'll throw one more datapoint into the mix, since I'm more of an outlier in a non-figgie location in a non-web role at a non-FAANG. I have a electrical/computer engineering PhD, an MBA, and a BS in CS, so I'm definitely not a bootcamp type scenario. None of those degrees came from a very good school, so my networking opportunities in that domain were pretty limited. Also, I'm not even using a fraction of the MBA or PhD at my job (nor are they required for it).

Base comp is $140K, with a 10%-15% annual bonus. I've been here for 4 years. My starting base comp was $125K. My TC is lower than most, since I don't take advantage of many benefits of the company (health insurance, tuition reimbursement, etc.). But, considering 401k matching and additional bonuses that pop up, my TC is right around $170K per year. No RSUs. We do get unlimited PTO and (bring a division of a European company in the US) you are expected to use four to five weeks of it, at least.

Location is in a part of New York where there are cows and fields of corn. Before the housing market went bananas due to COVID, you could buy a really nice house (~2500 square foot with, say, 5 bedrooms and 2.5 bathrooms) with a backyard, 2/3 car garage, etc. in the suburbs for about $100 per square foot. Right now, it is more like $130/sq ft. As for my commute, I can go from starting my car in the garage to being at my desk at work in less than 20 minutes. That's based on the roads being clear of snow, which is a concern for 5 or 6 months out of the year. It isn't the weather of California, but it also doesn't require you to stand in a line or sit in traffic for everything that you might want to do (and pay a fortune to do it).

I do software for embedded systems. This can be configuring/building Yocto Linux, writing Linux kernel device drivers, writing Linux userspace daemons/applications, writing bare-metal microcontroller code (apps and bootloaders), and/or a combination of all of them. It really depends on the product, of which there are many. It is all C and old-old C++. Like, C++03 and C++11 stuff. On rare occasions, I have to drop down to ARM asm for interrupt handlers or vector table setup. I also screw around with linker scripts to layout applications and bootloaders in flash. I started out doing this work at Lockheed Martin in 1999, fresh out of my CS undergrad, for a salary of $48K. So, I've been doing Linux, embedded, or research work of some sort for about 20 years. I've been through big companies, start-ups, and several in-between. I've also worked at companies in Florida, California, and Connecticut.

I haven't done a programming test for a job interview in over ten years. The last one I did was a simple C++ test where I was given a class and told to implement it. I've never been given a puzzle or brainteaser or anything like that. That's pretty normal when interviewing for an embedded job, in my experience. It is far more difficult to snow your way through an embedded interview, since an interviewer can tell pretty quickly who has actually laid hands on hardware and has a solid working knowledge of the development/debugging techniques. I normally provide a portfolio of work when I interview. This includes published writing that I've done, schematics/PCBs I've designed for fun on the side, links to projects in my github account, and the like. I don't provide anything related to previous jobs, as that is all proprietary.

I work remote quite often, but it really depends on whether I need access to the hardware in a lab. For most of COVID, I worked at home in my basement with a big, honkin' quadpole mass spec setup sitting next to me. Teams calls and email was good enough for 99% of my work communication needs. It was not uncommon for me to start a Yocto build and then play Super Nintendo for 45 minutes while it did its thing. I'd also mow the lawn, shovel snow, cook dinner, help my daughter with her homework, etc. Pretty laid-back. There would be the occasional late night when trying to get stuff sorted out, but otherwise I was wrapping up for the day at 5 PM or before. I've used the spare time to write a few magazine articles in the past, which my company encourages. That helps keep me visible and "build my brand", so to speak. I also do a little consulting on the side for fun. Between the writing and consulting, I probably make another $10K or so each year. I've written one book, maybe ten magazine articles, and about half-a-dozen published conference and journal papers at this point.

I would not give this up for a FAANG. Absolutely not. I get mails from internal recruiters at both Amazon and Google quite often because my resume has "embedded", "security", "linux", and a few other things that pique their interest. They always seem shocked when I tell them "no thank you." I mean, I have plenty of spare time to read, tinker around with my own projects, and spend time with my family. I wouldn't give up the work/life balance for a FAANG on my resume at this point.

hendersa
Sep 17, 2006

Rocko Bonaparte posted:

Top tl;dr here: What kind of stuff would you say a successful Linux kernel developer can do in regular day-to-day stuff? I kind of want to compile a list of skills to move towards.
Very few Linux kernel positions involve actually modifying kernel subsystems. That work is going to be done by someone with a decade of kernel hacking experience, a domain specific-PhD, etc. I would suggest that you start with a broad knowledge of what the subsystems are in the kernel and where you can find the code for them. Half of demonstrating that you know your way around the kernel is showing that you know how to find the information that you need in the kernel source. The kernel source is very readable, so demonstrating that you can sweep through a subsystem and explain its general functionality is good enough.

In the embedded space, Linux kernel jobs fall into one or more of these categories:

- Take an existing reference driver and tweak it for a specific product/configuration.
- Building a Linux system from scratch using Yocto or Buildroot.
- Building/configuring a kernel and device tree for a specific platform.
- Building/configuring the bootloader (U-boot, hacking in a splash screen, etc.).
- Tuning a Linux kernel for use in an Android system.
- Reviewing schematics, processor specs, product requirements and advising the EEs and project managers which platforms are suitable for a task and which are not.
- Linux application development (who better to do this than the person who already "knows Linux"?).

If I were to spitball a number, I'd say that at least 90% of what is out there is going to be building a Linux setup with Yocto, getting a device tree sorted out, and application development. Most of that is coming from a vendor BSP and tweaking it for your use. Most places aren't making custom hardware that requires a unique custom driver, though they may need driver tweaks, so hacking on existing drivers happens from time to time. Ultimately, it is going to be getting the "plumbing" set up and running so that the Linux application developer can do the useful part of the product. There is also the planning of the partitioning/boot scheme, so you can wean yourself off of the microSD card boot of a BSP into an emmc-based boot of a final product.

Beyond the embedded space, you're probably looking at straight-up driver work to provide Linux drivers for specific hardware. Once again, this is going to focus on tweaking a reference driver of some sort. On the bright side, the embedded space is pretty awesome. I've crammed Android and Linux onto vending machines, pinball machines, mass spectometers, in-flight entertainment systems, set-top boxes, and at least half-a-dozen personal projects.

Skills to learn:

- Building/configuring a kernel from source.
- Looking through the Linux kernel mailing list (LKML), finding patches, and applying patches to your own kernel.
- Hands-on experience interfacing SPI, I2C, GPIO peripherals to a Linux system. Get a Raspberry Pi or BeagleBone and breadboard some circuits together with stuff from Adafruit.
- Writing user space Linux applications that use the spidev driver and i2ctools to talk to hardware.
- Qt is pretty popular in the embedded space for UI work. That isn't a bad place to start for building embedded apps.
- Configuring a kernel to trim out everything that you don't need and statically linking every possible thing that you can.
- Debugging for kernel development. The sky's the limit. Logging, oscilloscope, logic analyzer, blinking LEDs via GPIOs? Read some blogs and get some ideas.

If someone has guidance for Linux-specific job details on customizing containers, optimizing kernel/filesystem for cloud, etc., throw your two cents in here. I'm only coming at it from the embedded angle.

hendersa fucked around with this message at 14:23 on Aug 2, 2021

hendersa
Sep 17, 2006

Rocko Bonaparte posted:

Thanks. I'm surprised I've actually done a bit of that, but I'm not focusing on embedded. I'm looking here at the ability to work in nearly a cave because my wife wants to move further out and start a flower farm. My take on embedded in particular is that I get tied to some equipment they're uncomfortable sending me, or they're fine sending me but I need to build a lab to deal with it (especially since it'll constantly gently caress up).
Yeah, I hear you on that. While I do work remote a lot of the time, I still have to come into the lab to swap hardware, do testing with specialized equipment, and the like. I have done some contract jobs completely remote before, and I spent a lot of time waiting for hardware to be shipped to me and waiting in line at the UPS Store to ship stuff back...

quote:

But a funny thing:

I was doing an overview with a recruiter for doing QA on BIOS stuff and one of the questions was what code I may have contributed to Linux, which really caught me by surprise. Nothing about the position really correlated to having done that, and your view on this makes it sound like that's a pretty rough ask even for somebody working regularly with the kernel.
This pops up from time to time, since some companies consider kernel contributions to be a KPI. Keep in mind that getting something accepted into the mainline Linux kernel isn't your only option. There are lots of BSP maintainers out there that will accept kernel patches for drivers and such that are SBC-specific. It isn't the "mainline" kernel, per se, but it is still a kernel patch that has been accepted by another entity and a talking point. If you're aiming to get something accepted into the mainline kernel to score some points, it is probably going to be an added ioctl to an existing driver, adding support for another variant of something to an existing driver, or a Kernel Janitor task.

hendersa
Sep 17, 2006

I recently had a Google recruiter ping me. Normally, I just thank them for their interest and decline because I can't relocate anywhere. Since "fully remote" is a possibility these days, I decided to set up a call to talk to this one and get some more information. After about 20 minutes of talking, this is where we ended up:

- She is going to hand me off to another recruiter, since she said my experience qualifies me for at least an L6 position (possibly L7) and she only handles up to L5.
- She is going to send me some materials on the interview process, including a study syllabus of sorts and some estimated timelines.
- She asked me if I'd like to start the interview process right away, but I told her that I'd like a few weeks to study and think about the interview material before a first interview.
- She said that there was some sort of screening interview up front that was going to get skipped (basic coding of some sort?), and that one of the main interviews would focus on system design instead of the algorithm/data structure hazing.
- She said that "fully remote" is a distinct possibility, but it would be up to my team to set the terms for it.
- She was very interested in my embedded systems background. I guess there are way fewer systems/embedded people that apply.

Are any of you doing embedded stuff at Google? The recruiter mentioned that the two big areas for that were in Search and YouTube, and she specifically mentioned NYC and Durham, NC as being the home offices for embedded teams.

hendersa
Sep 17, 2006

I've seen this (in different forms) all throughout my career, but it wasn't until I was doing my PhD that I heard a name given to it: productive procrastination. Do you have something that you need to do, but really don't want to? Find something else productive to do so that you can justify to yourself and others that you're not stalling or wasting time.

Productive procrastination is a wonderful way to sabotage yourself. Sure, you're busy. We can see that you're busy. And when your performance review comes around, your manager points out the things that you didn't get done. But, then you point out all of the other things that you were doing instead, because you were staying so busy. And your manager disagrees that you made the best use of your time. Your perf suffers. Your comp suffers. And you feel unappreciated and hop to a new job, because you're such a hard worker that stays so busy.

Productive procrastination also contributes to your anxiety. Like, a lot. You're betting that your productivity on all of the other stuff will outweigh what you aren't getting done. So, you work even harder on the unimportant stuff to tip the scales even more in your favor when judgement day comes. You start to throw burn-out, exhaustion, and guilt on top of the pile. Eventually, these all come together like Voltron to crush your spirit, motivation, and overall productivity.

Were the tasks that you were doing more important than what you were assigned? Maybe. Did you communicate that to your manager? Maybe. Is your manager just "clueless" as to the real priorities of things? Well, maybe. But, your manager handles the performance reviews. If you communicated what you were doing and why, didn't get any pushback, and still got dinged, maybe it was best that you moved on.

Do you have better visibility and more complete information regarding all projects going on than your manager does? You can min/max an optimal solution on how to spend your time based upon how you perceive priorities when you look at them through the perspective "lens" of a software engineer, systems engineer, etc. Managers are usually looking through a different, big-picture lens to make their decisions, which places different weights on the various projects and aspects of projects going on.

I find that this is a really hard concept to impart upon those who are new to software engineering (or even in their mid-career) if they pride themselves on being really good (good grades in school, code for fun, etc.). Primadonnas are just the worst when it comes to this. Few things can convince an engineer to change his/her mind once they have figured out the "clearly best, no-brainer" path for moving forward, based upon their priorities. Having to constantly course-correct your reports and team members engaging in productive procrastination is an energy-draining process.

I've had one-on-ones with people before that have fought me on this. I'll explain the concept, point out specific behaviors, and justify why they need to change for the overall good. The younger folks are usually a bit embarrassed about this and may get defensive about it, but they soon understand that I'm not attacking them over it. I'm explaining the rules of the game to them to show them how they can "win" it. Two occasions come to mind where senior people have argued that priorities changed and they didn't like it and that "management can't decide what they want because they keep telling us to do one thing one week and something else the next." I asked for specific examples so that I can provide feedback to the directors (after all, engineers are closer to these projects and maybe lend additional perspective), and suddenly things get quiet. I might get one example, which I write down and then ask "OK, any others?" and then get nothing else. Sometimes, that one thing happened months ago and the engineer has just been stewing on it and building it up in their head all this time.

Just get your stuff done. Clean your dishes later. You'll be happier and more successful for it.

Achmed Jones posted:

oh none of the things he did actually took. he set it up and then went back to normal "sit at desk, read and write" mode. but it got us some nice speakers and stuff in the office which was pretty cool
My dissertation writing was practically no effort at all. All the effort was upfront in the topic proposal defense and getting papers accepted for publication (which, of course, took five years). My intro and literature review chapters came from my topic proposal and paper intros/related work, each chapter was a paper, and the final chapter was each paper's conclusions edited to flow together. All the extra stuff that was commented out of the published conference papers due to page count found a new home in the appendices. It was just a big cut-and-paste fiesta. I even had another labmate give me a dissertation LaTeX template with big "stick your content here" markers throughout it. Defense was a snap, since my committee members had to admit that everything in the dissertation had already been peer-reviewed and was of publishable quality.

Do people actually write their dissertation from scratch without the intermediary checkpoints of publishing peer-reviewed papers? The defense of that sounds like it would be absolutely awful.

hendersa
Sep 17, 2006

I had a another call with a different Google recruiter. She was ready to get me on the interview schedule very quickly, but I requested that she push my interviews out as far as possible to give me more prep time. She was OK with pushing out to mid-December, so it looks like I'll move forward with it and give it a shot. Any further delay makes my candidacy "go cold" and I would have to restart the process again. If I put the time into studying and learn/remember some tricks that make me better at my current job, then there's still an upside in investing all that time into study (if it just doesn't work out with Google for whatever reason). We also discussed my needing to work remote for any position that I'd be considering, and the recruiter suggested that I consider both L5 and L6 positions (as there would be more full-remote L5 jobs available than L6s).

Regardless of whether I eventually target an L5 or L6 position, the five "in-person" interview process for embedded development positions at those levels still have the same structure:

- Skip initial technical phone screen
- 2 Algorithm/data structure interviews
- 1 Embedded domain interview
- 1 Embedded system design interview
- 1 "Googlelyness and Leadership" behavioral interview

I'm relieved that the number of algorithm interviews is so low. I'll still bust my butt studying that material, but it is a comfort that more of the material is targeting my area of specialty, instead of focusing mostly on general SWE. If any of you have experienced either of those embedded interviews, I'd like to pick your brain a bit to get a feel for what kind of material they'd be looking for. The "Embedded SWE" prep PDF I was provided with is pretty vague about that part of the process. If it helps, the domain area is probably focusing on OS theory.

oliveoil posted:

Can you make a lot more money doing contracting than employment?
If you don't care about benefits, you can earn twice as much for three times as much work. There's the actual work you do, the proposals and scope-of-work documents that may never go anywhere, trying to collect your money through repeated calls to the accounts payable departments of your clients. Three jobs for the price of two!

hendersa
Sep 17, 2006

JawnV6 posted:

you're smarter than me and have (arguably) a better pedigree, im sorta stunned at this
Well, I understand what is going on behind the scenes, so I can't fault them too much for their approach. A false negative on a hire is way less costly than a false positive of hiring someone that won't pan out, so you raise the bar until the false negative level is deemed too high and then back off a touch. Of course, when there is a steady stream of people applying, there isn't much of an incentive to back off on the algorithmic hazing. They're just playing the numbers, and it sets a baseline for their candidate ability expectations. :capitalism:

Also, thank you for the compliment! I don't think I'm smarter than you, though. Just... more stubborn, probably, when it comes to solving problems in my area of experience. The number of hours I've dumped into research, work, and hobby projects in the past is just flat-out ridiculous. When you're genuinely interested in what you're doing, the time goes by quickly! Maybe the experience from all of those extra projects will finally pay off.

If I manage to memorize the right facts and spit them back to my interviewers in the "right" way to ace an algorithm interview, then great. If not, well... I won't take it personally. It just means that both Google and I missed out on an opportunity that would have benefitted us both. But, I'm determined not to let myself be intimidated by this process. I'll prepare for it per the rules of the game and give it my best shot. It's not like the process is a total black box, either. There's enough data floating around out there to do a bit of meta-analysis on other people's experiences to boost my chances.

hendersa
Sep 17, 2006

Good Will Hrunting posted:

Don't worry it's a crypto ETF and I have RSUs to balance it out. "The 2-fund portfolio"
Don't forget to diversify even further by investing in mostly-cash businesses like laundromats, coin-op snack machines, and car washes. Such investments open up lucrative alternate revenue opportunities like "unreported income" and "money laundering"!

hendersa
Sep 17, 2006

take boat posted:

Career Advice: where can I find free citrus until I land my L6 crypto job paying me 2m/yr in tokens
The answer is "Florida". Citrus is literally falling out of the trees, and most everyone there is poor. oliveoil will fit right in. Too bad that Florida is also Mother Nature's punching bag.

Bonus: no state income tax.

Additional bonus: the state is one big open-air sanitarium.

hendersa
Sep 17, 2006

https://twitter.com/Firr/status/1456324664628846599
I highly recommend reading through that posted Twitter thread. It involves going to interview at his old work (while wearing a fake mustache), getting lots of snacks, and actually getting through most of the interview process before being escorted out of the building.

hendersa
Sep 17, 2006

Good Will Hrunting posted:

Lower AGI in favor of what? STR? INT?
Looking back at many of the developers I have worked with in the past, I'm pretty sure that no one is favoring CHA.

hendersa
Sep 17, 2006

hendersa posted:

I had a another call with a different Google recruiter.

:words:

- 2 Algorithm/data structure interviews
- 1 Embedded domain interview
- 1 Embedded system design interview
- 1 "Googlelyness and Leadership" behavioral interview
So... progress update! I'm tired. Very tired. I've spent over 70 hours studying, working problems, and reading textbooks in the last 3 weeks since I spoke with the recruiter and received all of the standard prep materials. That's 2-3 hours each weeknight with a bunch more on the weekends. I've been very diligent up to this point, but I'm losing steam. I'm still working full time, so squeezing good study time out of the few cycles I have left at the end of the day is really a crapshoot.

It isn't all doom and gloom, though. I've been making great progress. The most discouraging thing is realizing just how much stuff I've forgotten over the years because I didn't need to use it.

I've got something like a month left before my interviews. I haven't gotten the exact day scheduled yet. Some nights, I just feel like giving up on this. That's when I step away from the computer for an hour and go walk the dog or do laundry or something. It is very hard to stay motivated when you're at the end of a long day and exhausted. But... people manage to do this. They put the time in, they study and work through problems, and they get the job and get things done. I can do this. I... just don't exactly feel like I can every now and then.

All my personal projects and reading are on hold. It feels like my whole life is on hold. But, you know... this is what it takes. I just don't know how I'll feel if I do all this prep and it doesn't work out. I guess I'll be in an excellent position to interview somewhere else? To explore what is out there? Who knows?

I have a mail out to my recruiter asking for details on the two "embedded" interviews in my interview breakdown. I'm hoping that she gets back to me soon to give me a better feel for them. I mean, do you select the "domain" that you are interviewed on? Is the domain selected by an interviewer, based upon your resume? Something else? Who knows? Hopefully, the recruiter knows and she'll get back to me soon so that I can help focus my review efforts.

hendersa
Sep 17, 2006

asur posted:

Are you only planning to interview at Google? Because if so that's a huge mistake that a lot of people seem to make. Not only do you want multiple offers if possible, but interviewing is a numbers game. More interviews means more chances to not get screwed by factors outside your control whether that be bad interviewers, questions you aren't familiar with, etc.

Even if you're set on only Google, which you shouldn't be, I strongly strongly recommend at least doing one other interview before as practice.

Jabor posted:

Interviewing at several places at once is the best plan for sure.
I hear you. I was pretty worn down last night when I posted, so I set aside the computer for the evening and took a break. This morning, I revisited the thread to look at what everyone said, and I agree with it. More choices can't hurt, and if one of them pans out it puts another option on the table. Around lunch time at work, I reached out to a recruiter from Amazon that pinged me about a week ago and I scheduled a quick introduction call with him for Friday. There's a decent chance that I could line up an interview with them as well, I think, once this recruiter stops asking me things like "does 'embedded' mean you do front-end or back-end development?" and gets me into the hands of the "right" recruiter at Amazon for the work that I do. When a company has stuff like Alexa, Kindles, Fire TV Sticks, etc. in their product portfolio, there's a reasonable chance that there are some interesting embedded projects in their internal R&D pipeline.

Google and Amazon are the only two of the big boys that just showed up to my front door, though. Since I'm coming from the embedded Linux side, I don't have as much variety in positions as the typical full-stack dev does. Of course, there's less competition for the types of jobs in my wheelhouse, so I guess it all balances out.

awesomeolion posted:

Another good trick when you just need to loving lie down is to pull up some youtube nerds explaining how they solve leetcode questions. Kenny talks code was amazing but apparently Google yelled at him so he made all his videos private. Anyway there's lots of similar channels. Good luck!
I was doing this when I first got rolling on problems again. About 5 hours of graph algorithm videos and 5 hours of dynamic programming ones really got me on track for those two topics, and the occasional "here's how to solve this specific type of problem" video breaks up the problem-solving grind. What really helps me with those videos isn't the verbal explanations, but the visualizations in the videos that highlight graph edges, rotate nodes, etc. I would have learned this material so much quicker the first time around if content like this had been available.

Rocko Bonaparte posted:

Been there. Check in with people that know you and see how your personality has been affected. You don't want to do all that effort just to burn out and come across like a walking sad trombone on the big day.
At this point, I think that it is less like a trombone and more like a long, sad, slow slidewhistle. :(:hf::(

hendersa fucked around with this message at 01:34 on Nov 11, 2021

hendersa
Sep 17, 2006

oliveoil posted:

I looked at the Facebook job openings today and saw at least one opening for embedded SWEs. Not sure what level. Not sure what OS. Having a Facebook offer might help with negotiating with G.
I took a quick look at what Facebook had to offer, and their embedded SWE positions all appear to require relocation. There was a remote-friendly one for a "Linux Kernel Software Engineer", though, so I'll submit an application for that one and see if there is any interest from their end. My background is really pretty solid for that sort of thing, so I'm hoping that it jumps out whoever is screening these things and results in a shorter-than-normal turn-around time. If not, well... at least I gave it a shot, right? :shobon:

Edit: Application is submitted. Let's hope that my uploaded LaTeX PDF resume shibboleth scores me a few "Linux guy" points during the process...

hendersa fucked around with this message at 17:44 on Nov 11, 2021

hendersa
Sep 17, 2006

So, a few new developments on my hunt for a 100% remote embedded position with one of the big boys:

- I have my "on-site" interviews with Google next week. The five interviews are split over two days, with two on the first day and three on the second day. I was sent a pile of setup info for Google Meet, as well as an NDA about not revealing their interview questions or details on projects they discuss. :ssh:

- A Meta recruiter contacted me out of the blue just this morning about an embedded position in their new AR/VR push. I have a call with her this Thursday to talk about it.

- An Amazon recruiter contacted me about leading some new product team that has nothing to do with embedded. I explained what it was that I actually do, and he agreed that it had nothing to do with the position he was filling. He promised to pass me along internally. Nothing has come from it, and nothing probably will. The guy seemed super disorganized.

- A Roku recruiter contacted me all gung-ho about embedded positions and he keeps asking a random question, disappearing for several days, and then reappearing again to ask another question. At least he is keeping in contact, but I hope this isn't a sign of how disorganized Roku is inside their organization. I mean... do they want to fill positions or not? This guy has been playing hide-and-seek for about two weeks, now...

- I submitted an application to Twitter. I received an automated rejection mail 8 days later. Never even spoke to a person...

- I have another call with a smaller company tomorrow. Probably just with their HR, though the hiring manager may jump in there. It's a longshot, but I'm curious as to what they're offering. Their Glassdoor reviews look good, and the salaries are decent-ish.

- Another recruiter for a recently-acquired start-up pinged me about an embedded position and is waiting for me to set up a call with her. It's a company that makes ovens, of all things. The recruiter is gung-ho about the position being 100% remote and the company sending me "whatever I need to get the job done", so I'm picturing my office being filled with half-assembled ovens...

- I've had two other, smaller companies that were very eager to speak with me (they mailed me to set up a call less than 24 hours after the application was submitted), but they were offering far less than my current salary.

- I've got about ten other applications in at various places, but I haven't heard anything about any of them. Some of that might be due to the Thanksgiving holiday, or they may just decide to wait until they get a pile of resumes and then review them all at once. Either way, I'm not terribly optimistic about them. They are mostly LinkedIn impulse applications, anyway, that I submitted in the hope of perhaps finding a diamond in the rough.

All of these are for 100% remote embedded positions (or so they say). In general, if I apply somewhere, I get nowhere or get lowballed. If a recruiter contacts me, then at least the process gets started pretty quickly and I skip a lot of the initial phone screens, resume filters, and other games. All of the recruiters that have contacted me have done it through LinkedIn, so that's definitely the place to be.

hendersa
Sep 17, 2006

Mniot posted:

It could just mean that the embedded positions aren't the highest priority and Recruiting is kinda poo poo.
If you haven't already, I think it's worth shooting an email to the recruiter saying you've got an interview coming up at Google but that you like Roku and were really hoping to interview with them. If they're any good that should get them to prioritize you enough to schedule something.
I did let the Roku recruiter know (several days ago) that I had scheduled interviews with Google and that he needed to talk details with me and line up calls/interviews ASAP if they thought I was a good fit for something. He hasn't gotten back to me. :shrug:

You'd think Roku would be all over their embedded recruiting, since they have actual physical products under development...

hendersa
Sep 17, 2006

Hey everyone! Time for some updates:

- I did my five interviews with Google about two weeks ago. They were split up over two days, with two the first day and three the second. The two interviews on the first day didn't go so hot. I was nervous, tripping over words, etc. I figured I had pretty much blown it. But, I rolled into the second day and nailed the next three interviews. A week afterwards, my recruiter contacted me and said that she reviewed the feedback from my interviews and was amazed at the results. She had never seen such a suck/awesome split on interviews like that before, and she really wanted to get some comments from me on it so that she could annotate the feedback before it was passed along to the hiring committee. So, I told her I had a bad day, the first interviewer was really pushy and picky, I was going blind into the first interview because no one could tell me what content was actually going to be asked in an "embedded systems design" interview (surprise... it was non-embedded coding questions and had no embedded design in it!), etc. I probably won't hear back from them until January, and I give myself about 50-50 odds.

Fun fact: The interviewer for my Google "embedded domain" interview told me that he has read my book on hardware interfacing under Android! I told him that I'd be happy to sign it for him if I get a position. :science:

- I have a pending offer with a high performance computing start-up that is currently in a holding pattern. They're patiently waiting on me to hear what Google says, and will talk numbers and details with me then.

- I have interviews with another one of the big companies in the high performance computing space in the first week of January. That's why I'm not pushing Google to hurry along with a decision. They have a reputation for asking about things relevant to doing the actual job and not CTCI puzzles, so I have high hopes. I was told that my resume "speaks for itself" and that my first interview is directly with the hiring manager, so I get to skip the preliminary technical screening interview on this one (like I did with Google).

- I did a preliminary technical screening interview with Meta, but the feedback I received was that they didn't get a "clear signal" on my ability from the interview and wanted to do a second tech screen. I politely declined and withdrew my application, stating that I was already past the on-site interviews with Google and that I probably wasn't what Meta was looking for if it wasn't immediately apparent in their tech screen. The recruiter seemed somewhat hurt that I'd say such a thing, since they are in dire need of experienced embedded people for their AR/VR initiative. Oh well. I also wasn't worried about backing out because I've had several people tell me that Meta is toxic as all hell.

- I threw an application at iRobot, but got an automated rejection mail a week later. So, I guess I suck, but I don't suck enough to work on robotic vacuums.

- Roku and Amazon never got back to me about remote embedded positions. Not a priority for them, I suppose.

- I turned down the recruiter wanting to talk to me about working at June (the company making ovens). I know that one was a crowd favorite around here, but I just couldn't see it as being very interesting. They're hiring, though, so if anyone here is just dying to work on a 12-in-1 oven, you should feel free to apply.

hendersa
Sep 17, 2006

College Rockout posted:

I did two phone interviews for google and got invited back for a virtual onsite. Any tips/advice for onsite day?
This might help. Instead of trying to use that awful drawing tool in Google Docs, set up something like this:

I put a second webcam on a tripod and aimed it at a whiteboard. I fed the input from the camera into Webcamoid and then shared the Webcamoid preview window when needed during the interview. I used Webcamoid's Configure Effects -> Matrix Transform with a transform of:

[-1, 0, 0]
[ 0,-1, 0]


... to rotate the image 180 degrees. That way, the picture was right-side up for both me and the interviewer. The black lines on the board show me the cutoff points where the camera can't see, so I can keep my writing in the visible area of the board. There's a keystone effect to the image, but nothing so bad that it is distracting. Tape the tripod with masking tape to keep it from rotating and to keep it anchored to the same spot on the whiteboard.

Let me tell you, I used this in three of my five Google interviews, and each of my interviewers said that they thought this setup was fantastic. Rather than having to watch a candidate try to explain things with their hands or use that slow drawing tool, they saw me do one or two quick sketches, gave their feedback, and we got the show on the road ASAP. There was one coding question that I got that involved pointer math and memory alignment, and using this setup totally saved my butt because I could sketch pointers and where they pointed to in various buffers.

The Google interviewers want to "see how you think" in your interviews, and it's hard to beat a setup like this. I'd sketch something, point at things, talk to the interviewer, do a quick erase and redraw, etc. You can also write things like the big-O time for various things on the side as you discuss options and the like. Finally, once you get a solid plan of attack, you type the important bits into the Google Doc that they share with you so that the interviewer can refer to it later. The interviewer is left with the impression that you're organized with a plan of attack and that you're ready to explain everything with examples quickly and efficiently.

Edit: Also, if you have a really snazzy diagram that sums everything up nicely, you can screenshot the preview window and then Ctrl-V the image into the Google Doc so that the interviewer has it in his/her notes. :discourse:

hendersa fucked around with this message at 03:55 on Dec 23, 2021

hendersa
Sep 17, 2006

Motronic posted:

Maybe I'm missing something, but I've been doing effectively the same thing with a cheap drawing tablet and screen share for years now. It has the added bonus of working as a second monitor when you're not drawing on it. And also not taking up so much space.
If you've got a tablet and it works for you, by all means use it. The important thing is to not use the drawing tool in Google Docs with just a mouse to work with. I don't have a tablet and occasionally need to have my hands in the image while I work, so I've got this setup.

Achmed Jones posted:

yeah but that's using a product for its intended purpose. there's not even a hint of rube goldberg in there. boooooooriiiiiiing
Well, I have a different use-case than most people here, I suspect...

Anyway, if you don't have a tablet, but you do have a webcam sitting around, point the webcam at a sheet of paper and you're off to the races for cheap. The Google interview tip PDFs that are provided to candidates state that you can use paper and pencil if that is your preference. The problem is, I held a sheet of paper up for my laptop's integrated webcam and the webcam would blur it, apply the background filter to the paper, or just couldn't see it well enough. So, the second webcam with a shared preview window was the way to go with what I had available.

hendersa
Sep 17, 2006

Achmed Jones posted:

i'm just joshin ya, no defense necessary - it's a cool setup
Thanks! :hfive:

quote:

also it's fun to make rube goldberg stuff
It is! It's even better when you can justify doing it for a "serious" reason of some sort.

hendersa
Sep 17, 2006

:siren:Final Update!:siren:

hendersa posted:

- I have interviews with another one of the big companies in the high performance computing space in the first week of January. That's why I'm not pushing Google to hurry along with a decision. They have a reputation for asking about things relevant to doing the actual job and not CTCI puzzles, so I have high hopes. I was told that my resume "speaks for itself" and that my first interview is directly with the hiring manager, so I get to skip the preliminary technical screening interview on this one (like I did with Google).
This is the one that worked out in the end. I ended up receiving an offer for an IC5-level position with NVIDIA, which I have accepted. Score one for the embedded developers! levels.fyi was right on target, and my offer exceeds the listed average for IC5! This is a ginormous amount of comp.

:siren:Google Postmortem!:siren:

The Google hiring committee did not accept or reject my application. Instead, I got an "on hold" status and was told that I wasn't acceptable at the L5 level. I was given the option to do two additional coding interviews for a re-review at L4, which I ended up declining. The recruiter was quite shocked at this, but I told her I had an L5-equivalent offer sitting there and that it didn't make sense to try to please the hiring committee for a shot at an L4 position. She asked me to have a call with her for her to "better understand" where I was coming from, which I accepted.

The call was... interesting. She wanted to know why I'd bail out of the interview process when I was so far along, and I told her that the offer I was accepting had a hiring process where I talked to the members of a team, was interviewed on knowledge related to the role, and had a quick (approximately one week) turnaround for a decision. The "embedded systems design" interview NVIDIA gave me was actually on, get this, embedded systems design. The one Google gave me was on OS trivia with a coding problem unrelated to embedded systems. I told her that I didn't feel like I was a number during the process with NVIDIA and that there weren't any puzzles or games. She assured me that Google treats their employees very well and not at all "like a number." I told her that I did not doubt that was true, but I wasn't an employee. I was an applicant. And, the hiring committee didn't feel that this particular applicant fit their statistically-significant template of a successful employee.

Things began to go a bit off the rails at that point. She strongly hinted that the reason for my rejection was that a lot of Googlers took vacation in December and that the right people weren't interviewing me or reviewing my application because of it. She also said that there was a real lack of embedded people applying with my level of experience and that I really, really needed to do the other interviews and get re-evaluated to at least get me accepted and in the door. Because "Google really needs good people like you." Then, once I was accepted, I could find a team that really liked me who would argue on my behalf to get me bumped up to L5.

You could begin to really hear the frustration in her voice. The system had done me wrong, I was going to go work for a competitor, and she really wanted to talk trash about the process while fighting not to. She was trying to keep a professional demeanor and say something, anything, that would get me to do those extra interviews. But it wasn't working. But she was really trying her best.

Anyway, I reiterated that the process wasn't intended for people like me and that I was sure that Google receives so many candidates that me not receiving an offer wasn't any great loss in Google's grand scheme. She said again that she was disappointed, but understood why I decided to go elsewhere. She finally asked me if Google was still my first choice for employment and whether I'd reapply in the future. I thought about it for a few seconds and said, "well, after going through all this... not anymore."

There was an uncomfortable pregnant pause at that point. I'm pretty sure that if you listened closely enough at that moment, you could hear the sound of her spirit breaking a little bit. Then, she thanked me, wished me well, and told me to let her know if I changed my mind in the future. I thanked her for her help throughout the process and ended the call.

Oh well. You win some, you lose some.

hendersa
Sep 17, 2006

Rocko Bonaparte posted:

hendersa, are you going to be single-handedly making Nvidia Linux drivers not suck? That would be very respectable. I still am trying to leverage you as a stick to beat over my old colleague's head when I tried to get you through to Twitter. I think I learned something I didn't want to learn from that.
I interviewed with two teams: the CUDA API team and the BMC team (working on their DGX server products). The offer I got was with the BMC team. Both positions involve device driver work, but neither of them develop the PC GPU drivers. Those drivers are developed by the core OS teams.

The BMC lives on the baseboard/motherboard of server systems and it constantly monitors and controls aspects of system health: temperatures, fan speeds, various health-related sensors, states of hot-pluggable processors/RAM, etc. The BMC OS work gets very in-depth, since you're essentially making a specialized OS with a suite of custom device drivers and monitoring daemons to watch over and control a system with soft/hard real-time constraints.

The Twitter job that your colleague is hiring for is a distro-maintainer job with a focus on tuning resource usage via cgroups for performance. The NVIDIA job that I accepted is more about building an OS from the ground up for a specialized purpose. Since Twitter auto-rejected my application, I never received any feedback on where I fell short of their expectations. I don't know what Twitter is looking for, but it must be something pretty special! :v:

hendersa
Sep 17, 2006

I don't want to derail the salary chat, but I wanted to share this here, as some of you might appreciate it:

I received an InMail message from a recruiter on LinkedIn. His message raved and raved about my profile, calling out specific things that I had listed at specific companies I had worked for in the past. He had clearly read through it and picked out the pieces that he was specifically looking for. Even better, he was a member of the HR team of the company itself. He said that he really would like to talk to me about a Senior Software Engineer position that he thought that I'd be a perfect fit for, and he included a link to the job posting page on their website. The rest of his (rather lengthy) mail was about how great the company was.

Normally, I ignore these things. I'm really ignoring them now, since I just started my new job. But, I absolutely had to reply to this guy because I applied for and interviewed for this exact same position back in November. The date on the job description was back in October, so it hadn't even been changed in the time since I interviewed. This recruiter that was contacting me had not only spoken to me before, but he set up a Teams interview for me with the hiring manager and sent me the invite. The interview with the hiring manager had gone really well, but then I never heard anything back. They completely ghosted me.

I responded to the recruiter's message, saying that I also thought that the position was an excellent fit for me and that I'd be happy to apply. Which is why I had already applied for it. In November. And interviewed for it. In November. And hadn't heard anything about it since... November.

He never replied. Oh well. :v:

hendersa
Sep 17, 2006

Pollyanna posted:

Wait, is it just me, or is the reasoning on the optimizer backwards? Shouldn’t you wait to sell your short-terms so they become long-terms?

No, the optimizer is right. You pay taxes on gains. You do not pay taxes on losses. Losses offset gains. So, you want to sell stocks that "lose money on paper" first so that you don't pay taxes now (and can offset gains you have later). Prioritize selling stocks that result in taking losses first.

Stocks that are losing now may be gains next week. So, prioritize selling short-term losing stocks before selling long-term losing stocks. That way, if your losses become gains next week, you end up paying long-term capital gains on those long-term losing stocks that you held onto (and not your nominal tax rate on the short-term stocks you sold).

As for gains, you know the routine: sell long-term before short-term to pay long-term capital gains tax instead of your nominal tax rate.

Edit: :capitalism:

hendersa fucked around with this message at 22:34 on Apr 29, 2022

hendersa
Sep 17, 2006

I started my new job at the start of February. My RSUs locked in 30 days later. The stock price went up shortly after the lock-in, but then it went way, way down. Oh well. There's a one-year vesting cliff, so plenty of time for the stock price to bounce back before the first 25% of my RSUs are issued to me, right?

I received a notice in my e-mail last week that said that, due to volatility in the stock price between my RSU lock-in time and now, I am being granted additional RSUs (35% more shares!) to compensate for circumstances and bad timing. Also, the first issuing of these additional RSUs will be on the next quarterly RSU issuing date (September), rather than on my vesting cliff date (March of next year).

To put this in perspective, those additional RSUs are worth more than a full year of total comp at my last position. :woop:

hendersa
Sep 17, 2006

Back in December, this happened:

hendersa posted:

- I did a preliminary technical screening interview with Meta, but the feedback I received was that they didn't get a "clear signal" on my ability from the interview and wanted to do a second tech screen. I politely declined and withdrew my application, stating that I was already past the on-site interviews with Google and that I probably wasn't what Meta was looking for if it wasn't immediately apparent in their tech screen. The recruiter seemed somewhat hurt that I'd say such a thing, since they are in dire need of experienced embedded people for their AR/VR initiative. Oh well. I also wasn't worried about backing out because I've had several people tell me that Meta is toxic as all hell.

Today, I got a mail from a Meta recruiter (straight to my personal mail, so it was from my pre-existing applicant profile):

Desperate Meta Recruiter posted:

One of my colleagues was in touch with you earlier this year before we filled all of our openings, but now there's more! The team I'm sourcing for is seeking a Sr. Embedded Software Engineer to build and execute strategies and plans across all our current and future AR/VR products. This is an exciting time to get involved as we currently have a very limited number of open roles within our Embedded pipeline. These are high priority openings, signed off by our executive leadership.

I responded by saying that, since I didn't even pass their technical phone screen last time, I take that as a pretty clear indicator that I'm just not the type of candidate that Meta is looking for. Then, I wished him luck on finding the right people for his positions. Will he swallow his pride and mail me back, asking me to at least try? We shall see.

:shrug:

hendersa
Sep 17, 2006

StumblyWumbly posted:

Bringing up ancient history, but I fell in a hole while reading this. You said you interviewed for an embedded role at Google, was that to work on Android or do they have other embedded stuff going on?

From what I dug out of my Google interviewers, some of the projects to check out were Android-related (phones, automotive, kiosks, tablets), consumer products that Google has acquired (like FitBit), AR/VR, and "lots of cool internal R&D efforts that run for a quarter or two to see if they'll be worth it". I asked my recruiter for more specifics, and she couldn't tell me squat about specific projects other than "Android". She asked me to give her a debrief after all of my interviews so that I could give her some details on whatever projects my interviewers mentioned to me (since they were supposedly all embedded software engineers of some sort).

It was an odd experience to me, since Google won't talk specifics on the opportunities available until you can prove that you fit their statistically-significant template of a good candidate via the interview gauntlet. Embedded is a big ball of niches, and someone who is writing Linux kernel drivers is going to interview way different than someone doing bare metal on micros.

When Google interviews candidates, they do a generic "embedded" interview sequence. You don't interview for a specific job, per se... you interview for the embedded domain. If you pass these more generic interviews, you get to interview with specific teams that are interested in your background to find a good fit. You might have an idea of a specific area/product that you'd like to work on, but you have to go through the generic interview gauntlet first. You're really going in blind.

StumblyWumbly posted:

I'm an old senior embedded guy myself, but I tend to be more bare metal or FreeRTOS, not Linux, and when I poke around for stuff at Google it looks like mainly FitBit work, and I just imagine myself falling asleep at a job like that.

I did some FreeRTOS work on Atmel SAM E70 MCUs at my last job. Bootloader work, application development, flash planning/layout, and tons of finding/eliminating performance hotspots with Percepio Tracealyzer. :hfive:

Anyway, as far as interviewing with Google on embedded jobs... I don't recommend it and don't have plans to do so again in the future:

hendersa posted:

The call was... interesting. She wanted to know why I'd bail out of the interview process when I was so far along, and I told her that the offer I was accepting had a hiring process where I talked to the members of a team, was interviewed on knowledge related to the role, and had a quick (approximately one week) turnaround for a decision. The "embedded systems design" interview NVIDIA gave me was actually on, get this, embedded systems design. The one Google gave me was on OS trivia with a coding problem unrelated to embedded systems. I told her that I didn't feel like I was a number during the process with NVIDIA and that there weren't any puzzles or games. She assured me that Google treats their employees very well and not at all "like a number." I told her that I did not doubt that was true, but I wasn't an employee. I was an applicant. And, the hiring committee didn't feel that this particular applicant fit their statistically-significant template of a successful employee.

Things began to go a bit off the rails at that point. She strongly hinted that the reason for my rejection was that a lot of Googlers took vacation in December and that the right people weren't interviewing me or reviewing my application because of it. She also said that there was a real lack of embedded people applying with my level of experience and that I really, really needed to do the other interviews and get re-evaluated to at least get me accepted and in the door. Because "Google really needs good people like you." Then, once I was accepted, I could find a team that really liked me who would argue on my behalf to get me bumped up to L5.

hendersa
Sep 17, 2006

If you're looking to eventually side-load into Europe and you're American, consider Ireland. On the Critical Skills Occupations List under Employment Category 213 (Information Technology and Telecommunications Professionals), there are web dev and software development categories. There is a test for a relevant degree qualification, though, so you're looking at a bachelors degree as a requirement unless the annual remuneration is over €64,000. For Critical Skills jobs, you work for two years (at least one year with the initial employer) and then you are allowed to work any job as long as you behave yourself. After 60 months of residency, you can apply for long-term residence (i.e. a green card). Dependents/partners/spouses are allowed to receive employment permits immediately once you get your Critical Skills visa, and they have no restrictions on what type of jobs they can work.

Of course, if you have a grandparent that was born in Ireland, you can skip all that because you are entitled to an Irish passport.

You could also just say "screw this" and buy citizenship and a passport for St. Lucia in the Caribbean for 100,000 USD (or 150K for yourself, your spouse, and two dependents).

hendersa
Sep 17, 2006

Sab669 posted:

I see people say things like that on the internet all the time, but honestly no I don't really understand. Even if I moved down state towards NYC or back home near Boston I don't think I'd find a job paying more than $130 or maybe $150. Which is obviously quite a lot more, but I'm not convinced $30K before tax is worth the hassle of living in those kinds of areas. Sure as hell don't see genuinely fully remote job listings that pay well on most board sites. But I still make almost triple the average income for my area.

I dunno, I don't do well in technical interviews and am just a mediocre .NET dev :shrug: and just loving kill me if they want me to do like an actual "take-home" project for the interview process
Syracuse-area goon here. The dreariness and snow of Buffalo is making you disheartened. This is not a big surprise, since upstate NY has been rusting away and falling apart for the past few decades.

I was making $150k a year at a Syracuse company, and it was like pulling teeth to even get that much. I was not given raises because, no joke, I was told that my salary was out-of-line with others in my department and that the others needed to "catch up". There was no way that I'd be able to change jobs here in town and make that much elsewhere unless I became a VP of engineering. No one local wants to hire for full remote. No one local even wants to do hybrid with "X days a week in the office". Cost of living is fairly low here for NY, and it seemed like all of the jobs offering more were down in NYC where the CoL would eat up any gains that I made.

I studied for about 4 months, doing 2 hours of CTCI and LeetCode questions each weeknight and about 10+ hours of the same each weekend. I figured that if I ended up getting another $100K a year in comp that it would be time well spent. I was already burned out when I started doing this, but I pushed on through. I got a remote California position with a total comp (salary, stock, and bonuses) that is triple what I was making before. You think these goons are pulling your leg and telling you of these huge comp packages that don't actually exist? That levels.fyi is all made up to fool VCs and make tech people feel bad that they aren't getting similar comp? It is hard to believe until you get in the game a bit more and get in at one of these west-coast tech companies. You won't score huge like some folks have, but a full-remote .NET position with a salary of $150K and stock/bonus is quite reasonable. Just not for companies in the upstate NY market.

It isn't impossible to get one of these better jobs. It does take work on your part. These jobs aren't hidden. They are literally all over the place on LinkedIn.

There are many people out there that are making much more than you are, doing what you're doing, that are not actually all that great at their jobs. Think of it this way: Let's say there's a .NET position open at a big company in Buffalo that pays $40K a year. Is that position going to attract the best and brightest? Of course not. That company is obviously just looking to hire bodies to fill a seat and move the project forward via brute force while paying as little as possible to do so. Now move this scenario from Buffalo to San Francisco. Now that job in the Bay area pays $100K a year for the same "garbage dev to fill a seat" scenario. We're talking garbage devs that need their hands held to do the basics, have practically no experience, are just cutting and pasting from Stack Overflow, and who may be fresh from a bootcamp or are just an intern in the middle of a CS degree.

Add your years of experience to what you could bring to that seat-warming job. Then, add any process/CI improvements that you've experienced that you can bring up as process improvements. Then, maybe add in some business domain experience (if applicable). Suddenly, asking for $150K-$200K comp at such a place isn't such a stretch. You could get twice as much done as one of these seat-warmers. Three times, even.

Companies can get more money. They can't get more time. If you can save them time, that is worth the money. That is what is implied with the whole "years of experience" thing. You've made the big mistakes on someone else's dollar already and you won't fall victim to the more obvious pitfalls. :eng101:

I did months of prep time just to start the interview circuit. Make a decision. Do you want to do this? If so, you need to bust your rear end and make it a priority. You need to pick up the lousiest hobby ever: practicing interview questions. Dial it back at work and focus on your escape plan. Get your LinkedIn profile in order. Practice coding and interview questions. Do some research on LinkedIn and look through some .NET job listings to see what these companies are looking for. Get those skills/keywords in your profile. Apply to a bunch of jobs. Interview, even if you have no chance of getting the position. Waste the interviewer's time and practice interviewing. Practice, practice, practice, and learn.

Find a tech company that has a NYC office so that the company already has a tax presence in NY state. Apply for a remote position at another branch of the company and the company will already be set up to withhold NY state taxes.

hendersa
Sep 17, 2006

oliveoil posted:

I assume you've done the math on those? I was surprised when I first realized that if you double your income but also double your costs, you can still come out better because your savings can double too.

Unless the tax is gonna destroy it, I would definitely take $300k/yr and $3k/month rent over $150k/yr and $1.5k/month rent. Assuming you'd save like 10% either way, one lets you save $15k and the other lets you save $30k.
I have, and the expenses in my case were far more than doubled. It is still more dollars in my pocket eventually, but it wasn't worth the short-to-midterm trade-offs. The big difference between your scenario and my situation is rent. I own a decent-sized home with a fenced yard, full basement, and a garage. Purchasing a comparable home within an hour commute into NYC would increase my mortgage payment by 200%, easy. I'd also lose out on our second household income for a while if we moved, since my wife would have to quit her job and find a new one in the new location.

If you're by yourself in an apartment, without a family or other attachments, then your math works out. Moving a full household with kids and dogs and such and maintaining the same quality-of-life for everyone is much more difficult and expensive. The increase in compensation didn't provide enough incentive to make the move.

Adbot
ADBOT LOVES YOU

hendersa
Sep 17, 2006

gbut posted:

On the other hand, one of the most intellectually engaging colleagues I've ever had has a degree, but in psychology. And another one, perceived as "the best engineer here, pound for pound", has a high school diploma.

The "degree'd" peeps are also all over the place. I've worked with complete dumdums who were just walking money bags for the school they attended, to people genuinely interested in the science behind it who went to pursue advanced degrees in CS.

It is a land of contrasts, is all I'm saying.
One of the best software engineers that I've ever worked with over the years has a degree in Theatre. When he was selecting a major, he said that he liked computers but wanted to pay for an education in something that he couldn't teach himself. We've moved in different directions towards different specialization areas, but he's still the guy that I compare notes with for the really weird compiler/behavior stuff.

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