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
Tezzeract
Dec 25, 2007

Think I took a wrong turn...

genki posted:


edit: oh and also, always remember that any one interview is never the end of the line, and just keep doing more interviews. it's not like you can never interview at twitter again, and it's not like you'll never be able to pass one of these interviews. just a matter of getting to know how you should prepare and how to best present yourself.

This so much. The best preparation for these interviews is to just do more interviews. Communication and confidence are the key - even if you don't know something, being positive, tenacious and inquisitive at least earns you the interviewers respect.

I think for preparation, focus on very basic CS problems and suboptimal solutions that are easy to implement (assuming you're raw.) Figuring out the reason why they're suboptimal leads you to see when things like A* make sense as an optimal solution. The experienced person might be able to see the solution immediately, but that shouldn't discourage you. Technical interviews are NOT easy and you have to put in the preparation for them.

Adbot
ADBOT LOVES YOU

Tezzeract
Dec 25, 2007

Think I took a wrong turn...

Pollyanna posted:

Welp, I'm being let go. Commence the "told you so"s.

Their main concern is that I didn't have the independence and reliability they needed from their engineers, which translates in my mind to "you're too much of a fuckup". They cited missteps like using my own credit card to test CC payment and needing too much back and forth on my PRs and them not feeling comfortable with giving me production access, and made it clear that it was a pattern of these occurrences that led to the decision. At this point, I don't really care if I was set up to fail or what - its clear that the blame ultimately lies with me, and I'm tired of fighting it. They're going to work with me for a couple weeks to help me find a new place, which is infinitely more than I deserve, so I'm not totally screwed over. Just gotta work fast.

If impostor syndrome is supposed to improve as I continue my career, this only cemented it. It's really making me reconsider whether this career is a good fit for me, since I've struck out twice already, regardless of circumstances. Unfortunately, it's all I have.

Definitely don't let imposter syndrome get the better of you. Even though there is a lot to learn in software engineering, there are also things that you get down solid by really understanding the intuition and you have to let that build your confidence. And there's definitely learnable intuition involved in programming or else everyone would be typing code randomly and praying that something works (though admittedly, that works too sometimes.)

Good luck with interviews! I still remember how painful those were from just recently and I'm afraid of going back there. I will say that my friend who now is a CS Professor at CMU thinks "random brainteasers" style interviews are dumb as gently caress too. Unfortunately its just something you have to get used to when interviewing in this field.

Tezzeract
Dec 25, 2007

Think I took a wrong turn...

ultrafilter posted:

There are a few good general reasons to do a master's in CS:
  1. You're a current undergrad and the job market isn't good. In that case, delaying your graduation by a couple years and picking up an advanced degree can work out very well.
  2. You took some CS classes as an undergrad, but didn't do the major, and you want to have a CS degree.
  3. You want to get access to the career network of a more prestigious school than your undergrad institution.
  4. You want to specialize in something that's not usually taught at the undergrad level, like machine learning or distributed systems, but you don't want to do a PhD.
  5. You can take the financial hit of not working for a couple years and paying tuition, and you like the idea of getting a master's. Alternatively, your company is willing to pay for it.
The further away you get from this list, the less sense it really makes to spend the money.

I was #2 on that list. Getting a masters in CS was no joke for someone who just took a few intro CS classes in undergrad and came back to get a MS after working. First year was just brutal and discouraging.

Still, finishing it was rewarding intellectually and the better I get at programming the more rewarding the studies seem in retrospect. The problem solving and diversity of topics that coding allows you to do at the grad level is pretty mindblowing.

Tezzeract
Dec 25, 2007

Think I took a wrong turn...

Pollyanna posted:

Meh, I'm not counting on it.

I'm thinking my best option is to take the offer, continue interviewing with other companies to see if I like them, then bailing on the first company if it turns out to suck. Does that sound okay?

Honestly, if they're not willing to meet you even part way on negotiating on an offer you're not happy with in the current economy, it is fine to continue searching.

I'm not sure about your financial situation, but if you really are chasing the money, it might be worth interviewing for a big tech firm.

Tezzeract
Dec 25, 2007

Think I took a wrong turn...

Keetron posted:

Last week a recruiter send my resume to a client and today I was, out of all the candidates, one of two who were invited.
So I looked at the role in detail and to be honest, I have no idea why I was invited other than: The others were a worse match. It would be Sr Java / fullstack developer on a backend application for ATM's. Now I am very stressed out thanks to my impostor syndrome. And of course that I know that poo poo only in passing.

Another role I am running for is that of Jr/Med java dev at a govt, low stress and super short commute (15 mins by bicycle) but for a rate 20% below my usual. I consider it a good way to gain some additional experience.

Either way, let's brush up on Javascript, Angular and React, now for real.

I hope you do well on your interviews!

I'm the type to get stressed out as well, so it's good to have a bit of company. Job hunting has been nerve wracking and I'm just at the phone screen stage.

Tezzeract
Dec 25, 2007

Think I took a wrong turn...

ultrafilter posted:

The performance of R code is very sensitive to how you write it. Someone who understands how R works can actually get pretty good performance out of it even on a single thread, and there are a decent number of packages that offer abstractions for parallel computing. Unfortunately there's a learning curve attached to both parts of that, and there aren't that many really good R programmers out there.

The reason why we use it so much is because for a lot of statistical computing, there is no real alternative. Python has decent support for machine learning and it's starting to pick up some statistics functionality, but if you want to use a model that's even a little bit obscure, you're probably only going to find an R implementation.

This is pretty interesting - I've used a lot of R in undergrad, but when it came to doing anything 'big data' related, I completely fell on my face and had to use some ridiculous simplifying assumptions to wing it... like trying to use ARIMA on millisecond scale power time data over a few months.

Are there any resources on high performance R? Or is this one of those cases where its better to hack an implementation in TensorFlow and use the cloud to cut the problem down to size?

Tezzeract
Dec 25, 2007

Think I took a wrong turn...

BurntCornMuffin posted:

Detect sanity, presence of data when expected, quantity of data. Ensure that via logging or metadata, you can trace the life cycle of your data for diagnosis. Have some sort of dashboard that you can show your consumers, and ensure your support people get alerts and act on them within a reasonable SLA and issue public statements for anything that would affect anyone in your orbit.

This is largely to build trust, as you are likely replacing an existing system that people are used to, and you will be the first people blamed if an issue is detected by a lay person. You will need to be prepared to, if it's not your fault, prove that fact before you pass it off. Proactive notifications, especially if you can catch poo poo before a user, and fast resolution helps to build trust in your stuff, which ultimately means less bullshit down the road.

Basically, don't be a scary black box, and try to catch and ideally fix poo poo before a user sees it.

Oh yeah, unrelated: catalogue and document your data offerings. Your present situation is straightforward enough for now that this may be frivolous, but if other data sources are added, you need to know what business value they offer and be able to let your consumers know what you have available. This goes hand in hand with "if you store it, have a plan to use it".

This is great - sounds like you guys have it figured out. Any blogs/resources about this/scaling into big data and choosing the right org structure, SLAs? Or is this one of those cases where you just have to be on the grapevine.

ultrafilter posted:

There are limits on what you can do on a single machine, so you will eventually have to use the cloud. R has interfaces for TensorFlow, Hadoop, Spark, and other distributed computing platforms, so that's not as big a jump as it would be otherwise.

The canonical reference on R performance is Hadley Wickham's Advanced R. That's a must-read for anyone who uses R for more than trivial data processing. There's also a book on high performance R that I'm not familiar with, but the Amazon reviews are pretty good, so it might be worth checking out.


I'll be sure to flip through these resources!

Tezzeract
Dec 25, 2007

Think I took a wrong turn...

Comb Your Beard posted:

Am I underpaid? Should I buck up and start putting myself out there? Wife does have a point. What are the good job boards these days? In the past I liked Stack Overflow. Interviewed a bit in the past but nothing came of it. Would Amazon be a bad fit?

Before really committing to a job hunt, you have to get an understanding of the kind of lifestyle you/your family want to achieve. If it's just a matter of making more money, it's definitely way easier to ask for a raise than to jump into the job market and brave the uncertainties. It sounds like you're a good worker and you might be able to get things your way because you are underpaid.

It's different if you're bored or jealous of some of the salaries people seem to be able to command. This kind of relates to my current situation, but it is pretty frustrating to know that the top end of the market is 2-10x what you're being compensated right now. It's a bit of a 'first world problem, because getting paid six figures with good WLB is a good deal, but sometimes you can't reason away the different pressures on your life.

Tezzeract fucked around with this message at 05:07 on Nov 25, 2020

Tezzeract
Dec 25, 2007

Think I took a wrong turn...
Thanks for the LinkedIn tips, I'll try it out.

Tezzeract
Dec 25, 2007

Think I took a wrong turn...

thotsky posted:

Now they want me to do two additional technical interviews. Feels like a bad sign when there's this many hoops, like they don't know what they're looking for. Somewhat disrespectful of my time too, they can't even schedule them one after the other, but spread them over one day.

In my experience when I have additional technical interviews, I did well enough on a lot of the team fit and general aptitude parts, but they're not 100% sure that my technical skills are up to snuff.

Which is pretty fair because I probably wing too many interviews and I should only interview after having 1000+ LCs under my belt :3:

Tezzeract
Dec 25, 2007

Think I took a wrong turn...

asur posted:

You won't get laughed out of the room. All the numbers are valid, not just those with 0 years at that company. Companies are paying for the value people provide and aren't going to randomly overpay for it because people have been working there longer. If you use levels, I would look not only at the range and 3 percentiles of the level your applying for, but also look at one level up and down to calibrate how those percentiles match up. As mentioned if possible don't mention a number.

Looking at one level above and below is interesting. I've been reading a bit of Pragmatic Programmer on tips on how to build the right skill set/career equity.

Is it worth it to downlevel to try to get into a place that is actively using a technology that is in demand or has future potential in order to build experience? Or would people consider self training/side project experience seriously for interviewing at the Senior+ levels?

Tezzeract
Dec 25, 2007

Think I took a wrong turn...

Jose Valasquez posted:

The time spent practicing leetcode carries over to any interview that does algorithm questions. Homework projects are just sunk time that is only applicable to 1 interview

This is weird, but are there any tips for take homes? I admit that I might have a bad sense of what a good solution vs a bad solution is.

(Hopefully it's not just cultural issue, like if you use this library, you're an idiot)

Tezzeract
Dec 25, 2007

Think I took a wrong turn...

The March Hare posted:

People often tell me I've provided their all-time favorite take home submission (and then don't hire me after I fail to implement a red black tree under white lights in a laboratory) and here are the things I do:

1) My submission does exactly what the prompt says.
2) I have a clear readme with instructions on running the project and running tests.
3) I write a few tests that demonstrate I know what I'm doing, and I comment them saying what I would do to make them more robust if I had more time etc.
4) I have a makefile to run the project and run the tests, instructions for using the makefile are in the readme in addition to whatever the normal invocation is for people who don't want to use a makefile.
5) If the thing is an any way a UI I try to make it "nice". If it is a CLI I'll add a little bit of color or something. If it is a website I'll at least make it look reasonable. I do not spend a lot of time on this, just a basic css reset and good use of basic HTML elements.
6) Avoid external deps at all costs and opt for simple, readable solutions with lots of comments in your code.

My thinking, having reviewed a ton of these, is I want the reviewer to have as pleasant an experience as possible. No 2gb npm installs, no deps that fail in my dev environment, no 800 line functions with 2 character variables and no comments.

The most important thing, imo, is not that you impress them with your coding prowess or doing more than what they asked for - it is just that you two can have a nice time going through your project.

I guess finally, if possible, try to anticipate where they might want you to add some feature so you can be ready for that when the time comes during the interview.

Thanks, this is really helpful.

Tezzeract
Dec 25, 2007

Think I took a wrong turn...

Good Will Hrunting posted:

How much do you all pay, I want to work there if the interview questions are that easy :yotj:

Anyone got any favorite dfs backtracking in a 2d matrix interview questions to ask? I seem to gently caress these up a lot, and I guess just regular recursive backtracking where it's hard to decompose the recurrence relation. Other than that I'm getting a lot more comfortable with this style overall and improving my speed, except I still find some of the less combo calculation/more string heavy DP problems kind of a pain.

Were you talking about something like this:

https://leetcode.com/problems/shortest-path-to-get-all-keys/

If it's more of a graph problem, you can memorize the graph traversal algos and the common book keeping parts like parent arrays/arrival times. And then the remaining problem is finding the set of neighbors in a 2d array.

Tezzeract
Dec 25, 2007

Think I took a wrong turn...

Good Will Hrunting posted:

Feel like I need some primer on how to decompose recursive problems that are more "difficult" than easy. Every other topic has been manageable to improve at pretty quickly with concentrated practice but I was trying Subset Sum with K Partitions yesterday and got absolutely nowhere. With problems like this I sometimes don't even know where to start.

I tried to model the bottom up DP and completely bricked. I searched online and it is possible with bitmasks to represent the state?

It's a bit crazy how going from K = 2 to an arbitrary K changes the DP's structure.

Tezzeract
Dec 25, 2007

Think I took a wrong turn...

Pollyanna posted:

Lord help me, Google's interested, and now I'm staring at a pile of prep materials.

I am woefully unprepared. I tried the Linked List problem on Leetcode, and it took me over an hour with a bunch of experimentation to get something that passed all the test cases. I can't pull it out of a hat, especially in a fuckin Google Doc instead of a REPL. :negative: I'm not sure if this is actually going to go well...

My advice is go with Grokking the Coding Interview to learn some patterns that gives you good coverage for questions https://www.educative.io/courses/grokking-the-coding-interview. If you want to go with a bootcamp, I recommend Interview Kickstart, but that's like a 2-8 month commitment.

Tezzeract
Dec 25, 2007

Think I took a wrong turn...

oliveoil posted:

I'd agree with that usually but this is a good friend of a good friend and they're planning to quit their jobs as soon as they get funding, which is only blocked right now by finding a tech lead that they trust.

I guess I'm just worried they'll come back with "hey we got funding and quit our jobs, let's start!"

I had a friend in a similar place who went to work in a Solar startup with his friends. I think overall it was a positive experience for him, but you're riding the ups and downs of the rollercoaster with your friends.

If you can find the discipline to limit yourself to 40 hours and the startup is ok with it, it's worth taking a shot.

It could be a decent experience if you're really interested in the product/service. Even better if it'll improve your skills in a way that Google can't. Otherwise, it'll be a huge slog and won't feel as rewarding. If you're just chasing $$$, it might be more rewarding to look into hedge funds (DE Shaw, Jane Street).

Tezzeract
Dec 25, 2007

Think I took a wrong turn...

Pollyanna posted:

Google tech interview tomorrow. Honestly unsure of the prospect, but I think obsessing over it is going to destroy me, so gently caress it, whatever comes will come. That said, I find success unlikely - I really hate the Google-style tech shibboleth interview, even if they do make a big stink about being "to scale" or whatever.

You could think about it like a numbers game. If you have 10% chance of passing a FAANG, then you can expect 10 interviews to get your first offer. So you can technically grind FAANG level interviews.

https://www.cut-the-knot.org/Probability/LengthToFirstSuccess.shtml

Tezzeract
Dec 25, 2007

Think I took a wrong turn...

Good Will Hrunting posted:

I'm finding that I do really well and am really quick to work through the first 1 or 2 problems but by the end I'm having trouble working fast enough to produce a perfect result while also explaining myself, edge cases, etc. I don't totally bomb, but my brain is feeling the fatigue of a very long rush and wants to give itself a rest. The need to compile and run the problems and pass cases based on large input performance in a 45 minute window is a very different experience than working with your interviewer to solve a problem. In that regard, Google has actually been a decent experience because I don't feel like I'm racing the HackerRank clock to get a working result as well as passing all 15 or whatever cases.

This sounds like FB style interviews. They're known for really pushing 3 problems in 45 mins. Whereas Google will usually ban LC problems and have interviewers create a variation for the problem bank.

And yeah I'm pretty sure people do 'pre-cache' top X problems from a company before the interviews to occasionally get a freebie.

Adbot
ADBOT LOVES YOU

Tezzeract
Dec 25, 2007

Think I took a wrong turn...

ultrafilter posted:

Probably not a great trend if you just want to write code all day long, but as a local you have the advantage of being in the same building and timezone as internal customers. Career progression will probably involve leading the efforts of an offshore team if it becomes more common.

I actually chatted with a super early startup with no technical folks who wanted to vaguely automate things. Just to get a sense if I can 'write my own ticket' in life.

Needless to say, cold selling to people who may or may not be interested a freelancer/contractor makes the leetcode technical screens seem structured and objective :v:

(Or is the sell really just saying 'I can help with that')

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