• 0 Posts
  • 30 Comments
Joined 1 year ago
cake
Cake day: June 26th, 2023

help-circle


  • Think about this: Why are there so many automobiles? And why are so many new models still being made? I would think you would try to perfect what you have instead of making new ones all the time. I understand you need new automobiles sometimes, like construction equipment trucks or some treaded military tanks. But for average daily driver you would think there would be some kind of universal automobile. I drive a Corolla btw. I like automobiles. But was just wondering.

    I’m not here to mock you, just providing an analogy. You can deliver just about anything in one language that you can with another. However, like the car, you might need a different type if you want more performance. Maybe you want a fast car. High performance cars often need a lot of attention, they need that premium gas, the mechanics demand higher pay! What if you only care about getting from point A to point B, and you’re more concerned with driving a car that’s cheaper to maintain, maybe there are just more car mechanics for that type of car, and the cost to pay them is cheaper.

    A C application that is very well tuned to manage memory and threads in the name of perfect performance will require more time and computer science knowledge to create when compared to a Python script that does the same thing, but in the most basic possible way running on a single CPU, running hundreds of time slower.

    Sometimes you need the performance, and often you don’t. Sometimes you need a treaded tank, sometimes you need a NASCAR, and most days the Corolla does just fine, it’ll even let you miss a few oil changes before things get bad.

    As to why we don’t perfect what we have now instead of creating more: technology changes, easier to work with abstractions come about, some people enjoy the hobby of creating a language, or maybe a niche language comes about with very specific trade offs for a very specific purpose, no one wants to break backwards compatibility by adding new features and syntax to their language - I’m sure there’s tons more reasons to list.



  • Ah yes, the project that nobody asked for, and it has to be worth it because you still have your actual assigned work to hack.

    I remember that feeling of not seeing the light at the end of the tunnel while having invested multiple days into a side quest that my boss never asked for (but would ultimately make me, or the team, more productive). I remember being more junior in my career and fighting that devil on my shoulder as it’s saying, “it’s turned into spaghetti! Just abandon it and get back to your deadlines before you go too far!”














  • Here’s a few from me:

    • How many separate projects are developers working on at any given time? (Because I want to know if they expect developers to be context switching all the time.)

    • Is anyone sitting there with a stop watching checking what time I get into work in the morning? (Because I’m not hourly and don’t expect to be treated as such.)

    • Describe the work-life balance.

    • Are you agile? Not agile? Scrum teams?

    • What might an average day look like for me? Walk me through from when I sign in and log off for the day.

    • How do you perform automated testing here? (if they don’t, I’m concerned)

    • Do you enforce code formatting?

    • How do you deploy your code? (if it’s not a CICD pipeline, I’m concerned)

    • How involved in DevOps are developers? (Will o be expected to work on CICD code? Infrastructure as Code?)

    • What version control system do you use? (Of the answer is nothing, the interview is over. I will not work there. If it’s something other than Git, I’m not excited about it.)

    • Is Docker used here? (Docker makes me very productive, I’m concerned if Docker is a tool I’m not allowed to use.)

    • Are there any other programming languages I’ll be using other than <advertised language for the position here>?

    • Are SOLID principles common practice here? Or rejected as unnecessary? (I love SOLID and think it’s useful much more than not. If SOLID is frowned upon, I probably won’t be happy there.)

    • Can I choose what sort of machine I get to work on? (If I can’t work on MacOS, it could be a deal breaker… I love MacOS for development, sue me! 🤷‍♂️)


  • You need to understand very soon that you can no longer have projects assigned to you. Everything your management asks you to do is actually something that they want you to ensure gets finished- you are not supposed to do it yourself. Delegate, follow up, and guide someone else to do it.

    The moment you take a project on by yourself, you’ve become a huge bottleneck for your entire team’s productivity. Your team needs your guidance and help, and you can’t offer that if you’re designing, coding, and debugging a project on your own.

    98% of coding for you should be paired programming from here on out, where you are not the developer at the keyboard. You are providing suggestions and guidance so that experience can transfer to your junior team members.

    Edit: You are not just a “tech lead,” you are a manager if you have direct reports.


  • My condolences. This is the stuff Robert C. Martin talks about in his book “Clean Architecture”; database vendors locking you into their tech.

    Your boss isn’t just a developer, he’s a *db developer *. From his perspective, the database is a god rather than a means to store information.

    I should add onto my original post that the queries should strive to be as database agnostic as possible. This alleviates a lot of pain when the company decides to move from one DBMS to another.

    Is it safe to assume your stored procedures have lots of DBMS specific functions and syntax sprinkled among the code?