• 1 Post
  • 20 Comments
Joined 2 years ago
cake
Cake day: June 17th, 2023

help-circle
  • I mostly use VS Code as a simple text editor with some of the CSV plugins. Though with JetBrains coming out with Fleet I’ve started to use that more. It doesn’t have plugin support yet so it’s not getting a lot of use.

    For everything else I use whatever JetBrains IDE fits. For work, it’s mostly IntelliJ, DataGrip, PyCharm, and DataSpell. At home, it’s IntelliJ DataGrip and CLion. I guess I’ve kinda drank the JetBrains KookAid, but to me, it’s worth the subscription to the all products pack. Especially if you are a polyglot since you keep a consistent IDE experience.


  • I think we need to take a step back and add some context. Every company will have their own hiring process, but they are mostly the same. Where I work it goes like this.

    1. A hiring manager sends a job description for an employee they want to hire
    2. The recruiter will check the job description for any problems and make it public
    3. Usually, a few hundred applications come in. Some are these are from bots. Others are from people applying for every open position at the company.
    4. The ATS will score the application and resume by comparing it to the job description. Some will look at your social media like LinkedIn and Facebook. Mostly if you provide those links.
    5. The recruiter will then start trying to find the best candidates to send to the hiring manager. They do this by looking at how the ATS scored the applicant and prescreening calls. They mostly check to make sure you are a human and that the stuff on your application is correct.
    6. The recruiter then sends candidates to the hiring manager. There is no hard policy on the number of interviews the hiring manager has to do, but the goal is under 10.
    7. The hiring manager does an initial interview with the candidate. Depending on the situation this is in person, over video, or a phone call.
    8. If they pass the interview with the hiring manager then 2 additional group interviews are usually setup. One with stake holders and another one with peers. At this point it’s usually down to one person. These are sort of like veto interviews.
    9. Once someone makes it through all this does the recruiter make the offer and start to discuss, background checks, salary, and if needed relocation and immigration sponsorship.

    During this entire process the only people that are going to look at your website are the hiring manager, stake holders, and peers. That is only if they are feeling motived to do additional research on you after having looked at your application and resume. Your application and resume should have already told them that you know the technologies you listed. This means that the user is not rewarded with any additional information. What was the point of me seeing this page? As one of those people interviewing you the only thing this page actually tells me is that you know how to put words on page with a template. That template should be custom and look amazing.

    Jeff Geerling’s website is a good example for content. The design isn’t something I would expect from a front end developer, which he is not.

    https://www.jeffgeerling.com/ https://www.jeffgeerling.com/about

    Nowhere does he have a list of icons of technologies used. You learn that he knows how to use git by the link to his GitHub profile. He doesn’t have a dedicated contact page. The only thing that is really needed is mention an email address on the about page and links to socials. It’s almost like he shows us his skills instead of telling us about them.



  • The second column seems clunky to me. I know what everything in column 1 is for. Column 2 seems redundant or filler. For a keyword search or something like an ATS having those things mentioned is probably helpful. Though, for an ATS you should be optimizing for that separately.

    Right now the About Me page doesn’t tell me anything that I won’t find out on the Resume and My Projects pages. I would get annoyed at having a wasted click for no new information, and it tells me that you’re just putting stuff on a page for filler. Maybe consider combing the About Me and Contact Me pages.

    On the about me, you may want to add a portrait and some biographical information. Nothing too personal. The stuff you would like to share an icebreaker in an interview. It’s a good way to provide a conversation starter, “Hey, I saw on your page that you like kitties and hiking. I like kitties and hiking.” I had my HVAC serviced last week, and the company sent me a text with a photo of the tech and some general biographical info on it. Apparently the guy likes going to the gym and spending time with his family. I don’t know why I needed to know that, but now I do. Humans are social animals, and a lot of humans like that kind of stuff. The portrait doesn’t have to be anything professionally done. Any decent phone has a portrait mode. Just look nice and use a clean background. Don’t use the webcam on your monitor with your unmade bed in the background.

    Also, this page tells me you are more of a back end person. Someone more front end would be a little more creative on the graphical design. This looks like a default template. That’s fine if that’s the message you want to convey. That’s what my stuff looks like. I mostly do data engineering and present those data in an interactive dashboard with some manipulation and filters. In that situation having a boring and generic looking dashboard is desirable. My users prefer that since they are really there for the data and controls, and anything extra would be a distraction. If you want to convey that you are more front end focused you need a less tabular layout and more visual candy.


  • print(f"debug: {what_the_fuck_is_this}") is a valid pattern that seasoned professionals still turn to. If you’re in a code environment that doesn’t support it, then it’s a bad code environment.

    I’ve been known to print things to the console during development, but it’s like eating junk food. It’s better to get in the habit of using a logging framework. Insufficient logging has been in the OWASP Top 10 for a while so you should be logging anyway. Why not logger.debug("{what_the_fuck_is_this}") or get fancy with some different frameworks and logger.log(SUPER_LOW_LVL, "{really_what_the_fuck_is_this}")

    You also get the bonus of not going back and cleaning up all the print statements afterward. All you have to do is set the running log level to INFO or something to turn all that off. There was a reason you needed to see that stuff in the first place. If you ever need to see all that stuff again the change the log level to whatever grain you need it.







  • Dude interviewed some people that did both software and other forms of engineering. Vast majority said software engineering is real engineering.

    These are a few things that stood out to me.

    In software engineering the gap between tradecraft and engineering is a lot smaller than the other engineering fields like electricians and electrical engineers.

    Software engineering can iterate faster because it’s cheap. If civil engineers could iterate like software engineers they would. New modeling tools are allowing this.

    A lot of physical engineering defects are being fixed with software. 737 Max was given as an example where the new engine configuration made the plane unstable and it was fixed in software.

    A lot of things can be learned from the different fields. All the other engineering fields wish they had version control. Software engineering needs more very focused deep dive books like this the other engineering fields have. Ex: https://www.amazon.com/First-Snap-Fit-Handbook-3E-Attachments/dp/1569905959




  • I’m on a team of 5 and we don’t have an on call rotation since developers are not prod ops. But in a sense we are all on call all the time. The NOC has our phone numbers and if we are needed for something urgent we will get a call or a text for things like helping prod ops troubleshoot an issue if they get stuck. My boss has texted me while I was on vacation before. Usually it’s a quick question for something obscure. Once it was an escalation from a senior executive. I don’t have to respond if I’m on vacation, but if I’m getting a call they really need help with something. It also is a good opportunity to lay a guilt trip on your boss that results in a few reward points. Never had to actually log into anything though.

    We also have BCP, business continuity plan, events. I work for a company that provides a lot of critical infrastructure. If the BCP event is really nasty, like a natural disaster, and our team needs 24/7 representation on the bridge, we take turns and will relieve each other. You won’t be expected to help out on a BCP event while on vacation.

    Besides BCP we usually have to be available for certain production changes. Like a few months ago I had a DNS and load balancer change done. I wasn’t doing the work, but the team making the change wanted me available between 3 and 5 am to validate the change.

    If I were paid hourly things would be more formal. I would get overtime(1.5 x hourly rate) + comp time. Since I’m salaried I just sleep in the next day. Our schedules are really flexible. We basically need to be mostly available for meetings for around 4 hours a weekday from late morning to late afternoon, and complete our projects on time. It was like this in the before times. Back then I would go into the office around 11 am for our daily standup. Get lunch with some team mates. Do some afternoon meetings then go home, and do my more focused work at home after dinner time. Most of my team mates did something similar.

    Rest of the compensation is your typical American senior software engineer salary with a 10% to 20% bonus, 7 weeks pto, health insurance, life insurance, short term and long term disability insurance, 401k with 6% match, pension, retirement health insurance, pet health insurance, can use the corporate travel agent for personal travel. I actually like this perk a lot. You still pay for personal travel but it means a lot of discounts and upgrades. We also get to keep our various travel points.



  • The way we do it on my team is debate and discussion. Debate can be tricky in a professional environment. Some people go into thinking they need to dominate their opponent and make it personal. Personally, I would try to avoid hiring people like that in the first place, but sometimes you got to make do. The thing to remember is that you all are on the same side and have the same goal.


  • I heard this on the radio yesterday. Secretly ruthless is a good way to describe Google.

    SHAPIRO: OK. So big picture on this anniversary, 25 years in, if you could describe Google’s legacy in a sentence, what would that be?

    PATEL: Secretly ruthless.

    SHAPIRO: Oh, that’s rough. Wow. Secretly ruthless - that’s even less than a sentence. Give me a little bit more. Why do you say secretly ruthless?

    PATEL: Google has convinced everyone that it is this incredibly sincere and earnest company - that it’s just a bunch of goofballs making cool things. That is true. But I think if we just paid a little more attention to where Google’s money comes from - and it is almost entirely advertising - I think we would be able to see the company and its influence a little bit more clearly. But the truth is, it is an utterly ruthless advertising company that is very, very, very successful at delivering results to its clients.

    SHAPIRO: But Nilay, you didn’t mention how cute the Google doodles are.

    PATEL: Yeah, the - I understand. They’re very cute.

    https://www.npr.org/2023/09/04/1197548359/the-verges-nilay-patel-talks-googles-legacy-and-its-future-on-its-25th-anniversa



  • Electroshock. I that is too “harsh” or “inhumane” then a cheat sheet.

    At the end of the day the command line is a tool that you are using to do something. If I have to google “how to commit file changes to bitbucket using the command line”, I’m probably just going to use whatever GUI tool is available. Or I may do something really silly like manually copy the changes into bitbucket’s web interface. If I had a cheat sheet easily available, then I would just look at that. The rest is just practice and repetition.

    Just throwing this out there. It really helps if everyone on the team is comfortable enough to ask for help. If you are a manager, it’s your job to create this kind of environment. And if you see some newbie data analyst that just learned python and is intimidated by a bunch of software engineers copying a bunch of changes into bitbucket’s web interface. Don’t tell them that they are doing it wrong or they don’t know what they are doing. Just say “hey, there is a much easier way to do that” and then show them. If a tool makes somebody’s job easier then they will use it.


  • See a doctor in sports medicine, physical therapist, or occupational therapist. Basically someone with a medial background specializing in the musculoskeletal system.

    I while back I had an issue with tennis elbow and numbness in my hand. I went to a doctor specializing in orthopedics and sports medicine. First visit was an exam and ultrasound of my elbow. He also asked things like how I slept, and if I was sleeping on my arm. There was some swelling and inflammation, but noting too major. He referred me to a physical therapist.

    I saw the physical therapist for a few weeks. It was mostly teaching me how to do certain stretching exercises and strengthening the muscles in the area. There were some massages with a muscle scraper. That was weird and not pleasant at first, but did help.

    I dislike having to disrupt my computer activities every hour

    Nobody likes being taken out of the zen that is being in a flow state, but humans evolved to walk and move around a lot. Take breaks and go for short walks. If I were to give advice to my younger self, it would be to take up running. Humans and a few of our domesticated species are the only ones that can run for long distances. Some members of the species enjoy running for long distances and do it recreationally. They often say they enter a flow state while running.