So I ran into a perplexing "issue" today at work and I'm hoping some of you here have had experience with this. I got a story-time from my coworker about the early days of my company's product that I work on and heard about why I was running into so much code that appeared to be written hastily (cause it was). Turns out during the hardware bring-up phase, they were moving so fast they had to turn on all sorts of low level drivers and get them working in the system within a matter of days, just to keep up with the hardware team. Now keep in mind, these aren't "trivial" peripherals like a UART. Apparently the Ethernet driver had a grand total of a week to go from nothing to something communicating. Now, I'm a completely self-taught embedded systems focused software engineer and got to where I am simply cause I freaking love embedded systems. It's the best. BUT, the path I took involved focusing on quality over quantity, simply because I learned very quickly that if I did not take the time to think about what I was doing, I would screw myself over. My entire motto in life is something to the effect of "If I'm going to do it, I'm going to do it to the best of my abilities." As such, I tend to be one of the more forward thinking engineers on my team despite relative to my very small amount of professional experience (essentially I screwed myself over on my projects waaaay too often in the past years and learned from it). But what I learned today slightly terrifies me and took me aback. I know full well that there is going to come a point in my career where I do not have the time to produce quality code and really think about what I am designing....and yet it STILL has to work. I'm even in the aerospace field where safety is critical! I had not even considered that to be a possibility. Ideally I would like to prepare now so that I can be effective when that time does come...Have any of you been on the other side of this? What was it like? How can I grow now to be better prepared and provide value to my company when those situations come about? I know this is going to be extremely uncomfortable for me, but c'est la vie.

TLDR: I'm personally driven to produce quality code, but heard a horror story today about having to produce tons of safety-critical code in a short time without time for design. Ensue existential crisis. Help! Suggestions for growth?!

Edit: Just so I'm clear, the code base is good. We do extensive testing (for lots of reasons), but it just wasn't up to my "personal standards".

  • 2
    Tell management to go fuck themselves and that they should make a choice between whether they want something that's fast and shit or something in which the proper amount of time was put into, and not shit ¯\_(ツ)_/¯ that's what I'd do at least.. may or may not cause getting fired tho.

    Anyway, always stay true to those values of wanting to create something good over something that's done quick in a hurry. We need more people like this 🤗

    PS: thanks for the TL;DR ♥️
  • 1
    @Condor hahaha I could, but I actually like the management! It felt more like an accident from lack of planning that the situation arose rather than an intentional "screw everything, let's get this product out the door fast". My current plan is to try and be as heavily involved in a design phase as I can be, and I'm even developing tools right now for myself that can help me write new hardware drivers without being on the actual embedded system.
Add Comment