Given my current work situation, I feel incredibly isolated and know that when I move on to my next venture, the imposter syndrome I worked out at my last gig will come back in spades. As a result, I’ve been thinking about this idea for a while. There are platforms that already do something similar, but they aren’t dedicated to just this idea, and oftentimes have this reputation of being unfriendly towards new comers (cough StackExchange cough). As soon as you put up a post, someone comes in and offers the incredibly deep anidote of “you’re wrong, incapable, and shouldn’t do it this way. Oh, and this is a duplicate. clicks downvote without explanation.
This idea is simple. A network of developers that can post code (even entire projects) and get reviews. Yes, you can do this on github, but that only works if you’re working on open source software, and if others take interest in your project. But what if you’re in my situation? I’m working on completely rewriting a legacy codebase to make it somewhat readable and maintainable, and I’m alone in this venture. In a company of 3,000+ people, I am the only PHP “expert.” So that means code reviews are non-existent, I have no one to pass ideas around with, and I’m constantly hitting my head against a wall when I run into something that I can’t even imagine a day-two junior dev writing.
I’m not sure what I’d call this platform, but if it existed, at this point in my career I’d lean on it heavily. There’s no reason that a developer should be left on an island and trust that their work is the best it can be when they are their own critic. In my experience, your best code comes from solid, objective reviews with constructive feedback. In a situation where you’re siloed in your abilities and have an entire department of an enterprise riding on your shoulders, justifying decisions and doing things in this way is not comfortable nor encouraging. Honestly, it’s stressful.
Given how large our industry is now, there’s no reason an open, nurturing place that anyone can post their code and get it reviewed doesn’t exist. Sure, you can say StackOverflow is there for small questions and you can get code reviews on StackExchange. If you’ve been in this industry for even a month, you know the culture of those platforms. The elitist, abrasive attitude that runs rampant in our industry shines on those platforms – everyone’s a 10x engineer there and everyone else is worthless in their eyes.
Sure, I could build this platform, but I have enough on my plate. In the process of builiding this platform, I stand in the same situation – no one to review my code unless I open source it, then who’s to say it’s going to gain any traction? Anyone that sees it has the reasonable justification that why waste their time on something that exists, albeit splintered across ten different platforms. The reason I say is this: we can only get the engineers we need by providing an environment that enables engineers to thrive without ridicule or animosity. Just because you understand some obscure computer science theory and think it’s common knowledge doesn’t mean everyone else does. Telling someone to RTFM or that their work is poor is not constructive.
I guess I’m just bitter that I personally am on an island. Isolated from other engineers, so my growth is stagnating. Isolated from upward or lateral mobility because I’m too important to the position I’m in. Isolated because my biweekly 1:1s don’t happen consistently. Sure, autonomy is great, but having the opportunity to speak to your direct manager when you’re having a difficult time justifying the work you do to yourself is not a good manager-employee relationship. Maybe my issue is I was so eager to break into an enterprise, I wasn’t prepared for the culture shock of it all and I’ve come to really dislike it. The candid interactions don’t exist, the rapid movements and agility to pivot doesn’t exist. The fifty stakeholders involved in almost every decision creates massive roadblocks at every turn.
Not to mention the performance metrics – those alone could be grounds to fire me. My counterparts in the department knocked out over 500 tickets last year – I think I did 150? Maybe 200? How will upper management look at that? They don’t understand the wide SQLi vulnerabilities I’ve patched nor the fact that I’ve consolidated thousands of lines of duplicate code into an MVC style framework. They don’t know what PSR is nor should they care. My time hits their bottom line and if I’m not as visually productive as my counterparts, why should I be in this seat?
They don’t understand that these things take time, especially when there’s no documentation that explains what the previous engineers were thinking, a decade ago. They don’t understand that a software engineer cannot do support, data entry, systems administration, database administration, and telephony administration on the flip of a switch. Each responsibility takes time to change mindset and each is a very different discipline. I was hired for a job, and the description I was given did not cover everything I now do. This is normal, to an extent. Gas lighting, however, is unacceptable and I’m not one ot be content with getting caught off guard by it.