As a developer, Ale was able to earn 15x more than graduates in her city. She shares some self-taught developer tips on learning to code. We covered her advice on learning programming, getting hired and what it's like working as a Software Engineer.
Hey, so can you introduce yourself?
Hey, Pete! My name is Ale (pronounced Ah-Lay). I’m originally from Mexico (born and raised) and now based in New York. I went to college for Industrial and Systems Engineering, but on the side I’ve learned and have worked professionally as a software engineer for over 2 years. I currently work for a pretty cool startup called Hashnode, a blogging platform and community created for developers and people in tech.
Why did you learn to code?
I’ve always been drawn to technology and creation in various forms. I had my first interactions with computers when I was about 9 or 10, visiting my mom’s office, and I became addicted to discovering what I could do with them.
Even without having access to the internet, I would spend hours configuring them, playing, and creating short animations with Microsoft Paint and Movie Maker. When I got my first computer a couple years after that, my love for them became even more overwhelming.
When I was about 15, I got lucky that at my high school they offered Flash and Java courses. I got to play around with computers and explored creating amazing projects for fun, dedicating hours to them outside school. I didn’t understand what software development was back then, or that I could pursue a career in it– I just knew that it was something I thoroughly enjoyed and felt good at.
I went to college for a different major and had the chance of running into professors who’d gone to school for Computer Science. Even if whatever they discussed with us was very broad, I caught a glimpse of programming as a career, something that I had never been aware of.
I immediately started researching on my own and found myself back to those days in which I’d spend hours and hours playing around with ActionScript and Java. I knew then that it was what I wanted to do.
I had two years left to graduate, and it was economically impossible for me to switch majors at that point. So I continued with Industrial Engineering but my afternoons would be spent getting better at code. I set a goal to start applying to exclusively software engineering jobs as soon as I graduated, and that’s what I did.
How did you learn coding?
I followed a very unstructured path to learn how to code. Even now, I still feel like there’s so many gaps I’ve left along the way. I started with my traditional learning in high school with Java courses where I learned the fundamentals and to build small, simple apps. When I went back to it a few years later, I jumped straight into more complicated applications by following documentation and the MOOC Java course to brush on the basics.
At college, being an engineering major, I eventually ran into minor coding in certain classes to perform data analysis and automation, where I got to work a lot with Python and R. I worked part time and full time jobs all throughout college, and I would often take it upon myself to apply coding in them (even if it wasn’t required to) to automate, estimate, and improve some processes.
A few months before I started applying to software engineering jobs, I discovered that interviews were usually DSA focused. So only a few months prior did I start going through learning them. I was good at building apps and using frameworks for real life applications, but I had no idea about Computer Science fundamentals.
When I landed my first job, I was the only one who didn’t have a CS major and that made me realize I was still behind on many concepts. I knew how to do stuff, but would often find it hard to explain myself or find the appropriate terms, which pushed me to learn using books, lots of Udemy courses, and following popular roadmaps.
If I could go back in time, I’d definitely follow a much more structured way!
How has your life changed since learning to code?
I come from a small city in Mexico where salaries and cost of living are very low, so what I visualized growing up was working for years and years until I’d eventually be able to accomplish my goals. Tech completely changed my life for the better.
I quickly went from making 400-500 USD a month working full time jobs during college (teaching, working in marketing, consulting, etc.), to making over 15 times the average of recent graduates in my state at 23 (and only going up from that).
I grew up in a low income household, and tech has allowed me to make up for all the things that we lacked growing up. I never thought I’d reach this point in my life so soon, in which money is no longer a reason to be stressed, sad, or embarrassed about. Even better, it lets me treat and support the people I love.
Money is probably the best perk, but with tech also comes an unbeatable work-life balance. Being able to work async, remotely, and at my own pace has definitely made my life much better and lets me grow both professionally and personally.
What does a typical day as a software developer look like for you?
I’ve only known remote working since I started my professional experience in tech, which has led to being in different time zones as the rest of my team. So it’s always been having to occasionally wake up extremely early for some meetings, then working entirely separately for the rest of the day (which can seem lonely at times, but I think it’s nice).
I don’t have meetings every day, and working async I can start whenever I want to and tackle my tasks at my own pace. I had never experienced something similar in any of my many jobs before, and it’s very refreshing to have this freedom to define my own schedule. I’m still more of a morning person, so I like to start and finish work early, and that sometimes allows me to have people from the rest of the team available in case I need to discuss something or any help.
We usually only have one mandatory meeting a week, in which we discuss our weekly progress and brainstorm our next steps. Everything else is usually discussed via documentation/texts or short calls.
What was the interview process like for your first developer job?
My first interview ever was very typical. It started with an HR screening, then some aptitude online tests, a technical Leetcode-style online assessment, and then the usual Hiring Manager and whiteboard interview. I had never done one of these, and was fairly new to DSA, but my interviewers were extremely nice throughout the entire process. I solved the two problems (complicating myself a lot at the beginning), but talking through it and asking for their inputs really helped out. It was my first software engineering interview ever and I got the job.
Aside from DSA, I was mainly asked about Agile principles, frameworks I’d used with Java, if I was familiar with CI/CD, unit testing, and other general behavioral questions.
Did you ever have imposter syndrome?
I do, all the time. I think it’s one of those things that sadly never leave you, but you learn to accept. It’s extremely important to be aware that there’s always more to learn and areas of improvement, or even straight up things in which you’re just bad at. It’s important to know your strengths and weaknesses and stay grounded.
Imposter syndrome will always creep in, but being self-aware makes it more bearable (and also knowing that nearly everyone else out there has felt the same way).
What are your career goals for the future?
I’ve always loved exploring different areas of tech and tinkering with new things, so pinpointing what I’d want to focus on in the long run has not been easy. People that follow me on Twitter have seen my journey going from back-end to front-end and marketing/dev advocacy.
I love the intersection between coding and people, so it’s hard to define whether I want to go the tech lead or manager route. In the meantime, I’m just enjoying trying as many things as possible, and being at a startup allows me to do just that!