Posts Tagged ‘imposter syndrome’

h1

Letting go of old angst

October 21, 2013

Yesterday, I went to this conference, nervous due to my normal social anxiety and uncomfortable with my identity as I sporting a “Press” badge.

The first person I interacted with is the one guy at the whole conference that I’d hoped not to see. Of course.

I’ve never been to this conference but this guy is involved with everything IEEE, at least locally so I was concerned he’d be there. Let me explain why I had hoped to avoid him. Because maybe I’m wrong and I’m finally willing to have someone say “cut the guy some slack” or “let it go”.

My book came out two years ago. Just about that time, I decided to upgrade my membership from IEEE member to IEEE senior member. There was a member upgrade night, to meet senior members who could provide the recommendations necessary for upgrade. Soon after I walked in, I found a guy who said my background and resume were so good, he’d be willing to sponsor me as well as write a recommendation. That meant I got to skip a step. Sweet.

I met another senior member who was willing to write a recommendation.

I wanted a third person because I’m an overachiever (and a big believer in backup plans). Though the organizer (we’ll call him Fred as there will be more about him) said two was enough. Since the process had all gone very quickly and they weren’t busy, Fred offered to look over my application and resume. I handed over my papers.

He made some comments on my resume. They were ok, they didn’t really fit with how I present myself. My resume is targeted toward hiring managers, busy people looking for high level information and probably only willing to drill deeper in a few spots. I was proud it was two pages. While the other recommenders liked my resume as it was, Fred felt strongly that I should submit a longer CV with my application. He had specific suggestions for what I should do.

Happy for the help, I re-added the projects and papers I’d clipped. I made sure my CV showed growth in my careers: college, junior engineer, senior engineer, technical lead, manager, director, business owner. I added descriptions to my juried papers and to my magazine articles. I made sure my book and patents were prominent. It was a lot of bragging. And a lot of pages.

A month passed. While my sponsor came through, the other recommendation writer bailed so I needed to find someone. Since I’d already interacted with Fred, I emailed him. I thanked him for his help, describing the changes I’d made, asked if he’d write the second recommendation for me.

Fred emailed back and suggested more changes. Ooooookaaaay… I’d already put in more work than I’d expected but it seemed silly to stop when another hour of fussing would lead to the (tiny) senior member payoff.

I made the changes he requested. As I did it, though, I wondered if my application was so iffy that I needed to do more highlighting of instances success. But the committee gets a lot of applications and I want to make the choice easy for them (Fred’s reasoning but I bought it), so I made the changes.

I re-sent my packet to Fred. He wanted more changes before he’d write a recommendation.

At this point, my opinion was “to hell with them”. I didn’t know why Fred kept putting up more hurdles, what he found lacking in me.

The bar for senior member status isn’t that high: at least ten years in a related career with definite growth shown over five of those years. These are checkboxes. I suppose there is some subjectivity regarding what growth means but I’d say title changes count. I was actually pretty depressed that my new super-CV couldn’t show that I’d met those requirements. I couldn’t really imagine what more he’d want and I didn’t have time to fuss more.

I emailed back to him and said that he’d sufficiently discouraged me, that if my application was so borderline that three passes were needed, I’d wait until I was less borderline. I did not thank him for his help. I was polite (and brief).

About a month later, I got email from a guy I knew from other things, that I’d done a favor for. When I realized he was senior member, I got a recommendation from him. Easy peasy. He said my application rocked. My membership was upgraded with no questions from the committee.

Fred is the guy here at the conference. I don’t know if he recalls this interaction or not. Whenever I see his name on an IEEE ballot, I wince and fail to vote. Part of me knows that he really was trying to help, in his own way. Part of me is angered that he’d put me through so many hoops that I was willing to give up. I don’t know why I was so special or if he does this for everybody.

It isn’t like IEEE senior membership gets me anything: it isn’t even something anyone cares about on my resume. I was only willing to give up a little of my valuable time getting an upgrade that has no value. I ended up spending far more angst and time than I wanted. Apparently, there is still some angst.

h1

Tools sometimes define the problem

May 23, 2013

When I have a bug of the sort “nothing is working” or “the peripheral is acting like the processor isn’t talking to it”, the digital multimeter (DMM or DVM) is the tool I start with. It sits on my desk, all the time, even after a clutter purged. It is easy to use but a very yes/no, working/not working sort of tool. It is kind of binary, like a hammer. It is either hitting the nail or not.

If something is not working, the next tool is an oscilloscope. Like a microscope for electrons, an oscilloscope will let me see what is going on. However, to get an oscope, I need to call an EE friend and ask if I couldn’t please borrow his scope (he always says yes). Then I head over to his house after he gets home from work (I think his wife is afraid of the garage) and pick up the scope. I usually get it for a week or two, depending on whether he’s got a weekend project planned. (This is Phil of Weekend Engineering so he often has weekend projects planned.)

Where I’m going here… using an oscope requires planning. It requires me to admit my bug can’t be solved by just trying something else, that typing another line of code or doing a recompile isn’t enough. An embarrassing amount of my time is tweaking my code to do one thing just a little different. Admitting I can’t do that until it magically works, well, it takes a little while.

Even when I have 24/7 access to a scope, using it still means figuring out where to attach the probes to the board and configuring the scope. Admitting I have a problem, a real problem and not just a typo, is oddly difficult. I should just be able to figure it out.*

*This is a myth. A complete and total myth.

When I worked at HP, there were plenty of scopes around. But they all weighed 40-60 lbs (and dropping it would have been *bad* because they were hideously expensive (like 1/2 year salary expensive)). So in addition to admitting to myself I needed help, I had to find a big strong man to carry the thing for me. Who would inevitably offer to help me connect it to my board and then take credit for the solution. (Why didn’t we just put the darn thing on wheels? As I look back, I’m a little frustrated by that idiocy.)

There was another tool I used a few times there, one that I think was on wheels: the logic analyzer. It hooked up to dozens of digital signals and would help me figure out what was going on all over the system. But it was a very difficult tool to use (its manual was about four times longer than the oscilloscope manual and it cost a whole year’s salary). So to use the logic analyzer, I had to admit the problem was big enough to stop my normal work for three days, get someone to help me transport it, get another someone to modify my board so the signals were available, set up the analyzer, and then, within a few hours of getting the information, solve my bug.

Once I admitted the scale of the problem warranted a tool of that magnitude, and put in the diligent effort of setting up the tool, the solution was always obvious.

Now logic analyzers are tiny widgets that plug into USB ports and take all of ten minutes to set up. (I did it (almost) live unboxing of the Saleae Logic on my new podcast.)

But I still have to admit I need it. I wonder if I’m going about this wrong. In the past, I’ve always waited for a problem to happen. Then I’ve waited until I determined I couldn’t solve it the easy way (poke, poke, poke). Then I grudgingly admit it won’t fall to trivial debugging. Then I pull out whatever tool will help, grudgingly (still) hook it up and configure it. Then (usually), the problem falls fairly quickly.

First, the grudgingly parts… the fact that I can’t type my way out of a problem doesn’t make me stupid. I know that and yet… this is what programming is to many people.

Once I got my itty-bitty, super cheap new analyzer set up, I left it in place. And now I’ve moved on to other issues, just adding more signals. It is really handy. I can look at things whenever I want… before I start tippy typing randomly and pressing the recompile clean button for no reason.

But some tools take time and they don’t look like forward progress. It is hard to know when to throw in the towel on being a monkey typing randomly (and when to stop hoping Google, Stack Overflow, and caffeine can solve your problem). On the other hand, reading the manual or getting the right tool or taking a class… well, sometimes it is necessary to take a step to the side to get on to the fast track to the solution.

h1

Meeting obstacles with resiliency

August 29, 2012

C and I have been re-watching Star Trek Voyager. In general, it is both better and worse than I remember. The good episodes are really good, the bad ones are comedic. In a recent episode, Seven of Nine (of course, my favorite character) told a formerly-borg teenager that he needed to meet obstacles with resiliency.

It was one of the best episodes. Or maybe I was just in a good place and the episode has some things I needed to hear. Though I’m not sure it was enough.

I coyly mentioned my fledgling product already. Well, I was working on the patent application. One step is to describe prior art (and competitive analysis is necessary for a business plan, something I’ll need to start soon-ish). Mostly that was easy and easy to explain why my gadget is better than any existing attempts at solving the problem of interest.

One solution had a kickstarter recently, where they pre-sold items. I’d looked at the idea as part of my exploratory searching to see if anyone already had my idea (partially so I could just buy the item instead of spending all this time thinking about it and working on it). Their gadget wasn’t that similar, the interface was actually kind of lame. My interface was neat. It was easy to add their inferior product to my patent application.

But somehow, weeks after seeing the page initially, I actually watched their kickstarter video. I was showing someone else how lame the interface was, kind of walking through my patent with a friend. The video did have some lovely enthusiasm. But, then, they had it.

Their product had part of my interface. They weren’t even playing it up because they must have felt about mine as I felt about theirs. Though, it was only part of my interface…

When writing a patent application, the hardest part is the one where I have to explain that the idea is non-obvious. I get to that step and think, “Of course, it was obvious, I thought of it.” I can’t tell you how many patent disclosure forms I’ve stopped at that point, just given up on.

And then to have an idea I’ve been living with and gleefully working on, to see someone else have something so close. It just isn’t helping. I went back to working on the prototype and left the patent application for a little while. But after several days of thinking about it, I just got kind of depressed about even working on the prototype.

So resiliency is the ability to rebound and adapt to adversity. I usually think of it as a property of plants and think of it as something even better than flexibility.

Resiliency is an important property of engineering. Giving up on the product at the first bug makes it impossible to finish anything.

And if I’m suitably resilient, I’ll take this similarity as a validation of my idea. I should build on my gadget until it works like I want. Then I will adapt it to be much better so that any similarity is unnoticeable in the pure awesomeness of my gadget.

I hope I’m that resilient. It is hard to have a full time contract and try to make a product. It requires a lot of passion and enthusiasm. I had it. Until I watched that kickstarter video and the wind was knocked out of my sails. I know I shouldn’t get discouraged so easily. And probably tomorrow, I won’t wake up cranky and so I’ll get a little further and will build excitement again. I hope.

 

h1

Coloring in the lines

June 28, 2012

I don’t color in the lines very well. I often want to. I look at other people and think that what they’ve done is pretty and neat, so much tidier than I could manage.

And by coloring in the lines I mean all the idiomatic meanings… I run my own business. People can hire me, pay for my time, and tell me what to do. But I can always say no. They aren’t the boss of me; I am the boss of me. And, by the way, I don’t want to be the boss of you either.

Let’s take a trivial example… I’ve already mentioned that I use a haphazard ratiometric approach to baking cookies, never able to reproduce a particular baked good unless it it yummy enough to write down the recipe. And then I never consider following the recipe that I wrote down, always tweaking it here and there.

So it was a little odd that last week, having agreed to bring dessert to a potluck, I baked two kinds of cookies, following the recipes as best as I was able. And they both worked out really, really well.

The first was a chocolate chip cookie. Now, it is hard to have a bad chocolate chip cookie. I think the only disastrous ones were when I used old fashion oatmeal that was a little too old fashioned. The oat husks stuck out at odd angles from the top of the cookie and bit back when I tried to eat them. But the cookies from Cooks Illustrated were fantastic.

Loads and loads of butter but they were crunchy and chewy at the same time. Really yummy.

The other cookies were odd: 2 egg whites whipped to stiff peaks, 2 cups brown sugar (chunks broken up) and 2 cups pecans folded gently in then baked at 350F for 20 min. Given the recipe, I expected them to taste like pecan candy. Instead, they were like chunky macaron outer cookies.

In fact, mixed one a plate with the chocolate chip cookies, both brown and chunky, my husband thought the pecan cookies were the chocolate chip cookies and said there were good but only subtly chocolatey. The pecan meringues were very cookie like and the texture was right for the chips. They were odd but really good; nice to remember when you need gluten-free, lactose-free cookies.

Both cookies went over well at the potluck. I felt like an integrated member of society. Having colored in the lines actually turned out well. On the other hand, the potluck was a cross section of software engineers, ballet dancers and motorcycle riders; possibly conforming to regular societal norms was the most nonconformist thing I could have done at that particular party. Sheesh, I didn’t think of that but I also wore a pretty linen skirt…

I tweeted recently about having left the keys to social interaction on the table at home. I’d had an incident at work where I misread the cues, thought it was time to work when it was time to chat and I felt hideously awkward. Hence the tweet. The response was amusing, clearly I am not the only one who feels like everyone else has a key and I’m trying to pick the lock.

Coloring in the lines is my response to that feeling. Except… well, except I can only keep it up for a limited time before I burn out. Yes, now I can make two really good cookies from recipe. So? Anyone can make these cookies. It wasn’t even hard let alone creative. No one but me can wander around my kitchen, picking herbs from the garden, fruit about to go bad, and ingredients on hand and say, “You know what we need? Lavender-blueberry muffins!” (My husband squawked and then later admitted the sweet/spice of lavender went really well with the blueberries.)

I feel like I should start singing “I gotta be meeeeeee!” but I waver. A lot. The confidence is usually an act. I want to be confident in who and what I am, hideous disasters and all (I swear the goal was not mint extract in the strawberry crepes, it was supposed to be vanilla!). But I’m not. I used to think that this feeling would go away when I grew up. But I think that already happened when I wasn’t watching.

Today at work, I’ll be refusing to color in the lines. I had a minor meltdown yesterday after trying too hard to do what they want, even though it is wrong (and stupid and untestable and a poor user experience). I shouldn’t have tried so hard but I want them to like me; every time I ventured outside the lines, the manager hit my knuckles with a ruler (metaphorically, of course). Getting frustrated doesn’t help. And I am the boss of me! So if this is a product I think is going to hell because of poor vision, well, I can take my ball of talent and go elsewhere (eek!). Or they can watch the picture I create, if they simply tell me what they want and let the lines fall naturally.

 

h1

Words are power

May 31, 2012

In school, I studied systems engineering. I went to an odd college where we learned how to put a system together mathematically, modeling just about everything as a resistor-inductor-capacitor circuit or a spring-mass-dashpot. Because it all boiled down to math that looked the same. This holistic view gave me fresh eyes and I love the hammer-like feel to it.

So when I got out of college, I started to look for nails. Oddly, I actual found some. That led to embedded systems where that same math becomes surprisingly important. I was really good at this! My niche education was going to be useful!

I was still a fairly junior engineer so I explained my plan and process for solution to a senior engineer. i described the math parts, showing a little of my work but glossing over areas that needed to be done. At the end of my show and tell, the senior engineer took all the fun parts away from me and told my manager I didn’t know what I was doing.

See, he called a part of the system the “plant” and I never used those words. And when he used them, I didn’t recognize what he meant. I was a couple years away from my systems courses so part of the problem was my forgetfulness but, at my school, the professors I had called that part the “transfer function”, “system”, or the “process”. The literature tends to use these somewhat interchangeably (not precisely interchangeable, a book usually chooses a term and sticks with it).

It took a long time and a lot of math (and working code) to show I did know what I was doing. Even after that, I didn’t like this senior engineer, he felt so petty. Now I kind of understand what happened- I waved my hands and he probably though the project was too large and important to leave in such untried hands.

This is why I get stressed out when people are nervous about not knowing words. I mean, there is jargon and certainly that plays a role in making people feel like outsiders (and idiots). But sometimes, the words don’t seem like jargon, they are just words and everyone else knows what they mean, I’m just too dumb to understand.

Ahem. No. Words have meaning. Learn the words; understand the meaning. Then you have their power.

Words have incredible power but the most amazing thing about the world today is how easy it is to learn what the words mean. So let’s look at the word algorithm. I’m not going to look it up on Wikipedia for you, feel free. I’m not even going to Google it so I could be wrong in some tiny piece of semantics that are to follow. Watch me not care, I understand the meaning of this word: an algorithm is the word a man uses to mean a recipe.

Oh, I should not read the feminist blogs before writing my own, especially since the connotation is not true. On the other hand, an algorithm tends to be technical, usually related to computers or math based things; a recipe is something one follows when cooking dinner But at the heart, they share a lot: a list of requirements, a list of steps in phrased for the skilled reader, an ideal outcome.

Say I wanted to make cookies. My lackadaisical cookie making method requires a ratio of somewhere between 1:2:3 (butter: sugar: flour) and 2:3:4. Add other things like eggs, salt, baking soda or powder (depending mostly on type of sugar but also other flavoring agents), flavoring agents (vanilla, chocolate chips, peanut butter, orange rind, etc.) to taste. Mix then bake for 5-15 minutes depending on cookie size at 300 to 365F (convection) depending on cookie size and desired texture.

That is neither a good algorithm nor a good recipe. It is a useful direction but not at all a destination. (If you ever want a cookie recipe from me, get it as soon as you can because I won’t remember a recipe the next day.) I’d call that description of how to make cookies a pattern. It is a very loose way to go about it, leading to generally good results. As design pattern: cookie it works pretty darn well (for me).

Of course, if you have no idea what you are doing, it will be a disaster, it assumes a lot of knowledge from the user, knowledge that usually comes from experience. (Ahem, even that mix step hides a ton of potential information though if you take it on the surface, just mixing the dough however you feel so moved, the results won’t be bad).

So as a recipe, a cookie recipe might be:

Simple vanilla cookies recipe

1/4c butter (softened)
1/4c white sugar
1/4c brown sugar
1 egg
3 tsp vanilla
3/4c flour
1/2 tsp salt
2 tsp baking powder

Cream butter and sugar. Beat in egg. Add vanilla. Add flour, baking powder and salt. Put on cookie sheet with silpat (or greased cookie sheet), each cookie should be about 1 tablespoon worth of dough, rolled and then flattened. Bake at 325F for 8-10 minutes.

Makes approximately 2 dozen. Suggest serving with small bowl of chocolate buttercream frosting for DIY inverse oreos.

I think there is a enough details there that just about anyone can follow that. I suppose I used the standard “cream butter and sugar” jargon and that might be meaningless to some. And I didn’t say to preheat the oven. I kind figured you’d know how to do that. That you maybe had made cookies at some point in your life. What an odd assumption on my part.

I could create an algorithm to create simple vanilla cookies. Let’s see. Since I write software, this is a lot like writing a program to tell a robot how to make cookies.

Simple vanilla cookies algorithm

 

1. Measure 1/4c butter, heat to soften.
2. Mix in 1/4c brown sugar and 1/4c white sugar until mixture is creamy and has no granular pieces of sugar of remaining.
3. Beat in one egg until fully mixed.
4. Add 3 tsp vanilla, beat until fully mixed.
5. Add 3/4c flour to top of bowl (do not mix in).
6. Add 1/2tsp salt and 2 tsp baking powder to flour.
7. Gently stir dry ingredients together then mix with wet ingredients.
8. Scoop a cookie, about 1 tablespoon at a time.
9. Roll dough into a ball, place on greased cookie sheet leaving about >1 dough ball worth of distance on all sides.
10. Flatten dough ball into a disk about 1/4in high.
11. Repeat 8-10 until all dough is used.
12. Place cookie sheet in preheated convection oven at 235F.
13. Wait 9 minutes, remove.
14. Serve with chocolate buttercream.

Ok, that is a little detailed in spots but you can see how it contains all the same information as in the recipe but in a different format. It isn’t a better format or a worse one, just different. I could have shown it as a flowchart and it would still have been an algorithm. In fact, anything you can represent as a flowchart is probably an algorithm.

Usually, though, algorithms lead to things other than cookies. In pure math, an algorithm might lead to an single answer. Say you want to give someone change… they buy 10 cents of lemonade and hand you a $5 bill. For one algorithm, you (or the cash register) calculates the difference between their purchase and then you given them the difference. It seems so simple, of course that is how anyone would do it. Well, no, the other school of thought for creating change (another algorithm that can be used) is to count up from their 10 cents, handing them pennies until they get to a number divisible by 5 (none), nickels until they to a number divisible by 10 or 25 (none), dimes until they get to a number divisible by 25 (four), quarters until they get to dollars (two), then the number of dollars (four). The whole time counting it out: lemonade was ten cents, twenty, thirty, forty, fifty, seventy five cents, one dollar, two, three, four, five.

Both of these change-creating algorithms are valid. They can both be proven to work. Ok, that is one area where algorithms are different from recipes: proofs. I mean, I can experimentally determine that my cookie algorithm works but doing it. But can I prove it will always make cookies? I don’t know how to start to show that given the conditions described, it will always work.

But in the math and computer world, an algorithm is usually developed so that it works under certain  conditions and can be considered optimal in some way. How it is optimal, that is an interesting question (fastest? least possibility for error? least memory used?). When people say they study algorithms, they not only learn all the different ways to sort through a list of data, they also learn how to determine how one way is better than another and under which circumstances.

Well, as usual, I’ve totally forgotten the point of this post. And I find myself strangely hungry for cookies. I hope there was a point. If not, well, I hope you have cookies too.