Some days I can hardly believe it: I have been working as a developer for more than a year! 😱 My memories of the challenge of coding bootcamp with a new baby, and demoralizing job-hunt, have not faded in the least. I thought it a good exercise (and potentially helpful to others) to pen a review of sorts of my first year as a professional developer.
Most mistakes in: Git & GitHub flows
I remember being so nervous about making coding mistakes at my first dev job. It never occurred to me that most of my faux-pas would be in the realm of version-control. I had trouble in the following areas:
- working off of other devs' branches
- working alongside other devs on a specific feature branch
- merge and rebase flows
Sometimes my mistakes polluted staging branches, or erased work that was merged by other devs. I was deeply grateful for patient senior devs who supported me, paired with me to fix my mistakes and helped me learn. I have written about how, in my opinion, contributing to an opensource project is the best approximation of real-world professional coding.
Most intimidating factor: Large codebases
In the beginning, I began each task in a state of mild mental paralysis; our codebases were HUGE and I feared breaking everything. This experience was so far removed from that of coding bootcamp - where I was 100% familiar with every nook and cranny of my projects. Using a powerful integrated development (IDE) really helped me; I could quickly traverse the codebase, learning which functions touched what, which methods I could reuse or repurpose. I also leaned heavily on my team's familiarity with our projects. Over time, I grew more knowledgable and comfortable with our code.
Leveled up the most in: Databases
Prior to my job, the extent of my database skills was creating new Postgres databases for my solo projects and running data migrations from the console. That was it. I never touched these databases again, or ran a single query. Now at work, running queries (this time against Oracle DBs) was a daily occurrence. I have leveled up so much in SQL syntax, learning where different types of data lived in our databases, and connecting dozens of tables to produce the datasets necessary for the task at hand.
Top feat: Proving my worth to a multidisciplinary team
While interviewing post-bootcamp, I was advised not to fear presenting my whole self to hiring managers; that what I may lack in dev skills, I could offset by showcasing other skills. At my first job, I truly had the opportunity to capitalize on my abilities gained from being a public-health analyst, and digital agency owner. I worked with product managers, designers, UX/UI engineers, data analytics and SEO pros; refusing to be siloed, I wanted the stakes held by other teams to inform my development process. With their permission, I would sit in on their meetings, absorbing the outcomes important to them and sharing knowledge about what was feasible and more straightforward from a developer point-of-view.
Most sobering responsibility: Code-reviewing pull requests
When I began reviewing team members' pull requests, a whole other avenue for learning opened up to me. For one, my knowledge of our codebases increased more, since the PRs I reviewed concerned code areas that my own work hadn't revealed to me. I was also very motivated to understand what the PR accomplished; if a bug got through incognito, I was more culpable for that than the dev who introduced it.
Greatest realization: Importance of work-life balance
The first 3 months at my firs dev job were rough with a capital 'R'. At the time, I was the only parent on my team, and the only mother in the engineering department. My commute was at least an hour one-way. My toddler was new to daycare, and catching every bug that drifted her way. I found myself needing to work from home with my sick child, while the rest of my team collaborated in-office. This arrangement made being a new dev even harder, and also understandably surfaced some manager concerns over my ability to produce concrete results. I thoroughly enjoyed my work, but even after my baby adjusted to #ThatDaycareLife, I started experiencing growing anxiety and internal conflict from having 2 very distinct focal points (work & home). If there were a Maslow's hierarchy of needs for non-traditional developers, I had left the bottom level ('get a dev job anywhere for any pay'). Now I felt the strong need to build my dev career around my life, not the other way around. It's this desire that led me to leave my first dev job for my current, fully-remote one.
It's been an exhilarating ride! 😅 Looking forward to all that's next!