Its 4:15 AM and I should be sleeping as I’ve slept little since I came. I’ve battled a dodgy VPN connection for 3 hours to lessen the load and the painful slow RDP connection to my Azure VM (to access all blocked sites).
I’ve spent the day licking my virtual wounds, mostly to my ego and some to the heart, and talked code while eating my way from Shanghai to Hangzhou with Troy Howard (working at Twitter, and also co-organizer for JS Conf which I’m also helping with + speaking). I had gathered all the feedback I got online on my code before I- in a moment of frustration and regret- removed a blog post for the very first time.
On a longer train ride, between the two cities Troy went through the code as I explained the feedback I had gotten, eager to understand and start refactoring the code. Considering his appreciated contribution to Lucene .net he was more than the right person for the task. We talked, laughed, analyzed and reviewed- continuing on discussions we had had throughout the day on code while I was eating peanuts with peppers that numbed my tongue and ice tea (as there is no coffee here).
After the review, in the taxi to the hotel where we meet his lovely family and more Conf organizers, we walked along the road talking work, and work as a developer.
And most of all, I was trying to figure out how I felt about all of this.
Here are some replies as the morning creeps in through my window and the VPN gives me momentary freedom.
Quality of my code
Turns out my code was decent, and my thinking good, reflection around it even better and my attitude to get feedback great. I’ll write a separate post on the code, I just want to show the refactored version as well- so you all can see that I listen and that your advice is not wasted one me. And I bet I need to do a third round of refactoring after that, which I am looking forward to. Some people have Company X a hard time, please don’t. The assignment was fair, and I liked it and had fun doing it, and they have not mistreated me in any way, or given me bad feedback.
Typical for c**** to give up after one failure / you just want attention/ etc.
Right. So I was flooded by trolls and I became for a moment degraded with words such as the C word (not for commit) the P word (not for push) the B word (not for builds) and a looser as the reader thought female developers were in general. I still have 50+ comments on my blog and emails I have not had the stomach to read through. I did not get an emotional reaction to one ‘No’. I’ve had some very difficult months with a lot of self-doubt and insecurity around my financial future and life choices (such as where to live) and the flood of threats, accusations and the right out nasty comments and emails pushed me straight into a wall, in particular one comment from a developer claiming to work at Company X ‘not that we want a b**** like you here’. I’m quite sure he doesn’t work there- the devs seemed genuinely nice. But anyway. Unless you have to deal like with shit like this, please don’t accuse me for being an emotional wreck as I am pretty sure you would question if it is worth it if you had to deal with the flood of of comments next to the usual life with rejections as a developer.
And yes I am spoiled. Spoiled with so many great people, born to a culture and economy that provides me with opportunities, good health and a working body and mind. Even with all that, i can still be hurt by rejection, and comments like the one you wrote. or maybe not, as the comments isn’t true. I don’t seek attention, I seek help, and people care- because they can relate, and I bet you that you would not mind having the same support. You can have it you know, just ask for it and we are there. Its called community and if you want you can be a part of it.
Don’t post while emotional
I understand your concern, but I share my emotions as I am confident that many of us struggle these internal battles when it is something we hold dear. It can be work, it can be some sport we do, it can be relationships. We are people of emotions, and we are not alone, I’m not alone, you are not alone, in being overwhelmed of feelings that are difficult to make sense of and deal with.
Don’t give up
Continuing on the above, sometimes you should give up. Working as a dietitian and personal trainer I saw many sportsmen and women that have to give up on their dream realizing that they could not accept being on third or fourth place and they just wouldn’t be able to make it, be that due to starting too late, injury, time constraints, or loss of passion. I’m halfway around the track, wondering if I really want to keep running if I can’t make a good team. I need to know if I’m a good runner. And at the same time, the trolling I get, I don’t know if it is worth it,- all combined.
You are burned out
I’ve been before and I would recognize it in a heartbeat. It makes me happy to see people recognize that it happens, and that people are reaching out, we need that. I’m however not burned out.
You don’t become an expert over night
I never said that- frankly it would be ridiculous if anybody said ‘so hey I woke up and BAM I was an expert!’ I will be honest and say that have been viewing myself as more of a junior developer going intermediate. If the hard work I’ve put in, 3 years doing the equivalence of 6 years or work doesn’t at least make me a decent programmer, then I am too slow for this industry, or the industry is too slow for me. And frankly we would be in trouble.
All these young developers write to me, so happy to see that you still have a chance of making it even if you start out later. I would hate to say to them that even over half a dozen years you still shouldn’t think you can qualify for entry level programming jobs. So unless that is true, I would rather not use the ‘it takes time’ argument for junior level jobs with that amount of experience. Unless it is true.
Good teams are good teams since they have standards
I’ve had the chance to work with good developers, and sure talk with many on daily basis- many of them are YOU. I having less experience has never been a problem, the perfectness of the code is not what is most important but how the person: 1. Resonates 2.Listens 3.Takes the feedback and 4.What the results are of that interaction, and 5.Initiates the feedback process. Those I’ve asked define standards according to that, not so much the first initial commit of code.
You have to suffer first- for X years- before you can get a good job where you thrive
This is where I struggle. I can’t. I refuse. I will NOT work for a company, product or team I do not believe in. Out of all the companies that are out there, there must be one for me. It’s not the name, or the popularity of the product, the celebritism of the developers, size or technologies that define a good place to work for me. I’ve had so many developers I’ve talked to (latest was last Saturday) where I thought, WOW!- I would just love working with you! The talk just flows, as when I talked to Troy, and we find solutions, there is a good flow and it’s just a good place to be and you don’t want to leave. When those dreams die, so does my passion. And that is exactly the wall I’ve hit, the doubts I’m having. Maybe it’s all in my head.
I’m refactoring the code, and refactoring my thoughts. I need to focus on the conference and make sure that the attendees get the fantastic experience they deserve and that I soak up the fantastic camaraderie here, and of course deliver a kick ass session. With twitter, facebook, gmail, google, YouTube and what not being blocked China has become a good place for reflection. Aside from the moments I steal through the VPN, I’ll try to sort out the maybes. Please keep posting, it truly, truly, means a lot to me- and I bet to other devs in a similar situation.