Software Engineering Intern
Blackbaud - Charleston, SC - Summer 2017
This summer, I interned at Blackbaud, a software development company based in Charleston, SC. Blackbaud develops software products for non-profits, higher education, and healthcare - some of their clients include awesome organizations like Habitat for Humanity, the World Wildlife Fund, and Feeding America.
The team I worked on is called Monopoly; it is a smaller subset of the Enterprise Team. One of Enterprise's main products is the Constituent Relationship Manager (CRM) product which is used by extremely large organizations such as the University of Michigan and the Children's Hospital Colorado Foundation. These clients use CRM to manage their constituent database and take care of the important things such as fundraising and general ledger tasks.
CRM is a very large product and as of this year, cannot yet be a part of Blackbaud's goal of "One Blackbaud", where all products are integrated cloud-based services that can be somewhat modularized. The product managers, however, wanted a responsive, mobile-friendly web app to give to fundraisers for CRM that would enable them to go out and fundraise without being stuck lugging around their computers.
So Fundraiser on the Go was born! It has a very visually appealing, easy-to-use interface and allows an organizations' fundraisers to track steps and communication with a prospect's plan, any monetary gifts given, and to find a prospect's contact information quickly. The goal for my software engineering internship was to develop new features for Fundraiser on the Go. By the end of the summer, I had filed a report and fixed a bug, written, tested, and checked in code for 4 new features for the application! Clients will be seeing these new features when they get the sprint package update in a month or so!
Volunteering and Client Visits
One of my favorite things about working for Blackbaud was how great it felt to know you were helping large organizations such as Boy Scouts of America or smaller ones such as One80 Place accomplish their mission every day. All the clients that we work with are so incredible and it was very rewarding receiving client feedback and hearing how happy they were with new features or updates.
Blackbaud's internship program not only takes us to local clients to hear about their causes and receive feedback on company products, but also to volunteer and help for a few hours. Here are a few pictures of our intern group touring or volunteering with local organizations.
Fundraiser on the Go: Summer Project
What did Fundraiser on the Go Look Like When I started?
Fundraiser on the Go first loads the My Portfolio page, displaying all of a fundraiser's prospects and upcoming dates for steps or interactions to be taken.
If a prospect name is clicked on, the Prospect Page will load. Here you can see that the Prospect Page displayed minimal information on the prospect right at the beginning of my internship.
What new features were added to Fundraiser on the Go during my internship?
Above are some features that I added to the app. I worked on a wonderful team with a product manager, program manager, user experience designer, software quality engineer, and many more other roles. While I was the developer for these features, in no way do I feel like I did everything myself. We used Agile software development practices, so our team met daily for our 15 minute stand up in order to keep track of what the team was up to. We used back-logs and task management tools and also had a great many options for communication amongst team members: Slack, Skype, WebEx.
As a team, we called the client to "discover" what they wanted features to look like and how they wanted them to perform. We discussed how features would work as a group, and I worked closely with the UX designer to make sure everything was functioning as planned. Unit tests were written for any new code added and then I would submit my code for a code review with my team.
Most of the time, the feedback I received was from a Senior Software Engineer who probably taught me more about databases, data lists, code tables, SQL, and C# in one summer than I could have learned in a year of school. It was awesome! I really enjoyed learning full stack development and I had never taken a database class before so it was great seeing the full process all the way through. I also enjoyed having someone keep me on my toes with regards to production quality programming.
Languages, Tools and Frameworks Used
Videos of Features Added
Prospect Addresses
Being able to display a prospect's addresses was the first feature I worked on. We designed a link that, when clicked on, opens a modal which displays the constituent's top 5 addresses, complete with icons indicating things like "Primary", "Do not mail", or "Confidential". Fundraiser on the Go is also used by clients and organizations around the world, so we had to use the user's locale to make sure addresses displayed correctly as well as any dates for seasonal addresses.
Prospect Pictures and Primary Managers
The prospect picture was added to the prospect page quickly after I finished the address modal feature. Clients had been asking for a way to view the pictures of prospects as a way to differentiate them a little easier.
We also needed to add the ability to tell who a prospect's primary manager was - just in case you were a fundraiser who wanted to contact a prospect and discovered that they are not in your portfolio. This also leads up to the last feature: the constituent search.
Constituent Search
The search feature was the final feature I added to Fundraiser on the Go. With it came a change to the look of the My Portfolio page by adding a tabset - when the search tab is clicked, the user is able to search for constituents that are outside of their portfolio, giving them the ability to find potential prospects and increase their fundraising capabilities.
Documentation for Search Feature Handover
Here is some documentation I wrote that covers the functionality of the search feature. Because it was close to the end of my internship, I did not want to leave my team without any way of understanding how and what my code was doing - just in case they needed to change it after I had left.
Off the Grid Hackathon
Blackbaud holds a company-wide 24-hour hackathon twice a year as well. It's called Off the Grid and it was the first hackathon I had ever competed in. We worked in a team of 8 to come up with an app that would benefit our social good community. At 12pm the next day, after staying up a total of 27 hours, we presented our project to a panel of judges. We made it to the top 14! The following Monday, our team presented again in front of the whole company... We did not place, but it was an awesome, memorable experience and I would definitely do it again!
Final 14 Presentations for Off the Grid - July 31 2017
Our team!
My wonderful teammates were Courtney Mauk, Elaina Cole, Erik Van Scoik, Thomas Ortiz, Sandhya Rajasabeson, Ricky Guerin, and Kayleigh Semeraro.
Bi-Monthly Sprint Reviews with the Enterprise Team
Every two weeks, the Enterprise team gets together to do a Sprint Review, where each team gets to talk about what they have been working on and possibly give a short demo of a new feature. Over the course of my internship, I demoed my features 3 times! Below are recordings of my demos.
Our team also likes to give presentations on client highlights once a month to educate each other on who our clients are and how they use our products. I worked with the wonderful product management intern on my team, Courtney Mauk, to present a client highlight on the Children's Hospital Colorado Foundation, a client that we worked with closely for feature feedback and for our Off the Grid project. Below are the presentation slides as well as the recording of the presentation we gave.
Client Highlight
Client Highlight Recording
Sprint Review Demo Recordings
Addresses Modal Demo
June 23
Picture and Primary Manager Demo
July 21
Search Feature Demo
August 4
Final Intern Presentation
Courtney, the product management intern on my team, and I worked together almost every day on Fundraiser on the Go. So, by the time Final Presentations for Interns came around, we decided to do a joint presentation on our summers at Blackbaud. Below, you can see our slide deck as well as a recording of our final presentation in front of the company.
Presentation Slides
Presentation Recording
(Sorry about the quality!!)
Final Changes to the Feature
Coding until the last minute...
On the last day of my internship, I was able to squeeze in a few lines of code to enable internationalization of our search feature as well as conducting a search by phone number. CRM has quite a few fundraisers overseas so we needed to add this functionality!
We also had one final meeting to discuss any extra work needed to be done before the feature is completed. While it is really hard to say goodbye to a project that I worked so hard on, I am excited that my team will finish it up and let me know any client feedback they receive once the service pack is released in September.