zetasyanthis: (Default)
This is the story of a bug that baffled a room full of engineers (some of whom weren't EEs, so it's more understandable) for more than a week.

The product in question is a very low-power device with a radio, a couple of sensors, nothing really special. It had an MSP430 running the whole show, and had to run off battery power for multiple years in a harsh environment. In the lab, with debug builds, everything worked great, but as soon as we dropped the production code onto the board, things would start jamming up and not operating properly. This was weird, because all of the various devices were on their own isolated power planes, with MOSFETs controlling the power to them to cut off even idle draw when not in use.

It took a while, but I eventually figured out the problem, and it was that we were being too clever for our own good. You see, in a SPI bus, you have four lines:

  1. SCLK: Serial Clock (clock signal from main)
  2. MOSI: Main Out Sub In (data output from main)
  3. MISO: Main In Sub Out (data output from sub)
  4. CS: Chip Select (used to select which chip on the shared bus you want to talk to)

Because some of the chips we were using didn't have safe tri-state outputs on MISO with the power cut, the engineer who designed the board had inserted a cheap directional buffer in-between the MSP430 and the various chips that were to have their power removed. The buffer, however, only covered the first /three/ lines. He didn't consider chip select a problem because it wouldn't affect any other chips, which turned out to be wrong!

What he forgot were the ESD diodes in the sensors/radios, which 'happily' (they weren't quite designed for this) passed power from the /active low/ chip select line up to the isolated power plane. They didn't pass /enough/ power to bring up the (3.3V) chips themselves, but that sneaky directional buffer was operational down to 1.2V and would happily, and /completely/, jam the MISO line for everything else on that bus.

Easy fix: Just software toggle the CS line to low after cutting power.



zetasyanthis: (Default)
If I had written this last night, I might have ranted, might have detailed all the terrible things that my last employer did to me. I might have spoken of panic attacks and anger looking back, and as I write this, I know those things may still come up. Today, though, I want to talk about changing the way we look at things. I want to talk about re-evaluating how we interact with each other, with a specific look at a working environment.

Today, I want to talk about kindness.

Let's start by forming a mental picture of a traditional office setting. It's enough to say that people are busy, at their desks or talking to other coworkers. Meetings buzz with activity as people move in and out, projector screens extending and retracting as the crowds wax and wane. Some are lucky enough to have offices, while others sit in cubicles or open desks, laid out in rows or hexagons by someone with at least as much OCD as the engineers themselves.

In this setting, there are reports to file, emails to respond to, and much work to get done. People run to labs and factory floors, to airports and distant countries, all to keep the machine moving. The one rule is this: the machine must keep moving. If it stops, if there's a kink in the smooth functioning of business, schedules are missed, customers are upset, and the jobs of everyone at the office are in jeopardy. The spice must flow.

But everyone who's worked a day in their life knows that not every day is smooth. There are problems, problems of design or management, of human error or machine malfunction. Solving these problems, and keeping the machine going, is why we have our jobs in the first place, and we can lose them if we solve them to slowly or find ourselves unable to do so at all, even if the problem lies beyond our control.

Some business have fewer bumps, some businesses have more. It depends on the quality of the people, and the processes in place to keep the machine moving, and not all are equal to the task, as much as we wish they were. The key, though, is to keep the machine going *without* burning out your people through frustration or long hours, working them until they can work no more. And that's not just a business calculation, as much as people talk about it in those terms. Employees are real people, with real needs, and real feelings, and those need to be taken into account.

When they're not, people get hurt.

Emotionally, and physically, people can only take so much. And when they start to become overwhelmed, as many of my coworkers currently are, they start to make even more mistakes, creating yet more bumps in the road. If this process is not arrested, if changes are not made, and made *quickly*, this can spiral out of control. Assigning ownership of ongoing problems and hammering them down one step at a time is the only way to move forward, even if it's slow.

I've seen a few different ways of handling these kinds of situations. Some managers dig in with the troops, coming in on weekends when they're required to spruce up morale. Some go further, being flexible schedules and trying to ensure that employees have enough time to rest on off-peak days. Some, though, add to the problems, and that is not okay. If a manager is more intent on assigning blame than taking ownership of the solution to a problem, they're no good. Whether they just sit and do nothing, letting the problem linger, or outright yell and abuse employees under them, it just makes things even worse.

So I have had a thought. What do you do, as a co-worker, when you see another co-worker, under a different manager, stressing out? Right out the gate, let's assume you are busy as well, as is common in a somewhat chaotic environment. You can't take on any of their work, not just because that responsibility isn't yours, and you can't really address overload with their manager, as that's between the two of them. Even if the manager is abusive, you can't necessarily report it without possibly getting your coworker in even more trouble, and if you do it without their knowledge or consent, they may consider it a breach of trust.

I've run into this situation a few times recently, and I'm starting to develop a strategy I recommend. Listen. Be kind. If they're having a bad day, maybe surprise them with something coming back from lunch. Maybe ask that coworker who hasn't gone out in months and pulls his hair out daily *to* lunch. In a million little ways, you can remind them that it's not always as bad as things seem, and that there's more to life than work.

So reach out. You won't believe your eyes. <3
zetasyanthis: (Default)
Another update... I'm still not handling this very well, though I'm learning.

I ended up getting home at about 8:45 yesterday. I kind of saw time passing at work, but was working on something that I felt was important enough to justify staying a bit late. We had had another outage due to a major infrastructure failure on Thursday, with a secondary infrastructure failure ongoing, and I tried to stay and get the replacement / backup system into test over the weekend. Why?  Well, I don't enjoy having to answer questions from the CIO of the company that owns our company, my boss's boss's boss's boss's boss, etc... It's not my fault the bloody thing isn't here and running yet, but I do seem to be one of only four people at the entire company that are capable of handling this for some reason... </rant>

Anyways...

This week has been really really stressful. It's not been a lot of hours, but a hell of a lot of noise, emergencies, and meetings, all of which don't really go well with an introverted personality. I came back home yesterday so overloaded that I had to just sit in my room in the dark for two hours before I could handle any kind of stimulus at all. Moving, talking to Dakota was too much. Hell, snuggling with my kitty was actually too much input to handle. I was shaken and emotionally wiped.

There is, however, good news on the horizon.

1. I've not gotten any evening calls this week. Actual work hours have trended back towards a normal 40/week for the most part.
2. I made a very important realization yesterday. Occasionally, I just kinda have these realizations pop into my head, and this one was about my motivations and why I seem to care more than a lot of other people.

So let's talk about #2. I think it's because of love. I don't know if I have an excess of it, or if others just can't always touch it in the same way, but it's part of everything I do. I'm a healer, whether it be people, animals, or even electronics. I see things that are broken and I can't help but try to make things better. I've gotten burned by it a few times, because I refuse to stop caring in spite of, well, anything. Despite that though, I think I'm working on burning myself out right now, so I'm going to start managing what energy I have a lot more pro-actively. I know we have emergencies at work, but dealing with them is killing me at home, and that is going to stop. It's going to stop *now*. There are too many other things that matter way more. Work is just so I can have a roof. I need to start treating it that way.
zetasyanthis: (Default)
So the conversation about overload with my boss went reasonably well.  Preliminary sanity measures are in place, and we'll be re-evaluating as things progress.  A few interesting developments also came up today, as apparently my boss straight up asked the other guy on 1.0 if he'd work the graveyard shift for the next month.  (He laughed and said no.)  I wasn't asked, but we'll see what happens in the next little while.  Interestingly, that question was popped was after our meeting on rotation schedules and such.

--------------------------------------------------------------------------------------------------------------

Current steps being taken:

1. For now, the two of us on 1.0 are split on rotating 24 hour cycles of support.  I think that'll be alright for the moment since we (in theory) just crushed a major problem today/tomorrow that should take a ton of load off of us.

2. Extra hours accrued are going to be recorded as unofficial comp time, from which we can take vacations later.

3. I'm definitely in on the yearly bonus/raises that apply in March, despite starting a few days after the cutoff date of Jan 1st.

4. Any overloads / if we can't manage this, things will be re-evaluated.

--------------------------------------------------------------------------------------------------------------

Planned additional requests going forward:

1. Meals due to extended work hours are typically comp'd.  Planning to ask this to be made more or less official policy for the two of us going forward.

2. If there ends up being a hell of a lot of overtime / evening work, I plan to straight up ask for a pay bump.  I didn't sign up to be on call and don't really want to be.  If they really want me pulling long shifts, they're going to have to feel the pain from it too.  (I'm expecting to be called in at 3:30 this morning due to something I know is running until then, so I have a strong feeling this may come up.)

--------------------------------------------------------------------------------------------------------------

My only disappointment so far is that my boss (who knows a little about 1.0, but not a lot), didn't put himself on the rotating support shift roster we put together today.  He puts in a lot of hours as is, so I guess I can't complain too much, but I'd have done it if I were him.  IMHO, that's how you lead during a crisis.
zetasyanthis: (Default)
I ranted a bit about this on twitter today, but I think I'll feel better if I just get this crap out of my brain and onto a page(?).

Basically, work is trying to eat me, and my subconscious isn't helping.  There's a lot of good reasons, plenty of explanation, teamwork, and all the rest, but the gist is that I've gotten calls on my work phone while at home four days out of the previous week.  Email chains are also including me and directed to me, though I was rather blunt about the likelihood of my response to any of those when not at work.  I'm effectively being treated as though I'm on-call 24/7, having had one call as late as 11:30 PM the other night, and some other coworkers are (in my view, insanely) actually responding at that hour.

What's the situation at work that's spawning this?  Glad you asked, because there is a good explanation, kind of.

The team I'm on are a group of software engineers who provide support on an internal set of tools used by a manufacturing floor.  At the moment, some vendor fuck-ups mean that the floor is actually running three shifts, requiring 24/7 uptime on the tool infrastructure to support them.  "What's the problem with that?", I hear you say.  "Surely they must be built to handle that since the company has been in business for more than 75 years!"  HA!  Well, they're going to be soon, when the 2.0 codebase rolls out, but 1.0 is a steaming pile of shit!  And there's been a perfect storm on top of that that's conspired to completely fuck us over!

Basically, this means that the two of us who are on 1.0 are kinda hosed.  Manufacturing needs constant handholding and the customer is breathing down our neck and actually showing up at our facility demanding answers.  I had several engineers from them hovering behind me for more than six hours last week while I live debugged issues with their stuff.  In total, I've lost at least three work days to similar activity in the last two weeks.

So here's the thing.  How the hell do I deal with this?  I can feel the burnout already coming, and I didn't sign up to be on-call with this position.  (As far as I knew, I was to work 8:30-5:30 with breaks and was rather confused when I was issued a work phone in the first place.)  I'm salaried, and in theory they can kind of require me to come in, but that's not the basis I want to be on with my brand new employer.  I want to be a valued part of this team.  I know they need the help.  I know I'm the only one who really *can* help.  But I have to have my own personal time where I have a guarantee that I will not be contacted.  I need that to be healthy myself, and to have a healthy relationship with my mate Dakota.  If I'm in 'professional mode' 24/7, I'm not emotionally receptive or calm enough to connect with her, and that is unacceptable.

How do I find a balance in this middle of this crisis?  I had been answering my phone this last week, but when my boss texted me this morning I just turned the damned thing off.  For all I know, 200+ people are sitting around doing nothing and we may lose one of our biggest customers as a result of it.  What the hell do I even do?  This continuous-crisis situation could last until the end of March, and I definitely can't handle it that long.

Profile

zetasyanthis: (Default)
Zeta Syanthis

June 2024

S M T W T F S
      1
2345678
9101112131415
1617 1819202122
23242526272829
30      

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 29th, 2025 03:19 pm
Powered by Dreamwidth Studios