Learnings
Wins & Blockers
Day 1
Wins - have a clear plan for tomorrow! feel like i am in a good place to finish a barebones prototype by tomorrow evening. i want to keep things simple to have time to style it really nicely and work on flows later this week!
Blockers - was definitely overwhelmed with the list of todos at the beginning of the day. took me a solid 2 hours to pick a project small enough in scope that i thought was cool, and then had to roll back some work as i tried to set up too much too fast to start.
Day 2
Wins - felt like i struggled through some of the infra work in the beginning of the day. slowly getting to a more somewhat useable product.
Blockers - bit off more than i could chew at once again this morning which sapped a lot of my energy. still getting a little caught up in what i have in my head and what i can actually accomplish, especially design wise :(. hopefully i can wrap in some more ai-sdk features tomorrow, and also write some tests! sorry paris, forgot to add them
Day 3
Wins - deployed! also caught up sone of the ‘lessons’ like testing today. didn’t set up testing all over the app, but was cool learning to use cypress! was not expecting another app to open up with an electron browser???
Blockers - motion libraries are a whole different beast!!! need to fix some auth details tomorrow (have noticed, esp in the deployed version)
Day 4
Wins - pushed through and got over the hurdle. more animations and components, and WAY fewer bugs re: chats
Blockers - had a tough one today, felt like i had 1 brain cell for most of the day. i really need to practice breaking goals down into smaller steps re: code architecture.
Day 5
Wins - Deployed app is much more polished than yesterday (caught lots of bugs and a race condition I learned!). swapped some UI elements around and generally have a pretty screen size accommodating app. enjoyed trying a new IDE (Zed) in earnest today - it feels very fast!
Blockers - need to look deeper into why the initial plan generation is so slow. not much besides that
Day 6
Wins - enjoyed learning from everyone's demos!
Blockers - not much today, relaxing day to reflect on the week.
Learned Technologies
- Sentry
- Vercel Analytics
- tRPC
- Better Auth (including Google account auth)
- Vercel AI Chat SDK
- Tool Calling
- Object Generation
- Text Generation and Streaming
- Framer Motion
- shadcn components
- Responsive design
Reflections
Product Work (as a software engineer)
Working AI products cleanly into existing product flows was a challenge technologically - at least with my last-gen minded design brain. For example, I wanted someone to define a focus for their practice session before I brought them to the actual LLM chat interface. Ideally, this focus would be pre-populated with the coach's practice plan as a response, and formatted to look like a special UI element, since it is a practice plan and not a normal AI message! Getting this to work with my still growing understand of the Vercel AI SDK was a challenge.
First, I learned I needed to reload the page to get the tool call responsible for generating the practice session to recognize a message had been inserted with the user's intended focus. To get this reload to happen without other side effects in a NextJS React app was difficult -- just reloading simply would cause user messages to send twice, or appear twice in the database, or cause the AI to re-send the practice plan inside of a normal message.
Still a beginner, I was forced to dive deeper into the inner workings of React's render logic and came out a better engineer for it. The assigned readings of the week also paired nicely with the 'on-the-job' lessons. Vercel's own Common Mistakes with the NextJS App Router helped dispel misunderstandings, as did Dan Abramov's One Roundtrip Per Navigation. Another theme of the week was to learn more about motion in web apps. Nanda Syahrasyad's posts about how Framer Motion and SVG work in this regard were excellently laid out! Eventually, I'd like to dive deep into how shadows help create depth on screen interfaces - this is something I do not understand very well yet!
Career (or what I could see myself spending 20 years pursuing)
I took a walk with Andrew to discuss my future career, where he essentially challenged me to think bigger about the scope of what work I'm contributing to.[1] After a few days of thinking, I've come up with three themes I could see myself working around for 20 years, which also align to my skills:
- Old Steve Jobs computers as 'bicycle for the mind' type shit
- Generally, I think that the best technology either helps amputate generally tedious activities (dishwashers, laundry machines, etc.) or extends our reach (access to information like search engines or online media, better payments, etc.).[2] I'm drawn to where computation, interface, and new intelligences collide: AR/VR as new HCI, AI as interface architect, etc.
- Some companies/prototypes in this domain that I find interesting:
- Exasearch built ground up for AI
- Flora fresh interface for creatives using new AI capabilities
- From DeepMind - Gemini Flash 2.5 Lite creating UIs on the fly that are context aware
- Notes app that 'builds itself'
- Mainframe (Jordan Singer's latest company, built Orchestra and Cobot)
- Sublime new take on categorizing the internet
- Daylight Computer hyper-specific purpose computing device
- Bevel quantified self, built on Apple Watch (essentially Whoop competitor)
- Living in harmony with nature
- This includes access to abundant clean energy, ways to access real wilderness, architecting the built environment to be in harmony with nature. There are many ways technology can help humanity and nature coexist better.
- Engaging and shaping your community
- I think technology can help engage people to their surroundings more, and by extension get them to be more engaged in shaping it. Why can you not interact with your federal government, city, or neighborhood, or street better through technology? I think there should be software that empowers people to shape their communities. For example, some social media (Substack) can help proliferate ideas about what your community should be like. Companies like Kaizen Labs is helping build simple websites for municipalities. There are many ways technology can help in this goal.
When I made my website a few years ago, I wrote: "I'm interested in how technology can help people directly, especially as it relates to expression and the physical world." Ironically, I copy and pasted that paragraph directly when starting this blog; it still feels true. I am excited to take a concrete first step toward these larger ambitions.
[1] He understood that I would (eventually) be unsatisfied with work if it does not align to my broader morals etc.
[2] More examples of amputations that are beneficial:
- Anki is a technology that amplifies humanity via amputation (letting a computer remind us about spaced repetition timing, etc.).
- A souped up Kindle can be better than a paper book re: highlight/note retrieval. A tool like Readwise is better than a library to notice trends across your entire collection and its notes.
How I'm Doing
1. How I'm Feeling
- Feeling pretty good! This week felt much more like a 'Wednesday hump day' than the first two, but handled it well overall I think!
- Learning to accept that the road is long, and learning to like the process more.
2. Personal Growth & Learning
- The first few days are always 'hard' in the sense that we are taking on a new challenge and doing something hard. It gets easier each day as we learn more, and remembering that helped me tackle it better.
3. Standout Moments
- Being able to parse 'things I want to be different in my app' into todos for my codebase.
4. Biggest Challenge & How I Handled It
- Scoping a project I could handle with appropriate levels of polish in one week. I took my time picking a project by exploring a few for a few hours the first day.
5. Connections & Collaborations
- Discussed projects more with my peers, and tried to help some with their challenges!
6. Habits & Routines
- Stayed active this week and be social during the week. This may be too much (maybe pick being social OR being active during the work week).
7. Surprises
- How hard CSS layout is with framer motion -- having UI elements respond to movement in 'good' ways.
8. Focus for Next Week
- Being okay with my learning taking a while --> learning to love that process, as it will serve me well for the future 😊