Mama told me not to come.

She said, that ain’t the way to have fun.

  • 20 Posts
  • 11.4K Comments
Joined 2 years ago
cake
Cake day: June 11th, 2023

help-circle

  • Exactly! If you know enough foundational principles, you can quickly rule things out and develop ways to narrow down what remains. If you rely too much on diagnostic tools, you’ll miss out when the tools fail to catch something odd.

    I’m a software engineer and we had a problem where our corporate laptop wouldn’t allow us to install our dev tools (needed to debug a windows specific integration and we dev on macos). Instead of waiting a week for IT to come fix it, I realized we just needed it to look like a service was running locally, and we had ssh through the git bash shell, so I set up an SSH tunnel between the windows system and the dev machine and they were able to keep working while waiting for IT to get time to help us. We rarely use SSH at work, but I understand enough about how networks and sockets work so I was able to quickly help them solve the problem.

    You don’t get that type of intuition if you don’t understand how the underlying tech works, and that’s true regardless of your field.


  • I don’t know the area, but real estate is pretty common across the world, so some questions you’d need go ask are:

    • what does demand look like? Are similar places selling, or is it a slow market?
    • is this purely a tourist destination or is it an area with lots of jobs nearby?
    • how are the pictures in the listing? Does it attract showings, or are people skipping over it?
    • if it’s currently a rental, does it rent well or are there a lot of empty periods (i.e. how attractive is the property)?

    It could be that the price is off, marketing is poor, or the market is just slow. Figure that out and you can hopefully fix the problem.




  • Instead of hiring gurus, I think you want a diverse set of curious “regular” people. Maybe one person is really good with working in different number bases (and 0xD6 in decimal is something they know off the top of their head), another is really good w/ databases, etc. None of those would know everything, but they’re all curious and picked up random stuff from their career because they asked a lot of questions.

    Hiring the right guru is hard, having the equivalent of a guru across a diverse time is a lot more tractible, and maybe one will become that guru you need after cross pollinating with the team.


  • I somewhat disagree here, but also somewhat agree.

    In my org, we get a lot of requirements that require very different skillsets. For the first 2-3 years, our task list was mostly CRUD stuff with some domain specific logic, but otherwise a boring web app. In the last 1-2 years, we have:

    • ported a Fortran simulation to Python
    • embedded a C++ simulation in Python
    • created a 3D UX for our previously 2D only app (lots of 3D logic on both FE and BE)
    • implemented a machine learning algorithm to train our simulations

    If I hired only for the work I’d seen in the past, we’d be completely unfit to handle this workload since we’d mostly have people who are really good at building CRUD apps (so DB optimization and quick UX building).

    On the flipside, we cut off huge swaths of work so people don’t need to wear too many hats. We have:

    • dedicated devOPs - handles everything from trst pipelines to prod deployments
    • dedicated QA - manual and automated app-level testing - devs still do unit testing
    • dedicated product teams who handle feature requirements and documentation
    • dedicated UX team to produce designs for FE engineers to implement

    So our devs only need to worry about development, but they also need a broad skillset in that domain, from everything from local tooling to working in different domains. We hire a diverse set of candidates, some with a heavy math background, some with design experience, and some with low level programming experience, because we never know what projects we’ll get or who will suddenly leave the org.


  • I disagree. On paper that sounds good, but I firmly believe good engineers are curious, so they’ll learn a lot more than necessary to do the job.

    For example, when I worked at a company that designed antennas as a software engineer (built something tangentially related), I didn’t need to know anything about electrical engineering, but I was curious so I asked a ton of questions and now I know a fair amount about EE. These days I work in a very different domain and still ask a ton of questions to our domain experts. In my own field, I look into all kinds of random things tangentially related to the tools I use. In each case, that curiosity has come in handy at some point or another.

    In each role, I can tell who’s there to clock in and clock out vs who is genuinely curious and looking to improve, and it’s the latter group who tend to produce the best work and go on to great roles after leaving our company, while the 9-5 warriors who just focus on the requirements tend to do pretty mediocre when it comes to advancement.

    When I hire, I look for that curiosity because you never know what you’ll need to know to fix a prod issue quickly. My esoteric knowledge about SSH helped keep my team productive for a few days when IT was being slow revolving our issue, and likewise we’ve had quick resolution to prod bugs because someone on the team knew something random that ended up being relevant. That’s what I mean when I say I look for a diverse team, I want people with different strengths who all actively seek to improve so we’ll have a good shot at handling whatever comes down the pipe (and we get a lot of random stuff, from urgently needing to embed 3D modeling tools into our reporting app to needing to embed complex C++ simulation code or rewrite Fortran code into our largely CRUD Python app).

    Most of these cases of “focus on one niche” are often symptoms of lacking curiosity and just wanting to tick boxes to quality for a role. I’d much rather someone miss a few important boxes but tick a lot of random ones because they’re curious; they’ll take longer to on-board, but they’ll likely be more useful long term.

    I don’t work in the security space, but I think the same applies to most technical fields. Breadth of knowledge in an individual provides depth of knowledge in a team.




  • A lot of this has to do with recruiters. I’ve been interviewing for a few years at my company such with as many different sets of recruiters, from recruiting firms to our corporate recruiters, to ones we hired ourselves. Our corporate recruiters handed over garbage candidates who we could often tell wouldn’t work out after the first 10 min of the interview, whereas the other two groups of recruiters would do a good job filtering so we’d get than a 50% hit rate on our first round. Unfortunately, we promoted our recruiters once the need for talent dropped (or they moved on to a recruiter firm), and now they’re unwilling to go back to recruiting.

    The quality of your recruiter matters quite a bit, so you’ll want to find someone who is experienced hiring a certain type of person so they know what to look for.


  • The user agent tells the page what the browser is, so the page can tell whether you’re runnit Chrome, Firefox, Safari, etc. The intent is for the page to change behavior depending on the browser since each have different capabilities (web standards change quickly). Unfortunately, pages rarely get updated in a timely fashion when browsers implement web standards so the engine check is frequently inaccurate.

    Changing the user agent means changing what web pages think you’re running. If a page uses an optimized API on Chrome and a slower one on Firefox because Firefox was slower to implement it, then you can get a speedup by saying your Firefox is Chrome. Some pages refuse to run unless it’s a specific browser, so lying can make those pages work.

    I hope that makes sense.