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

help-circle





  • I feel your pain. I once worked at a place that hired an “expert” as a senior dev who asked me on the first day, “what is this import on the first line of this code??? I’ve never seen this before. 🤔” They were unfamiliar with the concept of packages and importing them… Senior dev, hired specifically because they were an expert in a specific language…

    They’d call me upwards of 12 times a day for help with the most basic of tasks with anything technical, to include how to install the basic runtime to be able to run code in that language.

    (I’m speaking quasi cryptically on purpose.)




  • I see what you’re saying. Hmm. I do think that clear will be a nice addition. It does exactly what it says it’ll do, “clear” out the object. In that same vein, I think your suggestions would both be solid alternatives.

    It sounds like clear is already on track to become a part of the language, but maybe you could be the first to put in a suggestion for a zero to accompany it in future releases?









  • 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! 🤷‍♂️)


  • First thing: Ubuntu is the right choice. As far as I’m aware, having run Linux as my main desktop OS for almost a decade and playing with several flavors (…which includes Arch btw 😎), it’s the most polished out of the box desktop experience for someone completely new. It will also likely be the OS with the most Q&A existing on the web for problems you won’t be the first to have encountered.

    Secondly, and maybe this should be first, and it sounds like you’ve already got this part down: you have to want to do this. Linux is just not mainstream for the majority of desktop computer users. If you’re not really wanting to do this, you’ll be frustrated when this isn’t the same experience as Windows. (but it sounds like you’re sick of the Windows experience. That’s what started me into Linux years ago.)

    Lastly, as far as my quick Lemmy comment goes: Embrace the terminal! You can get around for a while as a Linux n00b on Ubuntu without opening that terminal, but at the end of the day, the *nix shell commands are what make working with Linux great.

    The switch will take time. You’ll occasionally need to look up how to do stuff that may have felt simple in Windows… and that will usually be installing and running software that targets Windows only. However, the support for that sort of stuff gets better and better with time. Wine🍷 has come a long way.

    It’s worth the journey IMO. For me, I was a PC gamer and I jumped straight into Linux with 0 experience. I learned a lot, spending a lot of time trying to make my Windows games run on Linux. Friends at LAN parties would joke about how I’d spend half the LAN party trying to get my games to run right.

    The jokes were a good laugh, but my career shifted since then and my Linux experience carried right over into software development. Everything I deploy is on Linux servers or in Docker containers. All those years fooling around and tinkering with Linux as a PC gamer were loading me with experience that people would pay me for one day.

    Good luck! 🐧


  • 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.