Tatiana is a self-taught programmer who shares the benefits of learning to code in this interview. Tatiana has doubled her salary since becoming a developer and is also able to work remotely - a major benefit in today's world. Keep reading for Tatiana's tips on becoming a developer and how to break into tech.
Hey, so can you introduce yourself?
Hi! Thanks for letting me share my story. I’m currently based in Orange County, California. I’m 25 and I have a degree in Political Science with a minor in African American Studies. I am currently a Software Engineer (L1) at Lever, a company that many of those in tech have actually interacted with through our ATS system. We build a Talent Relationship Management system that aims to nurture leads and make the recruiting experience seamless and collaborative.
I am also on the maintainer team as a Core member for The Odin Project, an online open source web development learning platform. I’ve worn a lot of different hats prior to becoming a SWE. I used to be a social media manager for a startup headed by singer Kehlani, then I was a Jr Project Manager for a small IT firm, then I made my way back to my alma mater and served as an administrative assistant at the school of business. I’ve done quite a bit for being only 25.
Why did you learn to code?
If I’m being honest, I started learning to code way back in the day of Neopets, Gaia Online, and the like because I wanted to make my profile look cool. It never really went anywhere in terms of pursuing it in higher education because I had a lot of misconceptions about the field. I was historically terrible at math despite being an honors student in all other subjects, and it was already repeated to me that you needed to be great at math. (Now I know that’s not exactly true.)
I picked it up again briefly during college just for fun, but it never went anywhere. After college, I worked briefly as a junior project manager for a small family owned IT firm and again tried picking it up to possibly move to a different side of the business that seemed more engaging to me. It was more something to do when I had downtime at work, but I didn’t take it seriously.
I decided in June 2019 that I wanted to actually build things (still for fun, but possibly for freelancing) and this time it actually stuck. A friend of mine posted a photo on Instagram after she graduated and landed a job and her caption was about being a woman of color in tech and it inspired me to go for it! From then on, I decided I wanted to give this a real, honest shot. I didn’t go into it necessarily looking to change careers. I genuinely just wanted to build the cool things I saw on social media, such as a smart mirror, RGB lights, and the like.
How did you learn coding?
I had a major case of analysis paralysis. I wanted to do CS50, but then I wanted to do FreeCodeCamp, but then I wanted to do some highly popular Udemy courses. I came across The Odin Project, and at the time I didn’t read thoroughly and was put off by the Linux installation and Virtual Machine (turns out, as a Mac user, I didn’t need any of that- I always regret not fully reading the instructions!).
So I gave up on it and went for a combination of FCC, Udemy, and random books. Ultimately, trying to collect resources like Pokémon cards was not conducive to growing quickly, and I was spreading myself thin between many different teaching styles and concepts, perpetually going over beginner content and not really getting to late-stage content for most of the materials I had picked up.
It was largely by luck that I made my way back to The Odin Project. I had met someone on Reddit who was struggling heavily with the curriculum and decided to do it alongside them so I could better help them. I actually found that despite having done a “full stack” Udemy course, the Foundations course was a struggle because I was missing a lot of problem solving skills that you don’t get from code-alongs.
I barely knew how to read documentation, and I only knew how to solve problems as presented in the video course. I couldn’t think outside of the box. As I progressed through the curriculum, I realized that the hands-off, real world environment style TOP had was helping me grow much more quickly than any of the resources I had tried in the past.
I spent nearly every day until April 2021 programming in my downtime during work, after work, and on weekends. If I didn’t get the chance to code that day, I would make sure I spent a ton of time helping in TOP’s Discord channel, which was an excellent way to reinforce what I had learned and also learn new things from more experienced users. I definitely attribute a lot of my learning from helping others with their programming questions. I spent hours and hours on Discord, r/learnprogramming, and other popular help channels simply assisting beginners.
Additionally, contributing to open source helped a ton. At TOP, everything is open source and after helping a ton of people in the chat, some of the maintainers invited me to get involved with making small changes to the Discord bot and the curriculum. From there, I was invited to work on a separate open source project with some hand-selected learners from TOP, led by a senior developer and project manager.
I got down the basics of working in a team, working with Git in a team, and collaboration in a programming context. With this came code review which also helped me grow, because as a self taught learner, there weren’t too many opportunities to get genuine feedback.
How has your life changed since learning to code?
I think I finally found a line of work that I can truly say I enjoy. I more than doubled my income, going from $40,000 a year as an administrative assistant to $105,000 a year as a software engineer. I get to work remotely- permanently for the rest of my career if I choose to. This allows me to travel and work from wherever I want. I’ve made a ton of like-minded friends from all over the world who are all joined together by this hobby/trade.
I’ve been able to act in service of others because a lot of my joy comes from helping others, and being a maintainer for a large open source project with a mission in teaching programming suits that source of joy. Learning to code has been more fulfilling than providing me an avenue to a six-figure salary, it has filled the gap of intention and purpose that I lacked in my early 20s. I only wish I had known that I would love it this much sooner!
What does a typical day as a software developer look like for you?
At Lever we have a bit of a unique stack. I was nervous going into it because I was all in on the MERN stack, but ultimately I knew that the skills were transferable and I have a lifetime learning mentality, and know how to best use my resources especially given that I was “self taught”.
My day to day looks like logging on whenever I’m ready to get my day started (usually around 8:00 AM), checking my emails, and checking my calendar for the day. I pick up where I left off with my current ticket, checking to see if there were any comments or feedback from my team if applicable. Most of my time spent on tickets is usually spent reading documentation for tools or repos.
Often we will pair program with one another to help work through any blockers we may have. At this time, I am working strictly on feature work as we build out an entirely new service. I’m asking questions daily, and answering questions daily. It’s a great feeling to be able to help developers more senior than me understand concepts or code and feel like despite the difference in seniority, it’s a mutually beneficial relationship.
Sometimes I have meetings for the different employee resource groups (such as the group for Black “Leveroos”, LGBTQ+ “Leverhues”, Asian Leveroos, etc), or the different working groups (such as the TypeScript working group, the testing working group, etc). These are great ways to connect with my colleagues and improve my skills outside of what I may be immediately working on.
My company also rolled out a new mentorship program, so about once every 2-3 weeks I meet with my mentor, a senior developer on our Backend Systems team. He’s absolutely amazing and has really helped me learn how to approach improving my technical skills now that I’m in the “big leagues”.
After what feels like a short day (time flies when you’re having fun!), I clock out right at 5pm, and there’s no expectation for me to check Slack or do anything after hours. Lever is a bit of a dream. As an organization, it goes above and beyond my expectations. As for the job itself, my open source experience really helped align my vision of what a full time SWE job could be like, so nothing was too shocking for me and aligned with what I had already assumed it would be like.
What was the interview process like for your first developer job?
The process at Lever was relatively “easy” in my eyes (or I was well prepared!) compared to some horror stories from other companies. I had to do a couple pair programming sessions for practical problems (think "real world array and object problems" versus infamous Leetcode brain teaser type questions), a code review session where I emulated reviewing someone else’s code, a “project” interview where I discussed things in my portfolio I had worked on before, and a behavioral/fit interview. Perhaps I felt it was easy because they made the interview process as relaxed and casual as possible, and it always felt like a conversation and collaborative rather than a full on interview.
I got by very easily because I didn’t have any data structures and algorithms style questions, as the company cares a lot more about being practical and avoiding “gotchas” to intentionally trip people up. I felt the process was extremely organic, thoughtful, and realistic to the work being done. That said, my interview process at a lot of other companies was very similar. I never got LeetCode, or HackerRank style questions, even at a major international financial institution. Just practical questions.
Aside from that, non-coding questions I received were more about domain knowledge (“What is a lifecycle method?”, “What is the difference between relational databases and non-relational databases?”, etc).
Interestingly enough, I almost lost the opportunity for my current job because I thought it was a good idea to fiddle with my domain settings after my second interview. I took my entire email server down and the recruiter couldn’t reach me. I followed up relentlessly and he finally got back to me via phone and explained to me that he had been emailing me for a week straight but they kept bouncing, which is when I realized the mix up! I feel very lucky that I was hard-headed and followed up.
Do you have tips for people who want to learn to code without doing a degree?
Collecting resources feels really productive. But pick one solid course and stick to it. You’ll get to where you need to go a lot faster when you minimize splitting your attention. Being a perpetual beginner will slow you down a lot as opposed to moving through the advanced content.
Try to avoid resources that hold your hand too much. I like to say that my job is actually the problem solving itself, not the code I write (though of course that’s a bit part of it). Using courses that don’t hold your hand (often in the form of MOOCs) is extremely beneficial- but be sure to leverage any Slack or Discord communities they may have when you get stuck!
Make yourself very dangerous early on by becoming intimately familiar with debugging and reading documentation. A lot of learners I come across aren’t comfortable with these resources, but if you master them, you can solve a significant amount of your problems independently.
… But if you can’t solve something independently, don’t be afraid to ask for help. And when asking for help, always ask great questions so you can receive the best kind of help! Professional developers ask for help constantly, but they do it effectively and know when to balance debugging and giving it a shot, and asking for help to get unblocked. It’s a delicate balance, and your future team will love you for already knowing how to master that balance.
What are your career goals for the future?
My immediate goals are to become an L2 Software Engineer at my organization and create more content for folks trying to learn to program. Right now, that looks like: writing new curriculum at The Odin Project, making Tiktoks (@techwithtati), and blogging at Dev.to.
In the future, I would love to become a senior developer that folks look up to and can rely on. Since I’m not too keen on management, for now I just want to be the best individual contributor I can be now and in the future, and in the meantime tinker with all the random tech I come across in my day to day life outside of work.
Thanks for the interview!