Confessions of a Noob
I started my journey here at Mercury as an intern, fulfilling a credit requirement towards my computer science degree. The stress and uncertainty associated with an internship is hardly an uncommon sentiment among students and those just starting out in the tech world or any profession for that matter. I would like to offer those that are in the humble beginnings of their computer science careers my positive account of growing from an intern to an application developer. The impact a technologically diverse, tenacious and structured company like Mercury can have on one’s progress is invaluable.
My First Day
I hadn’t the slightest inkling of what to expect of this internship. My limited job experience consisted of bar tending, my perception of a genuine office environment consisted of what I had seen on television. I was vaguely aware that my education had not begun to scratch the surface when it came to the real application of programming and development, thus my nerves were getting the best of me.
My first day at the office, I was greeted with cheerful faces and shown to my desk. I had to make an effort not to reveal the unadulterated excitement having my own desk, computer and official Mercury email address triggered, it felt like the first big step towards being a fully operational grown up. Much to my dismay, the excitement quickly mutated to nervous fear once I had a few days to observe these mystical creatures in their element and began dipping my toes in meetings. Everyone might have well have been speaking Chinese (note: I cannot speak Chinese). The sheer number of acronym’s being nonchalantly thrown about made my head spin. I could barely hold on to the concepts discussed. It was clear that a dauntingly wide variety of intricate moving parts went into the production of these applications, all of which I had no comprehension of. All sorts of anxious, self-deprecating thoughts were peppering my brain, diminishing its capacity for reason. What am I doing here? Who in the world designed the learning plans for programming at my school? These people are on another level, how long will it be before I could possibly have a shot at doing anything they do? Will they discover how little I understand and wonder if I’m in the wrong profession? What the heck is a scrum, is there a Nuget package for it?
My first duty was to shadow a developer while she worked. I sat down, saw Visual Studio open to some C# and was relieved to see something familiar. The feeling didn’t last long, that comforting feeling was ripped away from me within moments of studying the screen. I had never seen a fully operational, packaged and shipped solution at play. Not only that, she’s maneuvering between various utilities and software, casually describing complex operations like builds and pipelines, she’s using frameworks I had never heard of (at this point if I had heard of it, there’s a 100% chance I had zero experience implementing it). Suddenly the knowledge I had of C# and .NET felt painfully dismal.
I watched and feverishly jotted things to Google and told myself I’d master the concepts this weekend before they notice I have absolutely no clue what is going on (bless my little heart). I continued to watch the developers while they worked and attended meetings so I could familiarize myself with the concepts of Scrum. The lists of things to Google filled entire notebooks by the second week. I continued to live in silent fear for a short while.
To get my feet wet, Pluralsight credentials were presented, I would be directed to watch some tutorials on content management systems and a number of other subjects that Mercury has foundation built on. Granted, these calmed my nerves a tad as they defined some of the technologies and subjects I had been hearing about, they also introduced an exponential number of other subjects that must be understood in order to even begin to dabble. I found myself feverishly chasing my tail and running in circles in an attempt to find a place to start.
Real Work Begins
The time had come that I receive some bona fide work to do, it was to be unit tests. I had heard of test driven development, but my school (which shall remain nameless) fell woefully short on this topic, among many others. I was assigned a mentor, Graham Morris, one of the principal application developers here at Mercury. Yet another idea that made me queasy. I’ll inevitably have to code in front of this guy and finally be outed as a fraud and probably publicly humiliated, they will throw things at me and consult with the tech gods to ensure I never get a job anywhere for as long as I live. The sky was undoubtedly about to fall. Graham was to sit at my desk and talk me through the process.
For the first time in two weeks I was able to relax. Graham had no intention of testing me, only teaching. He walked me through the process, step-by-step, and provided several examples to guide me. He left me to my own devices and graciously helped whenever I requested it. Mind you, it was apparent that I didn’t fully comprehend the complex classes or components I had been using to write the tests, nonetheless he joined me in celebrations of even the smallest of accomplishments.
After a couple months of unit tests and following endless rabbit holes through this mountainous labyrinth of code, out of nowhere, dots began to connect. I had accidentally realized why and how a piece of the puzzle worked. Once the epiphanies started rolling in, they would beget more epiphanies. Light-bulbs far and wide. This was an unbelievable feeling and a pivotal moment for my overall perception, despite the realization that I had an increasingly long road ahead of me, the professionals around me no longer evoked fear, but inspiration. Graham was consistently knowledgeable, patient and helpful with me. Everyone was willing to extend a helping hand. I was relieved to be at Mercury with access to such capable experts and really began to enjoy this endeavor.
The End was near or was it…
Once the end of the internship approached, I didn’t want to walk away from the constant flow of learning and apprenticeship, Mercury was more than happy to let me keep coming in and gaining hands on experience, giving me full access to its priceless resources. Watching these remarkable, talented people work respectively and effectively together with innovative technologies was and still is providing me with the ideal environment one needs to gain solid experience and constructive habits.
Eventually, Mercury gave me the honor of taking me on as a full time junior developer. They encourage creativity through exploration and frequently extend the opportunities to discover new technologies and frameworks.
Don Bickel, owner, partner and head of the technical division recently let me take a stab at Android development. (It took me all of my strength not to ask him if he was experiencing some momentary insanity for letting me touch one of his first native apps, luckily my beaming pride overshadowed my doubt). He took a risk and let a junior work on a project comprised of uncharted territories, he provided ample resources and worked together with the team to improvise plans for a new found concept of development. Don maintained unsullied enthusiasm throughout the learning process, he experienced the unknown along with us, fully immersed as we were.
I value Don’s penchant for fresh tech and ever-growing objectives. He avidly researches the constant influx of technologies, paying careful attention to those that break new ground in the tech community. I’ve heard rumors of burn outs and stagnant goals in this profession, I struggle to fathom such a scenario in Mercury’s future.
I never imagined I’d even touch Android after choosing .NET as my path, and now I’m gaining opportunity to experiment with a wealth of platforms. Did I mention I’ve only been doing this full time for 6 months? Thanks to Mercury, 6 months has taught me a number of languages and frameworks- and not passively- I’ve become increasingly comfortable with the AngularJS framework (so much that I’ve developed a fanatical emotional attachment to it), I’ve been heavily exposed to Azure, functional testing with various tools, the use of several IDE’s, the exploration of countless .NET and Microsoft Resources, my skills manipulating data with T-SQL never seize to expand.
Don has put a great deal of efforts into the evolution of our dev-ops procedures. Despite my short time here I have personally witnessed our continuous delivery pipelines ascend into godliness combining source control, testing and rigorous automated code analysis. Something tells me this isn’t a typical commencement to my chosen career path, but it certainly should be.
Final Thoughts
The Mercury team has molded me from a student with about as much real-world technological comprehension as a lamp, into something I’m very proud to be. Admittedly, my mentor still has to hold my hand when the going gets tough, but I’m fortunate to have such a knowledgeable coding virtuoso take the time and energy to give me guidance, in addition to support from each of the talented team members I’ve had the great pleasure to work among.
Most would likely agree this particular profession requires apprenticeship from within the trenches to achieve a well-rounded perspective paired with a bedrock built to carry abundant future prowess, Mercury is an excellent example of a company that nurtures the growth of its employees.
I would describe my internship with this company as the second most significant event in my young life thus far, only bested by becoming a mother. They have immense respect for the team and as a result we all take great pride in our work. I look forward to a long, rewarding career with Mercury as long as they’ll have me.