For a long time I shot to over-achieve.
The irony of being a 21-year-old college dropout trying to enter the world of Silicon Valley was ringing painfully true and as far as anyone was concerned, I knew nothing.
This isn't a story about my startup, or my career path, or the decisions I made to get to where I am; but rather about my blinding passion to make an impact and what I've learned from the journey so far.
In 2011, like many other inspired dropouts, I worked on an idea that I thought would make me the next bajillionaire of Silicon Valley.
I woke up every single day and worked from 8am-8pm on an idea that I had no validation of, no research on, and no formal game plan of how I would carry it out. I had no idea how business funding was done, I had no concept of what made great products, I had no idea what made a great leader, I just had passion; and so I worked.
For 2 years I made a product called TenantMLS, a reverse multiple listing site for landlords and real estate agents used to find tenants for rentals. The concept was a mild hit (at least for me at the time) with around ~500 people using the site.
Even with people using the site though, I just wasn't that motivated anymore. I grew depressed that I hadn't really learned anything. My accomplishments were becoming too stagnant for me to have drive and I didn't know what it meant to be a "professional". I had built-up this huge codebase, had taught myself a few things here and there, but overall I was no better than I was 2-years ago (at least in my mind.)
I just had a business, and no experience to run it.
Maybe it's because I over thought the situation, but I wanted to learn what it meant to be a great person in business. I didn't have a mentor, I didn't have backers and I didn't have your typical Silicon Valley hacker friends. So I saught to change that.
Throwing all my eggs into one basket I put my resume online. I was ready. I wanted a "real" job where I could interact with real working people and have a real reason to progress forward. I made "the leap" into the professional world of technology.
When people talk about making "the leap", it's normally in the other direction. Founders normally make "the leap" to starting their business. For me, it was making the leap into a world where my code and knowledge would be put to the test by businesses that made actual money. My decisions would be impactful and that was exciting to think about.
In 2013, I was hired by a small agency for PHP development. The learning began immediately.
Over the years, I've become wiser and more experienced. It didn't come for free though as I made a lot of mistakes to get to these learnings.
I don't intend for these reflections to be any sort of guide for new developers. If anything, consider this a memoir of what has worked for me and what I'd like to see more in new developers.
"You can't teach ambition."
This phrase is so embedded in my brain because of how true it really is.
Businesses are changing and so are the way we hire programmers. Intrapreneurs, internal business leaders, are on the rise and for good reasons. Businesses are looking for programmers that are customer-focused and self-motivated. They want the developers that spend free-time at hackathons or starting side-projects. Without external practice, you'll only be as good as the problems you face currently; you'll never prepare yourself for the next challenge.
Being eager has allowed me to take big chances and swing for the fences. Less than three-months into my first job, I saw the complications of using SVN and taught a few developers to switch to Git. The results? A company-wide initiative to switch all projects (roughly 30 at the time) to Git where I became the foreman and organizer to making sure it all went off without a hitch.
Stressful? Yes; but what an opportunity! Especially for my first job.
Over-eagerness is dangerous though. It's important to balance passion and humility.
Every programmer under 25 has an ego, it's just something I've noticed. There are some senior developers out there with an ego too, but for the most part they've dropped the charade (if they're any good.)
When I started my first job, I shed my ego immediately. Sure I had built an active startup with limited domain knowledge but as far as I was concerned, that wasn't impressive to anyone. Maybe it was more of my depression kicking in at the time, but I like to believe that "staying humble" was the best action I ever took. I've always been humble, but it took a high-pressure job to really let that trait sink in.
Before I attempted anything new, I always asked someone more knowledgable. I reached out to my superiors with questions, some often extremely embarrassing because I was so new.
"What's that double colon mean in PHP?"
I wasn't trying to impress anyone at the time, I was simply trying to soak up as much as possible in the shortest amount of time possible.
I was open to feedback, although hard at the time. Code reviews were painful at first, my code was who I was at the time.
But you are not your code. It took me a long time to realize that code was the result of time, effort, and limitations. If time was limited, code was subpar; that's just the way it was.
Being humble means being able to take criticism. It also means admitting that you don't know everything and that there is always someone better than you out there. Don't try to be a "rockstar". No one actually is.
Being honest means being truthful with yourself. Are you happy doing what you're doing? Are you really happy doing what you're doing?
Aside from being able to write code, developers need to understand their emotions and most importantly, be able to communicate them openly.
Emotional intelligence is something I've worked on for a long time. I've read psychology textbooks cover-to-cover to better understand how humans detect emotions and how ones understanding of emotions can lead to a more peaceful mind.
Being able to detect your own emotions is a skill that only comes with time. To this day, my "one-on-one" meetings with managers are a challenge as I dig deep to understand why I might feel a certain way.
"Truthfully, I've been a bit stressed more than usual."
Maybe I'm feeling upset because of a project, but is it sadness or frustration? Why might I be frustrated? Could I be taking a more pro-active role in this project to hinder the frustration I feel with it?
Understanding your feelings is crucial to ensuring a healthy work environment. More importantly, understanding your feelings allows you to move forward in the right direction and be comfortable knowing you made the right choice in doing so.
Aside from peace-of-mind, emotional intelligence also has benefited my point-of-view when it comes to my career path.
I wish someone with a crystal ball had told me that leaving my first job was going to be the best move I ever made. After 2-years doing agency work, my passion fell significantly and I felt as though my domain knowledge grew stagnant. I felt the need for change but was too scared to make "the leap" again.
"Did I actually learn anything over 2-years?"
"Who would actually hire me now? I only know frameworks."
"Am I actually a 'senior' engineer? What does that even mean?"
These were the questions constantly rattling my brain.
Of course this goes back to, be eager and just get your resume out there. My second job turned out to be Shutterstock, a pipe-dream at the time that turned into the best opportunity I've ever had.
I think anyone that is passionate and eager about the problems they solve automatically qualifies for being open to new opportunities, but it's worth mentioning.
It's so easy to get comfortable with a way of thinking that anything that challenges your norm becomes a burden; but changes, like taxes, are guaranteed in life and it's important to be accepting of new experiences.
These types of situations happen all the time within businesses because like developers, businesses are constantly learning. New developments or information spark interest in trying something new. If you're being placed on another team, more-likely-than-not it's because of the impact the business believes you'll have on that new team.
A colleague of mine said it best when asked about the recent changes leadership was making in our company,
"If we weren't doing anything different, then I'd be concerned"
Change should be embraced, not feared.
Maybe it's my passion to solve problems, but I wanted to solve all the problems and it's just not technically possible.
Spreading yourself thin is a real concern with developers. I've said it before, eagerness and passion are blinding. You don't realize how much you're trying to accomplish until you've chipped away at a mountain for months only to find that you haven't even made it past sea-level.
Pick a problem you're passionate about solving and solve it. Don't stop until it's solved and don't try to take on more until the task at hand is considered done. The worst mistake I've ever made was taking too much on at once. It's hard to admit your wrong once but it's even harder to admit you can't fulfill any of the promises you made, no matter how much time you spent trying.
Again, no one is a "rockstar" developer.
I don't agree with Elon Musk, I think we absolutely need to take vacation-time. I think it's vital we're able to plan time to walk away from work as it gives us time to reflect.
Reflection has been the most important part of becoming the developer I am today. I don't ever plan on reflecting, but every-so-often I'll catch myself sitting at home thinking about a recent event in my professional career and how I feel about it. The thoughts last no more than a few seconds, maybe a few minutes at best. When they happen though, I make it a point to write something, anything about it down in a notebook. Writing has been my way of remembering so maybe it's not right for everyone, but I can't express how incredibly helpful it's been.
Reflecting has allowed me to move forward at an accelerated rate all while staying humble, remaining eager, and putting all the other reflections I've made to action.
It's been a fun 5-years as a professional so far. In another 5-years, whether I'm working as an engineer or working full-time on my next big idea, I'm excited for the years to come.
If there's any advice I can give, it's this:
"Take a chance on yourself. Remain eager, stay humble, and be impactful."
This is the mantra that's kept me going.
I don't shoot to over-achieve anymore.
Comments, feedback, or questions? Join the discussion on Hacker News.