I appreciate that my high school had a senior project
When we look back at our lives we can find important inflection points. Moments that change the trajectory of our futures. Many seemly independent choices combine to create meaningful outcomes.
Working backwards in time:
In 2015, my first job was a software engineer / consultant for investment banks. [^ See: "Gardening leave" in https://www.bloomberg.com/opinion/newsletters/2025-04-10/buy-the-truth-sell-the-news for thoughts on the smart people to finance pipeline.] I found the company because they happened to be at the UMass CS career fair and their job listing was tagged with the keyword "finance". I searched for finance because of my time in Glasgow.
In 2014, I did a semester abroad at the University of Glasgow because I liked Haskell. [^ See: https://blog.matthewbrunelle.com/haskell-nirvana/] However I didn't realize the university limited the pool of classes exchange students could pick from until I got there. So I took a course “Software Engineering for Financial Services” to fulfill my group software engineering require [^ The narrator: UMass did not accept the class as a substitute.] We made a position keeping system for fixed income assets and I have the broken kind mind that enjoys projects like that. [^ The class was actually really well run: all group projects, work was organized in sprints, we learned unit testing, etc] Another reason I picked the class was because my past internships were related to finance.
In 2011, my first internship was at a company that provided a pluggable online account opening site for banks to use. Their CMO wanted help collecting information about what banks and credit unions might be potential customers. Retail banks will often offer higher than average rates when they really want to attract new customers. His is idea was those banks may also be interested in adding online account opening. I was asked to make a crawler that scraped BankRate [^ which at the time had all their interest rate information just sitting on open web pages] to help identify potential banks. I got that internship because of my high school senior project.
This post is about that project.
The Dreaded Senior Project
Waaaaay back in highschool I had to do a senior project that consisted of:
- a project proposal
- a written research paper
- a project
- working with an optional mentor
- a portfolio documenting the whole projects
- a 10 minute presentation to "a panel of faculty and community members"
At the time I was a chronic procrastinator. [^ Now know I had undiagnosed ADHD.] I had a personal project I was chipping away at, but not making great progress on. However, I also had a school project with a deadline that I needed to motivate myself to finish. So I decided to turn my small side project into the project component of my portfolio.
I recently found the old binder my portfolio was in at my parents and decided to on a trip down memory lane.
The paper and the interview
The paper I wrote was called The Agile Approach to Software Development. Yes, as I high school student I contrasted waterfall vs agile methodology. Even though I did not enjoy writing back then, it turns out if given the opportunity to write about software I was at least interested enough to do that.
The paper was surprisingly OK and got a 53/60: "Proficient with Honors". Which is weird considering the audience was non-technical. I think that's the best I ever did on a paper in high school. Even then, we do not need to go over the contents of the paper. Trust me. The big thing is that one of the five sources for our paper needed to be an interview:
The person you choose must be a credible source approved by your teacher. You are required to find an adult, outside of the high school, that is an expert in your area of exploration.
So I asked my parents if they knew anyone that worked in software. Their friend was the CMO that eventually offered me the internship. I do not want to diminish the fact that I had a pretty fortunate upbringing and that afforded me connections like this. The CMO put me in touch with someone on their engineering team who could answer my interview questions. The questions I asked were all pretty simple:
- What company do you work for and what experience do you (and you company) have in the field of software design?
- You had mentioned that you company now uses Agile. What design methodology did you use before this?
- How would you characterize Object Oriented Design?
- How would you characterize Agile Design?
- In what ways does Agile help you company with increasing: a. Adaptability, b. Feedback (both internal and with you customers), c. Pragmatism
Honestly, getting real world answers to include in the paper really helped me out.
While re-reading my paper I also found another great reference I used. I cited What Killed Waterfall could Kill Agile which includes this wonderful section about DOD2167:
He began the paper by setting up a straw-man process to knock down. He described this naïve process as “grandiose”. He depicted it with a simple diagram on an early page of his paper. Then the paper methodically tears this “grandiose” process apart. In the end, Royce proposed a far more nuanced and insightful approach, leaving the reader to giggle at the silliness of the “grandiose” model.
There was just one problem. The process that DOD2167 adopted was Royce’s straw man! Apparently the authors of DOD2167 did not actually read Royce’s paper; because they adopted the “grandiose”, naïve process that Royce’s paper had derided. To his great chagrin, Dr. Winston W. Royce became known as the father of the waterfall.
The Project
The project deserves a separate post. In fact here is 4500 words about what I did. The important thing to know is that I wanted to aggregate cross country race results off of the Rhode Island Track and Field Association website. There was no official way to do this programmatically so I had to write a scraper.
Time is a flat circle:
So putting the two together, at the end of my senior project I had:
- Interviewed someone from my future internship for my paper.
- Made a crawler for my project which was something my future internship wanted.
After I had submitted my senior project I got this message from the family friend:
What are you up to this summer--have you lined up an internship or
job? I might be able to use some coding help with a few projects. A
few examples:
-- Building screen-scraping applications to harvest interest rate data
from numerous sites
...
<person> mentioned that you know Python; what languages are you
comfortable with?
My response was:
I do have a resume, but without any real work experience it doesn't say too much about me. I did just throw together a blog post detailing the work I did on a recent project. Its here if you'd like to check it over.
As far as work, I don't have a job yet but I am definitively getting one for this summer (I need to pay for college books and a macbook pro somehow). I would absolutely love to have an internship though.
I suppose I followed POSSE even back then. The restored post is now here and yes, I have essentially written the same story twice now. Regardless, sending over that reply got me this response:
What you're doing with the race data seems very similar to what I'd
like to do with bank rate data. I'm headed out to San Francisco for
the week, but let's find a time to talk about what you might do for us
after that.
The rest, as they say, is history.
Member discussion