Nicole Caldwell

Logo

I am a Senior Software Engineer at Made Renovation.

Read my story

View My GitHub Profile

The Dating Approach to Software Design

I recently had a deep heart-to-heart with my manager.

He came to the conclusion that something happened in my career or life in the past year that made me lose my self esteem.

Whatever it was on my last team, I needed to let it all go now.

He worked with me briefly about four years ago and he didn’t see this problem then, even if it was brief that we worked together.

The truth is, and I couldn’t bring myself to say it without crying so I held it in, is that I have Complex-PTSD since childhood.

Listing everything that caused me to lose my self esteem throughout my life would take a very long time!

I could just say “I hurt” as therapy leads me to say (and it’s very soothing actually), but this would make ME very uncomfortable if it were reversed, so I don’t want to do that to him.

Then, he says “This weekend, screw all of that past stuff from your last team and on Monday, show me the real Nicole.”

Now I spent a couple of hours thinking about who this REAL NICOLE is that I’m bringing to work on Monday…

Instead of thinking of all the reasons I’m not confident in my life, I started thinking about all the times I have been MOST confident.

I looked at pictures from my wedding. I felt like a queen. I had scored my dream man, and nobody could have him but me from here on out. Then, it hit me!

I always felt good at dating! I went on more OKCupid dates than anyone I knew (and still know I think, not counting tinder!).

I read somewhere that you need to date about 12 people before you find your ideal mate. It turned out to be true for me.

While I was in high school/college, if my mom were actively dating, we looked at eharmony and match.com together and discussed the matches.

I’ve always wanted to be a matchmaker, or a professional make-over-er for nerds. I know, very niche market.

Side note: I was a cofounder for a couple of weeks on a new kind of dating website.

I quit just before working at Amazon and that ended up being the best choice. Being 33% owner but doing 100% of the work to build it is not a good agreement!

I always had very strong opinions when I dumped someone or was dumped, about what was good and bad about the person.

“How will I capture my confident attitude towards dating, and bring it to work?” I thought.

When meeting someone, my opinions would be confident no matter what the situation:

“I’m 100 times more attractive than they are, it’s just not going to work at parties for my need to show them off and their need to feel like they’re being shown off.”

“They are 100 times more attractive than I am, so it’s just not going to work for my need to be shown off and their need to show me off.”

Here’s an example need I had: My life partner needs to make as much, or more money than I do.

Their breaking statement: “You’re so smart and going to be so successful. I could be your trophy husband and stay home.”

This would be a winning thing to say for the right need. They didn’t ask for the requirements first, clearly!

Of course, in dating you can’t ask for requirements. You just find out as you go.

The “problem space” is the person looking for a soul mate and their needs in a life partner.

Sometimes these needs are ambiguous and you really find them out as you go.

When you’re younger, the problems might be unambiguous, like “Takes me dancing and has a nice car”

Okay, I find someone who likes to dance, has a nice car, and wants a partner that will appreciate their nice car and loves to dance.

Later, this becomes “Is a nice person”.

This is such a complex problem. People are complex, go figure.

If I’m match making, I probably want to find out a lot of information about this person’s definition of nice and what needs does nice serve for them. Why are they asking for a nice person? Have they been hurt before by not-nice people?

Does the partner need to literally wash their feet on command? Or is it nice to others?

Is it works-for-a-nonprofit nice? What are the true needs that are being served with a “nice person”?

Are they ok with the tradeoffs that come with this example “nice” person I’ve found? Maybe they’re nice but don’t take care of themselves.

Do they need to be nice to your enemies? Can they slip up some times? What’s the allowed fault percentage of their niceness?

Do they need to encourage you to be nice, too? Like, they need to be so nice that it rubs off on you?

Same thing with software as your career progresses.

When you’re starting out, a PM comes to you and says “I have worked with UX designers already and I need you to put this UI they designed on this page of the website, that says a signature is required, when the customer sees an item over a maximum price threshold that I will tell you. The backend is already done and requiring signatures on delivery”

The software “match” I will build (and built) is easy and I would be 100% confident given this problem again, what my feature’s code would look like that I would build to solve it.

Later, someone asked me about this when they were solving a more ambiguous problem with my feature.

“Lots of packages are getting stolen off of front porches. Design a solution to make packages that are going to get stolen, require a signature.”

This is way more ambiguous, but I can be just as confident in a solution, or “match”, because of my skills I’ve built up matchmaking the easy ones, and seeing some bad matches along the way.

Firstly we need to define packages that would get stolen. This requires looking into the data. Why are they getting stolen? What’s the model for how many times the package gets stolen for when we start to signature require it? Is it particular addresses? Are we getting actual crime statistics?

When do we want to compute this? Is it pre-computed when we put a product on the website, or when a customer adds an address? How often are we expecting a package will get stolen?

Are we ok with the tradeoffs of my chosen mate that some packages get a signature required, but they weren’t going to get stolen?

Have I misidentified too many packages that were NOT stolen? Are the customers not home to sign, and then the packages are missing their delivery dates?

How hard will it be to maintain this database of addresses of porches that constantly get stolen from, for example?

What about the costs of storing and computing all of this new information about probabilities of packages stolen? How often are writes and reads happening of this data?

What about packages shipped globally?

You’ll find lots of designs for this and they will all have tradeoffs.

Just like you won’t know enough technologies throughout your career unelss you keep your knowledge up-to-date, as a match-maker I would have to keep my bank of single people up-to-date.

If you’re a match maker and you have a lot of nice people but not the PERFECT match, you might not know enough people who are single.

Are you ever going to know all the billions of single people in the world? No! Of course not!

That’s why you are going to be confident anyways! You are good at this and you’ve only gotten better at this with time!

This is the Nicole I will bring into the office. She knows her single code and how to build that dream solution with any problem, no matter how vague and hard it seems at first.

I’m going to make some weird matches. They are just dates though. I’m not force-marrying them.

One of them might get married and live long happy lives together and that would be great. Most people just need a kick in the right direction.

That’s why I got into this industry. That’s why I’m here. Now go bring THE NICOLE to work on Monday.

-Nicole

back