index.md (5298B)
1 +++ 2 title = "Envelope" 3 description = "The banking platform with built-in budgeting" 4 date = 2024-09-03 5 updated = 2024-09-14 6 [extra] 7 type = "work" 8 start = 2024-06-17 9 end = 2024-09-06 10 +++ 11 12 YCombinator's [job board] has high signal to noise for interesting work, 13 but it's not every day that their internship tab has as compelling a 14 phrase as "SwiftUI Engineer." I've been in love with SwiftUI, Apple's 15 modern app-building framework, [for a long time]. Something about its 16 [declarative nature] just clicks with how I think. I sent in an 17 application, sat down for a live coding interview, and my summer plans 18 were sorted. 19 20 [Envelope] is a banking app. It serves as both your primary checking 21 account and your budgeting platform: the two are seamlessly integrated. 22 Every transaction that hits your bank is budgeted by default. Envelope 23 lowers the barrier to entry for your most important personal finance 24 habit: great budgeting. 25 26 It also helps that Envelope brings all the polish of a fancy Silicon 27 Valley company to banking, a field dominated by the jankiest apps known 28 to man. 29 30 ## Tenure 31 One bullet point in the job description claimed that I would have code 32 live in production starting from my first day. This was not true. But 33 it was close! In my first week at the company, I built out a new feature 34 shown—to every user, on the front page of the app—when assigning a 35 transaction to an envelope. It is now one of the most used pieces of UI 36 in the app. 37 38 Over the rest of the summer, I continued building and iterating on 39 practically every facet of the application. By my count we shipped nine 40 long-requested major features and redesigns, touching everything from 41 transactions and envelopes to onboarding and the organization of screens 42 within the app. I took a look on my last day at our improvised Figma 43 kanban board, and was happy and more than a little bit surprised to see 44 the done column overflowing with projects we'd shipped. 45 46 ![40 commits, 12,205 added lines, 8,797 removed lines](github.png) 47 48 One particularly fun piece of work that I'd like to immortalize here was 49 totally removed from feature development: we once spent two days 50 debugging the [Stytch] [JWT] that our app uses to authenticate users. 51 When we ultimately located the bug—a particularly nasty problem with 52 refreshing the token that rendered it invalid after using the app for 53 longer than five minutes at a time—we were able to fix it with one line. 54 We also got a DM from a co-founder of Stytch out of the whole 55 experience, and sent them some API design pointers that I sincerely hope 56 make it back to [their SDK] one day. 57 58 I'm excited to see Envelope grow, and for the additional features 59 that I didn't have time to put in your hands to see the light 60 of day. From closer integration with external money sources, certain 61 additional banking tools, and some cool UI we couldn't ship due to 62 dependency issues—I'll be keeping an eye on the future of the features I 63 built out and the future of the whole enterprise. 64 65 ## Reflections 66 Josh, the CTO, is brilliant. I was the second engineer at the company—a 67 fun statement for me in its own right, but also formidable by 68 implication. Josh built out the entire backend, external integrations, 69 and SwiftUI application, and had been running them both as a serious 70 product for two years as the only technical person on the team. Josh is 71 deeply opinionated about how software should be developed and 72 maintained, employing a crazy effective philosophy breaking complex 73 problems down into distinct patterns. He is deeply talented, and I spent 74 a good part of my internship just trying to absorb some fraction of his 75 skill. 76 77 The realities of the job were also completely new to me. Working a 9-5 78 took some getting used to; at Stanford, I am surrounded by people doing 79 crazy and fun things from the moment I wake up until I pass out and in 80 class for maybe three hours of the day. In school, the day is for play 81 and work is confined to some fraction of the evenings, but at Envelope 82 this was flipped. I think I obviously appreciate the flexibility of how 83 work is done at Stanford over the more traditionally rigid hours. It's 84 nice to have time to ponder, to be free to meet with people for lunch 85 and tea throughout the day. My work at Envelope also helped me 86 contextualize the sort of programming I want to do in the future. Pure 87 frontend work, devoid of context, is just making a hundred buttons a 88 day—and when you've made one button, you've really made them all. 89 However, working with data, building out new functionality, reshaping 90 and redesigning the user experience: that is deeply fulfilling. My time 91 at Envelope allowed me to touch on all of these aspects of development 92 and take a holistic approach to my work. 93 94 My time at Envelope was a blast and a privilege. Every change I made 95 went out to thousands of people using our app on a daily basis. What an 96 incredible opportunity it was to be able to shape something like that so 97 directly. 98 99 [job board]: https://www.workatastartup.com 100 [for a long time]: @/projects/txtodo/index.md 101 [declarative nature]: https://en.wikipedia.org/wiki/Declarative_programming 102 [Envelope]: https://envelopebudgeting.com 103 [Stytch]: https://stytch.com 104 [JWT]: https://datatracker.ietf.org/doc/html/rfc7519 105 [their SDK]: https://github.com/stytchauth/stytch-ios