3 ms·
There was more to it. I was not just writing pages, I was writing a micro-framework to support my pages. I was doing manual complex multi-threading, run-time co
by x64_lol 10y ago
There was more to it. I was not just writing pages, I was writing a micro-framework to support my pages. I was doing manual complex multi-threading, run-time code generation and compilation, custom memory caching, run-time server-side generation of graphics (before HTML5 canvas or solid SVG support) etc. Two days after my hire, I was assigned solo to a very difficult project and the product department recognized me as a way to get everything they wanted done without push-back (and without going through the normal chain of command). I never told them no, so they gave me everything someone else wouldn’t do (including projects that had been previously cancelled due to technical complexity concerns, breaking the design refinement process that is meant to take place). Since they kept giving me challenging projects, I took every project as a personal challenge, and I finished them in record time. The team was very busy, and there was very little time for code-review. My micro-framework went unnoticed for quite some time. My pages looked simple, as they were mainly just making calls to the micro-framework. I thought I found my place; I was getting individually requested by the product department for projects (which was unusual), and I was giving them everything they were asking for. I thought I was taking pressure off of the rest of the team. I thought I was being a hero. What I was actually doing was creating an area of the code-base that effectively a black hole for everyone else and giving the product department unrealistic expectations. There is a natural trade-off between performance optimization and readability; and I chose performance optimization every time. My inspiration (decompiled framework code) had no comments, so I had no comments. It was performance optimized, so my code was performance optimized. I wanted to be my heroes; and there were plenty of heroes to become. The maintenance developers did not share my enthusiasm for study, hard-core mathematics and lateral thinking. They referred to my work as “the space shuttle”; as in “I don’t want to touch that, I might break the space shuttle”.
I was never literally told that I was garbage, but I was made to feel that way. It was necessary, I was getting mixed messages; some of the managers loved me, product loved me, the designers loved me, the other developers didn’t know what to think of my work. Technically everything was written concisely, extensible (by someone who understood it), performed very well, had few bugs (if any), and was pixel perfect when compared to the comps. I was giving people what they wanted, quickly and relatively bug free. I lacked discipline, and my architect was ex-military. He effectively stripped me of my ego, and I am very glad he did. I imagine the apology was a plan to make sure management and other developers didn’t encourage me (and it worked).
The year of discipline was the best thing that could have happened to me. It completely changed the way I thought about software development. It wasn’t just me anymore, it was everyone. It made me a much more effective employee, and taught me to spread complexity out. I am still fast, the code is still performant, but I stopped building black holes and do more of my code and process optimization in architecture, design, and process and less in fringe techniques. I still use fringe techniques when there is no “normal” way to accomplish what needs doing (and we can’t change what needs doing), but they come with full explanations now, are built to be discoverable, and I spend significant time training a second person in how to do the same in case I am hit by a bus.
Before, if management gave me the requirement that they should be able to flush a Doberman down the toilet, I would build them the world’s most powerful (and frightening) toilet. After, I knew to argue that we should be burying dead Dobermans outside, and I knew how to get management to agree.
TLDR: I am considered a 10x developer by my co-workers, but early on I was one of the scary people this post is warning about.