Before becoming a software engineer, Andy Lei studied bioengineering and biomedical engineering and worked in the healthcare industry. When he decided to make the switch to software engineering, he knew he’d be able to carry some of his education and professional experience over into his new career, but he also knew he had a lot to learn.
In this Q&A, read what that learning process was like for him during the Intermediate Coding Bootcamp, what he’s up to now as a Jr. Backend Engineer at Deliverr, and read his 6 pieces of advice for others considering a coding bootcamp.
What drew you to software engineering? What keeps you interested?
As a kid, I was always interested in building things and understanding how things worked. I think a lot of my interests came from watching science television shows and from my dad being a carpenter. I became interested in software engineering when my friend helped guide me through coding a simple tic-tac-toe game. We spent time designing the game, coding the logic, and debugging. I was captivated by the entire process. We had a functional game after an hour and my mind was blown by the fact that we brought an idea from our minds into reality so quickly.
The things that keep me interested in software engineering are pretty much the same things that I felt during that first pair-programming session: the speed at which an idea can be actualized, the cathartic feeling after debugging problems, the collaboration, and the satisfaction of seeing your final code just work.
What did you get out of your time in the bootcamp?
Prior to Hack Reactor, I only had a nebulous idea of what software engineering work was really like. I believe a benefit of Hack Reactor was exposing me to all of the actual details of software engineering: the technologies used, the problem-solving processes, the other skills needed, like collaboration, etc. The biggest benefit was being exposed to these concepts in a structured way, while also being encouraged from the start to have a sense of autonomy in our learning process.
Yes, it was nice to have a lot of skills taught in class. However, there’s just so much in software engineering that it is impossible to learn everything, and you definitely can’t in the time span of the program. What’s more empowering is being able to figure out what you don’t know, figure out what you need to know, and then have the confidence that you can teach yourself those skills. This sense of autonomy was drilled into us from the beginning of the program, and I believe it is a necessary skill for all software engineers. This is not to say you can’t or shouldn’t ask for help, but you will be surprised at what you can figure out by yourself if given enough effort.
Also, my classmates and the staff were all amazing and super supportive. Even though all of our interactions were online, I still felt a sense of camaraderie with everyone. Actually, I work at the same company as two of my classmates, one of whom gave me a referral.
Now you’re at Deliverr. What’s your role there? What are you working on so far?
My official role is Jr. Backend Engineer, but I do work on the front end as well. Deliverr’s mission is to enable businesses of all sizes to be able to ship their products quickly and efficiently. Thus, there are a lot of shipping logistics involved. I am on the Warehouse Receiving team. Our goals include reducing error rates of receiving shipments, making sure shipments arrive on time, and increasing the visibility of shipment tracking to our clients.
To be honest, I think I am still in the onboarding process (at the time of writing, I am 3 weeks in). There is a lot I still have to learn but my team has been supportive. I get assigned tickets and I break those tickets down into subtasks. These subtasks include understanding the scope of the ticket and figuring out the unknowns I need to know. This includes learning more domain knowledge, diving into the code base, and learning the tech stack. I then plan what code changes I intend to make based on what I learned. I usually meet up with a more senior teammate to get their input as well and to figure out the details of implementing the change. Unlike working on your own project, where you can make changes whenever and however you want, every company will have its own development process.
What do you like about your role? What challenges have you faced so far?
I like that my role allows me to make meaningful contributions and that my work has an impact. Even though I am only handling relatively simple tasks right now, none of it is busy work. The main challenge I have right now is the sheer volume of learning I have to do. This includes all of the domain knowledge, tech stack, codebase, development processes, best coding practices, team dependencies, and the list goes on. However, I don’t view this as a bad thing. My perspective is that I have this awesome opportunity to learn, to grow as an engineer, and I get paid to do it! There is something rewarding and addictive about overcoming obstacles and the growth that comes with it. I am given a task where sometimes I don’t even know where to start. I figure out what I need to figure out. I come up with a plan and execute it. Sometimes it works, but oftentimes I am completely off. I repeat this process, and with each iteration, I learn more and become better at what I do.
What’s your work environment like? Do you work on-site? Do you work remotely?
I work completely remotely but I have the option to go into the office. I find this situation to be ideal, mainly because I save so much time not having to commute. I live in the Bay Area and I will do everything in my power to avoid being stuck in rush hour traffic.
Is there anything from your experience in bio-engineering that you’ve been able to use in your new career in software engineering?
My bio-engineering experience taught me general engineering concepts and skills that I see in software engineering, as well. This includes working in a team environment, progressively iterating on designs, and having methodical problem-solving processes.
Do you have any advice for someone who’s about to start their first day of the bootcamp? How can they get the most out of their experience?
I believe a person’s mindset shapes their reality. Having the right mindset for a bootcamp is critically important. I made a list of advice/ideas that I used to keep me in the right mental space.
1. As often as it has been said about bootcamps, it is true that you get out what you put in. There’s really no way around putting in the hours if you really want to get better at something. Internalizing this idea early on helped me “normalize” the intensity of the bootcamp.
2. Believe in your autonomy and grow it, as well. I think it is really empowering to know you can encounter a new problem, have no idea how to solve it, and still have confidence in your abilities that you will solve it.
3. That being said, ask for help after giving an honest effort. You will save time and learn more from collaborating with others.
4. Help others when you can. Helping others forced me to make sure I understood the concepts I was trying to teach others. It also felt nice to unblock someone’s progress.
5. Don’t compare yourself to others. There will always be someone who finishes an assignment faster than you, builds a “cooler” project than you, or just seems to handle software engineering better than you. I have been humbled enough times to not take it personally at this point. The only comparison you should make is the one looking at where you are now, compared to where you were when you started. Are you closer to reaching your goals? Instead of feeling down about not being the best of the best, take the opportunity to learn from those more experienced and knowledgeable than you. People are generally willing to help those who ask.
6. My last piece of advice is to not forget about self-care. Build healthy and sustainable habits prior to the start of the program. I did not do this and very nearly burnt out toward the end of the program. If I were to do it all over, I would treat precourse as my day one and practice maintaining a proper coding-to-self-care ratio.
Interested in learning how to code and changing your career? Anthony graduated from our Intermediate Coding Bootcamp. In this blog post, read how to distinguish between our Intermediate and Beginner Coding Bootcamps so you can decide which is the best for you.