As this being the first post of many to my writing about life as an engineer, I will preface this with a little bit about what my write-ups will be about. I will be writing about the technical and non-technical aspects of my software engineering career. Even if you are not a technical person, I hope that some of my writings will inspire you. Whether you go out into the world and become an aspiring software engineer, or it just makes you feel good for a minute, I am looking to connect to someone with my thoughts and experiences from my profession.
As an attempt to introduce myself, I am Jeffrey Pereira. I am a 29 year old software engineer for a small security startup called Malwarebytes. I have been writing Ruby on Rails applications full-time for the last two years. I am neither a junior level engineer nor am I a senior level engineer, I am just a regular guy that tries to bust his ass and write the best code that I can. At a recent trip to Rails Conf, I was inspired to begin writing about my experiences as a developer, so here is my feeble attempt to amuse. Apart from my introduction, this first post will serve as the story of how I got into software engineering. It begins with the story of my best friend.
Throughout your life there are people that you will end up meeting that will literally change your life for the better. Keep those people as close to you as you possibly can, because if they can do it once, the likelihood is that they are going to do it again and again. In my case, this story starts in my junior year of high school where I met, John, the guy that would end up being my best friend. Our friendship did not turn into much right away, but one day he overheard that I was looking for a job, and told me that McDonald’s was hiring, and that he worked there. Over months that I ended up working with John, we became better friends. At this point, little did I know that this would be the one friend I had that would push me into making the choices that would go on to change my life forever.
Fast forwarding to my early twenties, I was a part time college student taking two classes a semester, working at a Best Buy store getting paid peanuts to walk into a job that I hated. All this time, John had gotten into an IT support role, and was way more put together than me. This started to push me into the mindset where I knew I was doing something wrong with my life, and I was looking at John no longer as a friend, but someone I wanted to aspire to be. Eventually John ended up scoring a job as an Integration Engineer for a small credit bureau, and after about a year went by, he gave me the tap on my shoulder and said it was time. He got my foot in the door to what would be my first job ever in IT. Not only did he get my foot in the door, everything I learned in that position was due to John being my mentor and trainer there. Working there was a whole new experience that I loved, and I knew at that point that working somewhere in IT was definitely for me. Eventually John went on to become a Rails developer at this company, and I stayed as an integration engineer. Several people came through my department and went on to become a developer, and I stayed there in the bowels of IT.
While John was quickly becoming not just a good, but a great developer, I was struggling to put together the pieces yet again. I did not understand why he could go on to become this great Rails developer, and I was stuck in the integration department. Again, I looked to John for advice, and this time he had a lot less to say to me, and it was a bit of tough love. He basically told me that development needed to be something that I wanted, and I needed to try and figure it out myself. This statement pissed me off quite frankly. Why couldn’t John just teach me what he knew? Why couldn’t John just get my foot in the door with development like my entry level job in IT? Well after thinking all of these selfish thoughts, I realized what it all meant. Teaching yourself how to become a programmer is about dedication, inspiration, and suffering. John went through this right of passage, and and because of his trials and tribulation, he went on to become something great. This is not something where you can have your hand held, you must go through it on your own. This is the point where I decided to man up, buy some books, take some online classes, and start building my own application. My original application that I built, is still on Github (https://github.com/jeffpereira/pinteresting), and it sucks. It is ugly, and buggy, and most of the code in there is super basic and terrible even. Many people ask my why don’t I work on it, and why don’t I take it down so people do not see it, and just tell them that it is there to remind me of where I came from.
Fast forward a few more years, and John is now a team lead for an engineering group at a startup that looks to be on the brink of becoming something huge, and I have scored my dream job at Malwarebytes where the atmosphere is great, and I am surrounded by people that motivate me and help me become a better developer every day.
At this point you may ask yourself, this is a charming story, but why is it important? To this I say that we should all try to be someone else’s John. We should all try to inspire someone to be better, or to work harder. There is always someone out there that needs to be pushed into a direction where they can become a better person, and with more Johns in this world, we as a people will only become better. I still talk to John every day, and he still serves as a source of both inspiration, and what I aspire to be, and I still have that project to show me how far I have come.