What is an Engineer?
I've long struggled with exactly 'what' a developer or engineer is. Like how does one know when they are in fact a developer or engineer? Does a doorway suddenly beam into existence and out steps an agent of the Engineers Consortium ready to pronounce you a member? For the longest time I wondered if I was a developer, since this was before the term engineer had really been applied to software development. I had been working with code since I was a tween, mostly teaching myself by learning online, trying to emulate all the cool things I came across in my web adventures. I luckily was also exposed to computer programming at school, where I took every computer class I could.
At night I loved playing around with Flash and ActionScript, then building websites with HTML, CSS and incorporating my Flash components. Customizing my MySpace page with all custom assets I had created in Photoshop. I'd spend hours upon hours following tutorials and playing around with whatever software I could get my hands on. Even though I was creating websites, Flash videos and applications that looked like the ones I saw online, and that I thought looked as good, I never once considered myself a developer. It was just something I was playing with, in my mind. I had so much self-doubt and imposter syndrome, I was like “how in the world could I be a developer?” let alone get a job in that industry, even though I wanted one so badly. I'd even go as far as telling people I didn't think I could do a job in IT for whatever reasons I could come up with.
In my head this created a loop, like how can I get a job being a developer, if I'm not a developer until I become one. That loop held me hostage for years, especially as someone who never felt like college was an option.
In school, my teachers never told us we were developers, or coders or anything like that from what I can remember. We were all doing development in class, but for whatever reason, the teachers would speak of it as a “once we got the job, then we'd be developers” kind of thing. You aren't one while you are in school, or a student. In my head this created a loop, like how can I get a job being a developer, if I'm not a developer until I become one. That loop held me hostage for years, especially as someone who never felt like college was an option. I also believed I'd have to prove myself through a portfolio or show them on the job. Only problem is I could never put together a body of work for a portfolio. Whatever the reasons behind it (more on that another time) I just couldn't, even though I was building websites, experimenting with new technologies and more, all the time. Plenty of it was portfolio worthy work if I had actually considered myself a developer. Every time in my mind I would disqualify all that work as not good enough. Not polished enough. Not done enough.
This continued even when we started calling developers engineers. I'd read about what 'qualifies' as a developer or engineer, and every source has a different take on what it means to be one. From formal qualifications, personality traits, or esoteric characteristics, everyone has an opinion. It all just made me feel even less qualified, and unsure about calling myself one. I knew I could read, write, debug, and design code for lots of situations, but somehow that never seemed to line up in my head to what I was reading. Eventually though I got an opportunity to work in a more startup-y work environment that allowed me to get exposed to the development team, which I worked with directly when I started.
I was surprised by how much of what I saw them do day-in and day-out, was actually what I had been doing years earlier. I felt like maybe I was missing something. Why weren't they following the best practices I had read about online, that I tried to follow myself? Why were there so many processes, many of which I thought essential to design and development, not in place? And how were all these related things allowed to persist in this state for so long? It was evident based on the chaos within the department and the fallout, organization wide, that meant there was a great deal to be addressed and an opportunity to improve. That's when I started working with my team members to figure out what was going on.
Why weren't they following the best practices I had read about online, that I tried to follow myself? Why were there so many processes, many of which I thought essential to design and development, not in place? And how were all these related things allowed to persist in this state for so long?
I started by having one-on-one meetings with everyone, formally and informally, to ask them how they were doing, what they were working on, what was stressing them out, etc. As I started meeting with everyone, I quickly realized that there was a lack of communication, support and trust throughout the whole team. When problems arose, no one was following up on them constructively, and if they did, they were unsupported. Everything boiled down to who's fault it was, as long as it wasn’t theirs. People would talk behind each other's backs about the problems and the person, but usually it wasn't with concern, empathy or compassion. Instead I heard lots of animosity, resentment and bitterness. Understandable considering everything I had heard from everyone and witnessed myself. I felt uniquely qualified to try to improve things for a few reasons.
Firstly, I like to help people with whatever is bothering them. I always try to listen when possible, and I try to make sure that I understand what they're saying. I find that people usually like to open up to me about stuff, or maybe it's that I usually feel comfortable asking about things, which helps me build relationships. Secondly, I find that because of how I listen I usually can see where people are getting their lines of communication crossed. I feel like I have the ability to translate in a way and help people learn a way of speaking with each other better. I also was in a position where I had been able to optimize my position to require a significantly less amount of time, which then I devoted to analyzing the business and helping where I thought I best could.
I started to identify the general themes of all the problems being brought up and complained about and then brought certain people in for group conversations around certain issues. I tried to get buy-in from certain individuals on ways we could solve those problems and build momentum to overcome new obstacles as they came up, which there were many of.
From there, though the challenges were great, we overcame many of them. We identified ways to build new processes, improve old ones and strengthen lines of communication between all our disparate teams. Through this process I started to work directly with our database and codebase by helping to offload what things I could so our remaining development resources could focus on more important items. At some point I was doing as much as our developers, working full-time developing solutions to requests, fixing bugs, and more. Yet, even then, I still couldn't consider myself an engineer. I used to wonder if it was because I didn't have a degree, or if I thought I wasn't experienced enough. Eventually I ended up managing the entire development department, and turning it into an in-house agency of sorts.
We identified ways to build new processes, improve old ones and strengthen lines of communication between all our disparate teams. Through this process I started to work directly with our database and codebase.
I was in charge of supporting several production websites with millions of pageviews a year, deploying updates of our websites to production, responding to critical and urgent issues, and working daily with our database and codebase to increase stability and performance. Again, I still hadn't considered myself a developer. I might have called myself one if someone asked me, but to be honest, every time I felt like an imposter. Though I'm not sure what at that point could have made me believe that I was one. All the evidence was in front of me, but I still could not believe that I was, in fact, an engineer. A real-life developer, imagine that, I couldn't.
It wasn't until I had to look for a job for the first time in like 5+ years that I really had to come to terms with what I am, and what I've done. It means answering, to some degree, whether or not I am qualified as an engineer. Which forces me to reconcile exactly what that is to me... and here is what I've landed on. If you have ever written a line of code, any line, big or small, that runs in whatever language you're working in, you are a developer. Now if you're able to 1) understand what you wrote, and 2) debug it, then you're an even better developer than you might have thought. I know some may disagree with me on this and they can try to convince me otherwise. What I do know though, is that if you do something, even a little bit, you can consider yourself whatever you want. Someone who cooks, even if just mac and cheese, is a chef. We can debate the quality of that chef, sure, and critique their abilities, but that does not mean they are not a chef. The same goes for being an engineer. If you have ever solved a problem by analyzing it, designing a solution, and/or repairing an existing one, you are an engineer.
noun: a person who designs, builds, or maintains engines, machines, or public works.
verb: design and build (a machine or structure).
Similar: designer, planner, builder, architect, producer, fabricator, developer, creator, inventor, originator, deviser, contriver, mastermind
I would even go so far to say: a person who designs, builds, or maintains anything.
So, if like me, you have struggled to wonder what an engineer or developer is, just ask yourself one simple question. Have I done that, even a little? If you say yes, before you disqualify your own answer with the wells, and the buts, and whatever, then honey, YES, you are. Whether it's an engineer, chef, painter, designer, parent, or any other profession or title in our universe. Try to accept that everyone is always learning how to do what they do and re-learning how to do it, all the time. Don't waste anymore time not applying to the jobs, or colleges you want to, just because you don't think you're qualified enough, or you’re doubting yourself. You know yourself best, give yourself all the credit you deserve for all the amazing ways in which you live.