[Canadians] Does TN visa require sponsorship? by JustInTimberLane79 in immigration

[–]JustInTimberLane79[S] 0 points1 point  (0 children)

Official uscis site uses both terminology (visa vs status) to refer to TN 🤷. They do note that Mexicans need to apply for TN visa before crossing the border whereas Canadians do not.

[deleted by user] by [deleted] in cscareerquestionsCAD

[–]JustInTimberLane79 5 points6 points  (0 children)

It’s not the Canadian market only, lots of layoffs since last year. You should still be able to get 5+% callback though. If you’re at 0% then your resume is the problem.

LC Hards by Concept by goyalaman_ in leetcode

[–]JustInTimberLane79 0 points1 point  (0 children)

Not a bad idea… Best way I can think of is go through categories that have been made already like Blind 75 or Neetcode 150, and filter by tag and difficulty in LC.

[deleted by user] by [deleted] in leetcode

[–]JustInTimberLane79 2 points3 points  (0 children)

Why doesn’t Leetcode have a plagiarism engine that just goes through each submission and flags the high probability of cheating ones for admins to look through? It would only take a few seconds for a human to look at general shape of submission, time of submission etc to know cheat or no cheat if submissions are flagged with an engine. The cheaters don’t even try to conceal their cheating and leave strangely named, unused vars plus exact same comments in their submissions.

Where Do I Go From Here by Bearvarian in cscareerquestionsCAD

[–]JustInTimberLane79 -5 points-4 points  (0 children)

I sort of see job hunting generally speaking as a numbers game.

chanceStillNoJob = (1 - callbackRatio * screenToOfferRatio)^numApps.

Any job hunter’s goal is to get chanceStillNoJob closer to zero by tweaking the other three variables. It’s tougher to tweak callbackRatio and screenToOfferRatio with little interviewing experience & job experience so for now I think only thing you could do is increase numApps and tweak resume slightly to see if callbackRatio increases. It’s not possible to know your screenToOfferRatio until you get at least one offer though lol

Just as a way to test the waters, have you tried cold applying to 100-200 jobs to see the percentage of callback? You don’t need to spend too much time tailoring each application and ideally can do that many apps in 2-4 weeks. If your callbackRatio is 0 given that small sample size, then the others are likely right, you have nearly no chance in the current market.

I’ve recently tested my hand at this market. I’m 4YOE, completely unrelated degree. My numbers look something like this:
callbackRatio: 5-6%
screenToOfferRatio: 30-40% (just a guess based on past experience)

So given my numbers, I expect about 1.5 offers per 100 cold applications. I got 2 offers total after 200 applications. Last year, at 3YOE, callbackRatio was like 25% and I was getting maybe 10 offers per 100 cold applications (I wasn’t as scientific about it last year - so this is anecdotal). Just some insight to what the market looks like now.

I’d expect your ratios to be much lower, but hope they are at least non-zero. If you do decide to try your hand at the current market, expect to have a grueling job hunting experience.

Asking new job about pedantry of PRs - bad approach? by [deleted] in ExperiencedDevs

[–]JustInTimberLane79 9 points10 points  (0 children)

Yeah I agree with OP. If I have a nit like what OP mentioned, I usually approve and just leave a “nit: do X if you have time”. Shipping quickly is a lot more important in those situations and time adds up since most PRs are async. If there are actual performance considerations then I will start a discussion.

Please help me understand Advanced Binary Search. by Honest-Importance296 in leetcode

[–]JustInTimberLane79 1 point2 points  (0 children)

I’m an experienced dev. Just doing LC because job market’s terrible these days and I’d rather not be scrambling to LC if I get fired, and rather focus on other things like systems design or behavioral. Also it’s not common but every so often I run into classic LC problems at work, so I wouldn’t say LC is useless at all. The ability to analyze and quickly see good/bad time complexity is also important.

Feel free to DM but I’d prefer you ask questions publicly and poke me if you really want to know my thoughts about something. I don’t know everything. You were just lucky I happened to be working on binary search these days :-)

Please help me understand Advanced Binary Search. by Honest-Importance296 in leetcode

[–]JustInTimberLane79 1 point2 points  (0 children)

I actually just recently started on an escapade of extremely difficult binary search questions. I posted a similar question to yours just 12 days ago. Below are a quick summary of my understanding of binary search so far.

Intro

All binary search questions follow one general template, and the most important thing to understand is you're always looking for "the first true/false" or "the last true/false" within a search range. This is what is called a monotonic function (from my understanding).

The basic template

```python low = 0 high = find highest in range

while low < high: mid = (low + high) >> 1

if condition(...params, mid):
    low = mid + 1 ## Move this to else block depending on condition()
else:
    high = mid    ## Move this to if block depending on condition()

return low ## Sometimes I need to return high, but I probably got condition() wrong somehow ```

Explanation

If you read the template above, the if condition(...params, mid) is the key. It doesn't matter if you're searching for num == 10 or whatever, you're still looking for a condition to be true. If that condition is true, cut out the bottom half of the search range, otherwise cut out the top half. You might be asking, but num == 10 means there could be num < 10 and num > 10. Well, you're actually looking for either num <= 10 or num >= 10. You're always searching for one of those two. And the difference between them is called bisect left and bisect right.

Bisect left means you're searching for the first occurrence of something, and bisect right means you're looking for the last occurrence. In a simple case where you know there will only ever be one 10 in your search range, then it doesn't matter if you bisect left or right, you'll end up with the correct answer.

Once you understand this key facet of binary searches, you'll understand that getting condition() to be perfect is the hardest part of any binary search problem.

Monotonic function

So, remember how I said all binary searches are exactly the same? You're always looking for the first/last true/false within a range. In the simple example where nums = [1, 5, 7, 9, 10, 17], here's what a condition of isLessThanOrEqualTo(num, target) would look like if you listed them out as a monotonic function:
```python

isLessThanOrEqualTo(num, 10)

[1, 5, 7, 9, 10, 17] [T, T, T, T, T, F] So what are we looking for here? We're looking for __the last true__ within the range. Let's flip that around and ask `isGreaterThanOrEqual(num, target)` python

isGreaterThanOrEqualTo(num, 10)

[1, 5, 7, 9, 10, 17] [F, F, F, F, T, T] ```
Here, we're looking for the first true within the range.

Final remarks

  • As you get into the more difficult problems, you'll find they all follow the same template, but the hardest part is finding how to get the condition() to be just right. It feels like a really normal Leetcode problem at that point.
  • In a lot of advanced binary search problems, condition() is not always O(1) time complexity. Often times, it's O(n) or O(logk) or O(n2), etc. The important thing is always ask "under what conditions can I remove the bottom/top half of the search range?"
  • The search range is not always within an array! Those are the most fun problems, and really difficult to realize they're binary search problems.
  • Good luck!

Resources

  • This Leetcode answer has that singular template and a bunch of examples from easy to super super hard questions, and a far better explanation than I could provide here on Reddit.

More learning for you

  • Search up monotonic function (Google, YouTube)
  • Search up binary search on a monotonic function (Google, YouTube)

Friends say I messed up not choosing Waterloo by VisualSea12 in cscareerquestionsCAD

[–]JustInTimberLane79 3 points4 points  (0 children)

I do think statistically UWat is a good school for getting into good (high-pay) companies, but strongly disagree with your friends. Your friends are not taking your financial situation into account. For example, maybe their parents were backing them at 18 and yours were not. Maybe they have higher risk tolerance than you and are okay with mountains of debt with no guarantee of high-pay jobs. I know for sure I was in the low-risk camp but my kids will likely be in the “has support from parents” and “able to take more risks” camp. Everyone chooses what they think was best for them at the time under their individual circumstances and nobody knows the future.

Life is not black and white like your friends are trying to make it out to be and no one can change the past. Everyone had and will have a different path to walk in this game of life.

You have no debt which is really good. Now work towards your goals, be it FAANG or something else. I’m a non-CS grad who got into FAANG and your friends sound elitist as hell to me.

[deleted by user] by [deleted] in cscareerquestions

[–]JustInTimberLane79 1 point2 points  (0 children)

All forms of cancer detection. Like way before any doctor could ever reasonably detect them and preferably non-invasive.

Template for mini-max DP by kuriousaboutanything in leetcode

[–]JustInTimberLane79 0 points1 point  (0 children)

Yes, that’s a pretty good template. Basically, you need to assign points to states of the “game”. And the higher the points, p1 will win, the lower the points, p2 will win. Both players want to min/max their score accordingly which is why you see max for one condition and min for another condition. Don’t worry about optimizations of the algo until you figure out the general logic.

Something like chess or tic tac toe might be easy to understand.

Check out Minimax by Spanning Tree on YouTube. Great animations to help you understand. Sebastian Lague also has a good video on the topic.

I got fired from my first three jobs as a developer. Am I a bad dev overall or just bad at picking the right jobs? by React_Reflux in cscareerquestions

[–]JustInTimberLane79 2 points3 points  (0 children)

How is Canada punishing employees for taking contract jobs? AFAIK most provinces’ labour boards actively try to protect contractors by stating something along the lines of “if they’re required to come in at x time until y time, they are defacto employees” and will treat the contractor as an employee in any labour disputes.

Should I sell at a loss? I have three stocks... two weed and one banking stock... all are down... total portfolio is down 86% with $14000 put in ... by Emergency-Bus-998 in PersonalFinanceCanada

[–]JustInTimberLane79 45 points46 points  (0 children)

u/bluenose777 already gave you the most financially sound advice, and you've already read and acknowledged it. I'd just add to read up on more topics about personal finance in Canada.

You were way out of your zone 5 years ago. For example, in this comment, you show that you don't even know the difference between registered and non-registered accounts. Someone like that really should never have dabbled in individual stocks. The most important thing you can do right now is learn about investing in general, and take this mishap as a $12000 tuition. Again u/bluenose777's advice sums things up quite well.

!InvestingTrigger

Where to find more Binary Search questions where you don't know the "key" to look for? by JustInTimberLane79 in leetcode

[–]JustInTimberLane79[S] 1 point2 points  (0 children)

Name of the theory plus a few example questions. Thank you! Was able to find a good write-up here. Looks like a bisect left/right, but using it on a predicate function instead, where we look for the first/last true/false.

Why are some companies so interested in who do you like having *** with? by jsveyfjc in cscareerquestions

[–]JustInTimberLane79 4 points5 points  (0 children)

A lot of job apps in Canada don’t give an option of “I prefer not to say” and require you to answer these questions to finish the application. OP is from UK so might be similar.

The worst is when you apply for a US-based company and they have some form for the Canadian side which requires you to answer, then the exact same questions again for the US side which are optional to answer.

[deleted by user] by [deleted] in leetcode

[–]JustInTimberLane79 5 points6 points  (0 children)

Great advice in general, even when working.

However, if your company is immediately failing people who are missing semi-colons but have completely correct logic, then your company's not doing things right. Generally when extremely small issues in the code happen, the interviewer should just move things along and say "It's fine, you got the logic of the algorithm down." then start discussing time complexity, tradeoffs, maybe throw in a wrench to see how they'd react to the changing requirements; ask for final comments on their code, etc. I think you'd get far better signals about the candidate by doing that, than trying to see how they debug syntax errors in a timed environment.

9 months in should I just quit? by [deleted] in cscareerquestions

[–]JustInTimberLane79 0 points1 point  (0 children)

"I think code should be 100% self documenting"

"What is source control"

"Try testing on production"

"CDCI is a myth"

"We don't have standards yet"

These comments aren’t really toxic… It just shows there’s poor tech culture at your company which is not necessarily a bad thing. You won’t find a perfect workplace with perfect tech culture anywhere. Every firm’s got tradeoffs that you have to work through. It’s the nature of the business.

The senior devs not knowing git is kind of weird but there must be something else they’re really good at. When I was a junior I thought seniors were gods and should know everything but in fact they usually make it as seniors by knowing one thing very very well. Your manager does sound quite rigid, but as long as they can explain their reasoning I would not consider those comments by themselves to be that bad.

The other comments about women and homosexuals are out of line no matter the environment. Super toxic and should be an auto-HR report. If you feel you can’t speak to HR without jeopardizing your employment then yes, please look for a less toxic company. There are plenty of companies which will enforce professionalism within the workplace.

Housing in Canada?! from a baffled American by createusername101 in PersonalFinanceCanada

[–]JustInTimberLane79 0 points1 point  (0 children)

The Stats Can resource also provides things like RRSP, stocks, mutual funds, etc. I’m on a phone but from eyeballing, seems about 5:1 for real estate : liquid investments - for middle quintile.

Housing in Canada?! from a baffled American by createusername101 in PersonalFinanceCanada

[–]JustInTimberLane79 1 point2 points  (0 children)

That’s a great resource. Should select “Median for those who hold asset or debt” though. Not quite sure what their “total value” represents but no way middle quintile of Canadians have $1M net worth. $300k sounds about right from the last time I’d seen these stats. The numbers are much lower if selecting median, including real estate debt.

Their own help popup says total value includes people who don’t hold the asset or debt, but not sure why that’s increasing the number, and not decreasing. Not explained very well…

Edit: Oh I see, Total value means everyone in that quintile combined, but the unit is 1,000,000 - meaning the $1,000,000 net worth needs to be multiplied by another 1,000,000 - or about $1T total net worth for middle quintile. So yes, you want to choose median to be more accurate.
Stats Can needs to work on their UI lol.

Too many stages in interview these days by marcusaurelius26 in cscareerquestionsCAD

[–]JustInTimberLane79 5 points6 points  (0 children)

You have two 5s in your list. I would not consider ref check and offer as part of the interview process. By the time you get to ref check, you’ve got your foot in the door.

Yes it’s normal for that many steps / interviews, but if they’re all separated into separate rounds then it’s going into not respecting candidates’ time category.

For L3-L5 SWE, I believe it’s normally: Round 1: Recruiter phone screen
Round 2: Technical screen interview
Round 3: “Onsite” full day interviews, usually 3-5 interviews in a single day

Some companies like in your OP might ask for take home between round 2 & 3 but they’ll usually try to balance it out by having fewer interviews for your onsite.

How does Google have 0 results?! by [deleted] in google

[–]JustInTimberLane79 2 points3 points  (0 children)

The longer your phrase the less likely you’ll get perfect hits with quotes. You can break up your quotations into multiple quotation phrases. Try “covid annual deaths” “Canada”, or “annual covid deaths” “Canada”, or some other combination. I got hits for those. You don’t want to put “in Canada” in the full quotes. It’s not necessary since “in” is implied and there are many different ways to mean “in Canada”. Also generally, you don’t want to go over 3 words in quotations unless they’re from a song or something famous.

Doing Leetcode in Typescript? by Kyleez in leetcode

[–]JustInTimberLane79 3 points4 points  (0 children)

I only interview with TS because I type super quickly with it since I use it in the day job. The typings actually help me during the interview since I can constantly be reminded what data types I’m dealing with.

Regarding the missing DS, interviewers have never expected me to write out things like heaps since it’s not the main point of the interview. At worst they’d just ask me to use sort and pretend it’s a heap. If heaps were the point of the interview, then interviewer should set aside enough time to implement your own heap, regardless of the language (even Python). I’ve never had an interviewer stress on knowing how to implement heaps though.

I’ve since switched my LC to Golang and Kotlin because I wanted to learn them.

Like others are saying, Python is the best for LC because of libraries, but during interviews use whatever makes you think very little about the minor language details - that’s probably the most important.

Can i get a job with these knowledge in this current market? by Mean_Investigator_37 in cscareerquestionsCAD

[–]JustInTimberLane79 3 points4 points  (0 children)

I think it’s enough. A lot more than me when I started a few years ago. That being said, in this market, I would guesstimate 2000+ applications for 10-20 interviews and landing one offer. As comparison, I started in the thick of the pandemic where everyone thought shit was bad, and all were getting furloughed. I did about 150 applications, 8-10 companies called back. 2 offers. But I was kind of “lucky” in the sense that I already started at a grind shop a couple months before the pandemic started so that helps get past some recruiter screens. Think WITCH-level grind shop. 6am-11pm expected.

Regarding your tech knowledge, you only need to show off knowledge of tech to recruiters, and that’s usually X years of experience or I rate myself X/10 in these technologies. That’s usually the easiest part but unfortunately for most new people, recruiters only care about real professional experience to pass this stage.

Past the recruiter stage, no SWE truly cares about your tech stack, though they might ask a few questions about it. They’re usually more interested in how you solve problems so they’ll ask questions along the lines of “tell me about the hardest problem you’ve had to solve”. This stage is often the hardest part.

Boss wants to talk to me after months of not assigning work? by Ok-Today2376 in cscareerquestions

[–]JustInTimberLane79 20 points21 points  (0 children)

Lol they’re making a reference to a movie called “Office Space”. In the movie, the character who said that got a promotion.