PAYJOY

PayJoy

Software Engineer

Somerville, MA
January 2020 - September 2020

Skills used:

Front End Mobile Development • Performance Tracking and Analysis • Live Demos

PayJoy Cash App - Landing Screen

After having completed two design-focused co-ops, I looked forward to starting a more software development-focused role. I looked mostly for smaller companies with closer-knit teams, since my previous co-ops were at big companies where I felt mostly distant from the people I worked with, as our responsibilities were always so separate. Not only did PayJoy check off all these boxes, but it was also a company that caught my eye immediately from their mission statement. They embody equity in the sense that their products exist solely to uplift and provide for those who are underserved. They put faith in those who other corporations wouldn't "take a risk on" and provide assistance to so many who need it.

My interview for PayJoy was different from any of the interviews I'd had for co-ops before. My interviewers, James and Steve, were patient and had a rather calming presence - as opposed to most interviews where I'd be sweating intensely and freezing up from anxiety. They cared more about seeing how I approach a problem than finding some "correct" solution to a predefined scenario. They asked me about my thought processes and asked questions that I didn't really have to prepare answers for - all I had to do was speak my truth and share my real experiences.

That interview combined with the conversation that I'd had with Carleen, another engineer on the team, about how she got started at PayJoy and her own unique background, gave me a great first impression (that proved to be accurate!) and I knew from each interaction that I would enjoy working on their team.

Jumping Right In

When I started at PayJoy, I was onboarded relatively quickly. They had a Github wiki set up for the appropriate environment and programs needed for Android development, and I was able to get myself settled within the first few days. Something I realized while reflecting on each of my co-ops was that at each company, for each role I assumed, I worked - for the most part - independently. I had incredible support at each co-op but ultimately, my responsibilities were my own. I felt most comfortable working with that sort of dynamic because it was what I had done at my first two co-ops, and PayJoy was no different.

My co-worker, Steve, who was the engineer mostly in charge of the front-end before I joined, helped me get acquainted with the codebase and assigned tasks to me that helped me get a good grasp on how the app was structured. A good amount of the work I started with were quick UI tweaks or small bugs, and they were (in my opinion) the best way to get myself familiar with the code without any real risk of breaking anything.

The Intersectionality of Design and Development

A few of the onboarding screens I updated!

As a front end developer, the majority of the work I did was related to the UI of the app. During my first couple of weeks, I focused on fixing UI bugs, like image or text overlaps, or spacing or sizing issues. I updated the look of the screens from sort of a "shell-like" experience with basic functionality to what the mock-ups provided by the designer looked like. This included adding icons or or image placeholders to screens, such as in the ID verification screen. I occasionally had tasks that required implementing functionality, like being able to rotate an image after it's been taken on a user's phone and sending that rotated image to our server. Some of my tasks were to add "nice-to-have" UI elements that were quick to implement but had never really been a priority before. These tasks were often overlooked and being of such low priority, they were sort of perfect for me while I was still onboarding. One such element was the phone number bar that tracks the amount of digits a user has typed (up to the max digits that a phone number should have). This bar isn't really necessary, but it aids the user in ensuring that they're typing the correct phone number. That, and it looks nice!

As a designer, I inherently prioritize these features more than most other engineers would. Improving the user experience is my intrinsic motivation, and the reason I enjoy front-end development is because I have the most direct tie to what a user sees. I felt immense satisfaction when using the app once all the updates were pushed through, and I could tell that it made a significant difference as well. When running through the app, you could generally tell if I was in the middle of updates, since you could see the difference in the app before where my work stopped and after.

Loan status screen that I built from scratch

It was eye-opening to be on the other side of the design-development process compared to the work I had done at my previous co-op, and having been on the other side before, I had a lot more sympathy and compassion for the designer for the PayJoy apps. I paid careful attention to the details of each screen and ensured that I understood the intended functionality of different components before implementing them. I asked about edge cases and how the designers thought to best handle them, and always made sure to get their approval before making any large visual changes. Something I hope to see more of in software companies in general is more streamlined communications between designers and developers to prevent any oversight or unnecessary extra work. When I worked at Intuit, it was a pain to come up with a high-fidelity mockup only to be told at a meeting that we actually couldn't implement most of it. It felt like quite a waste of time and was incredibly discouraging, and while I didn't let that affect my work, I know I would've been better motivated had I been more aware of the timeline and all our constraints earlier in advance. At PayJoy, I had the opportunity to be the type of developer that I would've wanted to work with as a designer, and I tried my best to do so.

Taking Ownership

Another big chunk of my work involved adjusting the UI to be more responsive. When I had joined, a lot of the UI was hard-coded so that it could be pushed for a release. Throughout my co-op, an ongoing goal for me was to improve the codebase, update anything that was hard-coded, and overall refactor as much as I could so that the code would be more readable for future engineers. Since this was a task that was a bit lower of a priority, I held onto it as my own and set aside time for it in between handling bigger requests.

My team was relatively small, consisting of four engineers including me. Since we were such a small team working on such large projects, each of us had several different responsibilities. In addition to taking ownership for the refactoring, I was also given the responsibility of designing another PayJoy app - Shrink Wrap - from scratch. While I can't particularly go into detail about what the app is, I can share that I had no experience working with an Ionic framework prior to this co-op, so I spent quite a few days watching tutorials and reading up on documentation before pushing anything tangible.

Creating this app was such a beautiful experience for me, because it felt like what the essential expectation is for a co-op. I learned something completely new and immediately applied it to something I was working on. I turned a skeleton of an app into something visually exciting and functional. During an engineering stand-up (a meeting with all the engineers across the company), I had the opportunity to demo the "final" app, and I remember barely being able to contain my excitement and pride.

A Brief Reflection

Despite spending about 6 out of my 8 1/2 months at PayJoy working remotely, I had such a fulfilling experience. I accomplished so many amazing things that I know I can be proud of - and that I can't wait to see go live. I would've not had such a wonderful experience had it not been for my Boston team (Carleen, Steve, and James), the Mexico team (Pri, Alex, and Oscar!), and of course, our friends on the West Coast (Corey and Fernando). I owe so much of what I learned and also just my day-to-day ease to their energy and passion for the work, and I will always be grateful for them!


Remote Working in a COVID World

I decided to separate this section from the rest of my reflection of the co-op because it goes a bit more into detail about the experience of working remotely and has less to do with my specific responsibilities. But I still wanted to include it, as this encapsulates the majority of the time I spent working at PayJoy!

My "parting" gift from the team - Merida is where our app was going to be launched!

The day Massachusetts declared a State of Emergency, I was still on a personal trip in California. The day I flew back - later that week - the office decided to shift to remote working and my first meeting back was on Google Meets. Luckily I had my work laptop at my apartment, but my test phone and monitor were still at the office. I worked quickly to transport them from the office to my place so I could resume testing, but I remember feeling even more disoriented, as I had been on vacation for about a week and a half, and hadn't had a chance to check in with my team since before I left, when COVID still hadn't even been making headlines.

When I stopped by the office to pick my things up, it felt bizarre - we still weren't being asked to wear masks yet, and I took an Uber both ways (but I opted for an UberX over the usual Pool service). The building we leased was home to a few companies, and there were still a few other groups of people hanging around the shared spaces when I walked through it. Our office was, of course, empty, besides the leftover equipment from my co-workers. It was surreal.

Little did I know, that was the last time I'd ever step foot in that office.

The shift to remote working was actually easier than I had expected. Since our team was always remote compared to the main office, we were used to calling in to meetings from a shared room monitor. With everyone working remotely, we were all sort of on the same page, as opposed to 80% of the meeting participants being in the same room and the others scattered through different screens.

In terms of productivity, I still managed to get around the same amount of work done at home as I would've done in the office. I had to adapt to the circumstances, since my apartment was quite small and I shared a room with another person, so I would either be working on my bed, at my desk (in my bedroom), or at the kitchen table. Because of this, my schedule looked a little different from normal and instead of working constantly from 10 AM to 6 PM, I would take several breaks throughout the day. These breaks would look like going out for a quick grocery run, or grabbing coffee and a bagel, or just catching up with my roommate on how her day was going. These little reprieves boosted my mood and helped pick me up despite the low feeling that the pandemic was causing.

With these short breaks, obviously my work day usually ended a bit later than 6 PM, but it felt healthier for me than sitting in the same place at home for 8 hours straight every single day. I treated the work similarly to how I handled course assignments; it didn't matter so much when I was doing the assignments but rather when I finished them by. And since I took sole ownership of the tasks I was working on, I didn't necessarily have to work around other people's schedules - apart from team check-ins or weekly company meetings. I think this work style had its pros and cons, and if I were to go back to remote working full-time, I would prioritize having a separate space for working from where I sleep and where I eat. At the time I didn't have a choice, and I was still able to work around it, but in the long run, I'm sure it would've gotten quite exhausting.

As for my team, despite how little time I got to work in person with them, I felt that I was able to get close to them and form meaningful connections. As I mentioned earlier, I quickly felt welcome and included on the team and that feeling didn't go away even when we were working remotely. I remember feeling quite disappointed that we were shifting to remote work, as I'd just gotten around to feeling more comfortable with the team. It was a level of inclusion that I hadn't felt in my previous co-ops, and I knew that would only increase over time. Working remotely didn't necessarily change that - actually, if anything, it just gave us a common struggle to discuss and work around together.

Of course, I would've loved to have been able to continue our Friday team lunches, and I would've probably had so many questions answered more quickly had I still been able to just roll my chair over to Steve or Carleen and ask them about a bug I was experiencing. But even remotely, I still felt like I was a part of the team, and I never doubted that.