A LEAP apprentice's experience: Part 2 - Project Time!
In this article series, I will be exploring my time in the Microsoft LEAP Apprenticeship program. This article will cover the project period that I had during the program which involved apprentices to be actively working with a Microsoft team and live product.
The Microsoft LEAP apprenticeship program consists of a 3-week classroom training and 13-week project period program that totals to a 16-week apprenticeship program. From what I heard, LEAP will be expanding the 3-week classroom training to 4 weeks which means the project will now be 12-week project period.
Now for the disclaimers: Every apprentice's experience is different and this article is based off my personal experience being a part of the cohort 25 so take note that my opinions are my own and what you hear here is just 1 person's opinion. As the program continues to evolve, the content written here may become irrelevant. I highly encourage you to reach out to other apprentices/graduates to hear about their experience and keep yourself up to date by looking up the program's official website: https://www.microsoft.com/en-us/leap/
The week before
In the last week of the 3-week classroom period, the cohort finally found out what Microsoft product, team, and project each of us will be placed on. We were also given a document which describes who our Microsoft team members were and project details such as the tech stack and project timeline.?
Each apprentice placed would also be assigned a mentor and manager who he/she/they will directly report to. In general, the mentor would assist with any specific technical questions while the manager is your point of contact for pretty much anything else. For example, questions relating to the codebase, best code practices, anywhere the apprentice would get stuck on would be questions for my mentor. My mentor became my first point of contact if I became stuck or when I was unable to solve something in my code. On the other hand, my manager was there to make sure I had every resource to be successful. My manager would regularly check in with me to see how the project was progressing. My manager also kept me honest in terms of timeline and level of difficulty of the project.?
Near the end of the week, the apprentices had an introductory call with their managers and mentors respectively to get to know each other. At this point, excitement filled the air for everyone. It was bittersweet that the classroom portion was ending but a new journey awaits us.
Starting the project
The 12 weeks for the project were a whirlwind. I hit the ground running and I spent a good part of the first week learning the codebase, getting to know everyone, filling in any knowledge gaps I had on the tech stack. My project was focused on the front-end side and, in my case, I was rusty in TypeScript. On my second week of my project, I submitted my first PR with minor changes. It was absolutely nerve-wracking. I wanted it to be perfect with 0 comments but it didn't go that way. Thinking back, I'm glad I received comments. It allowed me to have the opportunity to learn from my code reviewers and learn from my mistakes.?
As a side note, I'm grateful to my mentor who encouraged me to submit small PRs at first which helped me get used to PRs and the process behind it - adding accurate descriptions(pictures/videos, if relevant), testing my code before adding code reviewers, and even thinking of the answers to questions a code reviewer may have.?
As the weeks went by and more PRs were opened, the project grew in complexity. There were roadblocks that I had to reach out to people outside of my team to get help on. I had to come up with better solutions to the problems I was facing because one solution may work in some areas but it wouldn't work in others. I refactored my code for simplicity and organization. It allowed my code to have fewer dependencies and more readability.??
领英推荐
Eventually, I had to demonstrate my project to others higher up in the 'food' chain that challenged my presentation skills. An area I've realized is my weak point is technical talk. Being able to explain technical areas concisely and accurately is a skill that I didn't realize was a weak point before the apprenticeship and it's something I will continue to work on.
At the end of the 12 weeks, I didn't manage to finish the project 100% but with the added level of tasks involved, I manage to complete a huge chunk of it. I was satisfied with how much I accomplished.?
Advice to future apprentices
My advice to future apprentices is to understand your Microsoft team and manage your relationships effectively. Unlike me, an apprentice might land in a team where your manager becomes more like your mentor where you ask technical questions to or you might find a different team member is able to answer technical questions better. Regardless of what team you land on, a big part of working in a massive corporation like Microsoft is managing relationships and expectations. I sincerely believe you do this by being approachable, a team player, and be willing to help.?
When I first started with my team, I had 1-on-1s with all my team members (SWEs, PMs, designers) - basically anyone and everyone I would be working with. I asked them a simple questions on how I should work with them - "What's your specialty? What kind of questions should I come to you for? How can I work and/or communicate best with you?". These introductory 1-on-1s don't even have to be long, 15-30 minutes tops, but it gives you an idea of how to work with this individual. As you gradually work on your project and with your team members, you'll understand the team dynamic more.?
Don't be afraid to ask questions but do your homework first. If you're stuck on a problem, don't wait 2 days to ask your questions. Essentially, you're losing out on valuable time that can be spent on your project. That being said, do your research first. Have you tried to solve or understand it on your own? Have you looked up all you can on your own resources (Stack Overflow, Google, documentation etc.)? My general rule of thumb is if I'm stuck on something for 3+ hours, I take a break and reassess where I am which is usually when I ask for help.
A big part of being a Software Engineer and something I've realized Microsoft does well is their culture of Learn-It-All. It's not a culture where you should know it all where you have the answers to everything but rather a continuous process of learning. You do this by being curious and asking the right questions to the right people. Knowing who to ask your questions is yet another skill that you gather on. If you didn't find the right person to talk initially, ask the person if they know someone who would be best suited to answer your question.
Conclusion
For me, it tested me in a healthy way personally and technically. I won't lie - it was extremely challenging but I believe healthy challenges is what we should strive to encounter and accomplish.??
My team was absolutely amazing, they were always willing to help and mentor me. In my entire working life, I met the BEST manager I've had in both of my careers (marketing and tech). My mentor was just as incredible who was a great teacher and supporting me in every way possible.?Shoutout to Paula Wing and Paul Otten for making this experience one-in-a-lifetime. Their mentorship and support was instrumental in my journey.
Stay tuned for my next article where I share my experience on what's next after your project!
Senior Software Engineer at Point
3 年I’m very sorry for your loss. It sounds like you approached the apprenticeship with great attention to detail, in writing the code as well as how to interact with your team. ?? Hope you take all the time you need to heal, and come back ready to keep doing amazing work!
Visual Designer @ IBM | Data & AI
3 年Thank you for sharing this my friend!
Senior Vice President Operations
3 年Im sorry for your loss Michelle.. good luck with your journey!
????
3 年Thanks for sharing...looks like a dream job
Full-stack Software Engineer
3 年I’m sorry for your loss, you have my sympathies. Really great article Michelle! I wonder though, does it ever frustrate you to know that you can’t learn it all? I’m a curious person and I love to learn, but it almost makes me sad to think that we don’t have enough time to learn it all. So we can just learn all we can, while we can, about whatever it is we love right? I wish I could Matrix load all of software engineering into my head! Along with some Kung fu ??