Megan Tiu

Megan Tiu

My tw2 32px My li2 Email

How to Become a Senior Software Engineer in 2 Years or Less

September 24, 2017

  1. If possible, know going in that you really like writing code. This makes the process much smoother.
  2. Soak up every bit of knowledge you can. Go through numerous tutorials, spend countless hours scouring documentation and Stack Overflow for answers and understanding.
  3. Go to a bootcamp. Spend all your time in class or studying programming at home. Take full advantage of all office hours available to you. Make sure it's a big enough life change that, because of the combination of your completely new environment and very high stress levels, you cut off all your hair.
  4. Fight your deep-seated social anxiety and attend Meetups. Constantly. Come to terms with the fact that the little free time you had needs to be spent eating pizza and drinking beer with people that are just as awkward as you are in the name of learning and networking. When it comes to getting a job in tech, knowing people is everything.
  5. Graduate from your bootcamp at the top of your class. This will lead to getting a feature in a local tech blog, which will be accompanied by many interview offers from companies of varying levels of legitimacy, feeding your ego and making you feel confident. This early confidence will be key down the road.
  6. Take an interview with a startup in the same building as your bootcamp. Learn that they are looking to fill a developer role immediately, so you've got to make your decision quickly. They aren't offering much money, but it's still more than you were making in your food service or gig economy jobs and it's a full-time developer role, not an internship. Worry that if you don't take this job, maybe nothing else will come along, especially because seemingly no one wants to hire a new bootcamp grad. Accept their job offer and start in four days.
  7. Work your fucking ass off. Become completely overwhelmed upon diving into your first production codebase. Think you somehow fooled your boss into hiring you because you actually know nothing. Despite this, pour every ounce of energy you have into this job. Work at least 50 hours a week every week, not including all the various after-hours startup ecosystem events that come with working with a cool, small, up-and-coming startup.
  8. Work so much that your relationships suffer. Get into fights with your partner because you rarely see each other anymore. Notice that your dog has taken more of a liking to your partner because you're barely around these days.
  9. Because work just isn't enough, start helping organize one of the Meetups you've been attending for the past few months. Feel satisfied with the value you're able to provide for your community, but worry that you'll never be able to give this organization as much time as you'd like. Start teaching. TA introductory programming courses and teach workshops. Watch beauty and community blossom while sharing knowledge with others. Put on your shoulders all the weight of the needs of marginalized people in your local community that you'd be letting down if you were to stop community organizing. No pressure.
  10. Keep working. Write and ship new features in a week while comparable work at your friends' companies takes months. Wonder when your applications will start crumbling under the weight of your immense technical debt. Know it'll take you too long to catch it because your test suite is nearly nonexistant; this pace doesn't allow you to write tests. You learn a lot very quickly, but find yourself wishing you could have a job where there's enough time to do things the right way.
  11. Have a complete mental breakdown. Let the small world you've built around yourself come completely crashing down. Realize you have to tell your boss that you temporarily will not be able to continue producing software at your typical breakneck speed because you are panicked and depressed out of your mind. Become even more stressed that you have to actually break this news to your boss.
  12. Watch things fall through the cracks because the other developer at the company leaves and you are now the one running multiple products in production all by yourself. Continue on like this for months. Develop an emotional connection to your work and your coworkers that you previously would never have thought possible.
  13. Despite your very best efforts, watch your company die. The funding that you needed isn't coming in, but you just have to work that much harder to impress potential clients and investors. It's a last-ditch effort. You feel it, the founders feel it, but everything the three of you have put your hearts and souls into for the past few months comes to the most depressing end that you can imagine. You learn how to scale services down and remove servers.
  14. While trying to come to terms with the death of the company you loved, start looking for your next gig. Know that after all you've done in the last nine months, you're not quite a junior developer anymore, though you don't quite feel like a mid. Wonder where you'll possibly be able to fit in at another company. Come to terms with the fact that you won't be working with close friends anymore. Worry that no one will want to hire a bootcamp grad with only nine months of professional developer experience, even if you packed a lot of learning into a small amount of time.
  15. Take a friend's advice and tweet out your resume. All your tech friends will retweet it. So will people you've never met before. Become completely overwhelmed at the amount of strangers willing to hire you from Twitter. One company will stand out among the rest. You'll talk with a few companies in your city, but really you'll still want that one that tweeted at you. Cross your fingers and wait for their hiring manager to get back from Europe so you can have your final interview with them. They'll offer you a job you actually want with full benefits (that you've never had before!) and a salary that's more than double what you started with at your last job.
  16. Start your new job. Be completely, overwhelmingly ecstatic that you have very little responsibility after having to do literally everything at your previous job. Think you'll die of happiness from the fact that no one's asking you to write any JavaScript and that you can focus on the parts of development you actually love the most. Know that this job is exactly the one you were looking for. No one expects you to work nights or weekends and your bosses trust your judgement to do things the right way.
  17. Be the least experienced developer at the company. Struggle to find your way when everyone else seems to be off doing their own thing. Worry you did something wrong when you asked someone to pair program with you, only to be met with a quick explanation for how the part of the codebase you're in works instead of any actual collaboration or guidance. Eat lunch by yourself in the park for months after the other developers give you side-eye for unknowingly taking their friend's seat at the lunchroom table.
  18. Say “fuck it.” Keep your head down and work. Learn about design patterns and scaling challenges. Refer your friends to work at the company and see the entire place brighten up. Learn what actual ops looks like, as opposed to the half-assed AWS setup you had at your last job. Feel happier learning operations work than you ever thought possible. Continually go through a cycle of feeling like you know nothing, learning some new things, then feeling like you know a lot, only to be confronted with a slew of things you actually don't know. Spend months in this cycle. Learning, growing, proving yourself wrong. Genuinely love the work you do and the company you work for.
  19. When you get mad, do something about it. Blog. Give a lightning talk. Get so mad that you nervously apply to speak at a conference. Panic when you're accepted and all of a sudden actually have to write a talk. Panic even more when you have to actually get on a stage and present said talk. One of your software heroes will come up to you afterward and tell you “You should give more talks.” Keep coming back to this nicety every time you start to doubt yourself as a speaker.
  20. Feel the life breathe back into your relationships because you're actually in a job that leaves you with enough free time to spend with loved ones. Rediscover your old hobbies. Get reaquainted with who you were before you came to tech.
  21. Write a second conference talk. Start to hate the entire talk preparation/presentation process so much that you think about giving it up all together. Remember “you should give more talks” and press forward because you Have Something to Say. Show your negative feelings who's boss and give this talk at three separate conferences.
  22. When a DevOps position opens up at your company, consider taking it. Worry that if you do, you might not be a Developer anymore. Acknowledge that your learning in your developer role has started to stagnate anyway. Heavily consider your options, only to keep coming back to the idea that you'd like to start a developer apprenticeship at the company someday. Know that if you transition to a DevOps role, you won't ever have the opportunity to start an apprenticeship. Talk it over with your CTO. Say that it's a total longshot, but you'd kick yourself if you didn't at least bring up the seedling of the apprenticeship idea. He loves it.
  23. Do countless hours of research and create a thorough plan for how you'd run the apprenticeship. Seek advice from everyone you meet that has worked with or near apprenticeship-style programs. Even do a cost-benefit analysis to prove it's worth it for the company. Do everything you can to earn the opportunity to teach junior developers as part of your job and provide more opportunities for marginalized people to enter the industry. Question everything you thought you wanted in your career thus far. Get your apprenticeship program approved.
  24. After less than two years of professional programming, including 11 months at the company, be promoted to Senior Software Engineer. Start to feel like your coworkers respect your knowledge and contributions. Constantly worry that when you meet people, they'll think you somehow obtained the title undeservedly because there's no way that someone could have a senior level of experience after less than two years of professional development work. Never stop being baffled at how much you've learned and accomplished in such a short amount of time. Know deep down that you have absolutely earned it. Take some time to be proud of yourself for once.
  25. Try to be happy. Try to maintain balance. Try to find peace.