Meet Megafind

As the fall semester comes to an end, students are cramming for finals and desperately trying to decipher their notes from hours’ worth of lectures. We all can relate to that heart-stopping moment when you realize that your notes don’t match the professor’s slides, which means you either copied their notes incorrectly or worse, missed an entire section of the day’s lecture. As you rest your head on your keyboard, you wish there were an easier way.

Enter Megafind, overall winners of the recent Cal Hacks 4.0 hackathon, sponsored by SparkPost. I recently caught up with Anthony, Kartik, Kian, and Ajay, creators of this revolutionary note-taking (and time-saving) application.

Tell Me More

Who makes up the Megafind team?

There are four of us on the team, all sophomores studying computer science at UC Berkeley. Anthony enjoys playing Clash Royale, drums, and basketball in his free time. Kartik is wants to focus on consumer products, and when he’s not working, he enjoys swimming, watching basketball, and sampling tasty foods. Kian likes to play soccer is a fan of Barcelona. Last but not least, Ajay plays the saxophone and also enjoys playing tennis and basketball.

What’s the problem you were trying to solve?

Students waste time copying lecture slides without including their own personal notes. This also means they may get lost when looking at their notes later because they missed a key piece of information while copying down slides. We realized we might be able to create a web app that allowed students to use lecture time more efficiently to maximize learning.

How did your application solve this problem?

Megafind is a web app based platform for hosting live lecture sessions. Professors can begin a session that students in the lecture can join using some provided passcode. Upon joining the live session, students gain access to multiple features that provide an enhanced lecture experience. The dashboard has 3 main features:

  1. The first is simply the lecture slides embedded into the left half of their screen––this is for the students to follow along with the presentation.
  2. The right side contains two tabs. One is a live transcript of what the professor is saying that updates in real time. The app parses the professor’s words in real time to find relevant people, places etc. Each term deemed relevant has a hyperlink to additional resources. These keywords are also stored in a digest that we send at the end.
  3. The third feature is an in-browser note taker that begins the lecture with all the bullet points/text scraped from the presentation slides. This way, students can focus on putting their own thoughts/notes instead of simply copying the lecture bullets.

At the end of the lecture, Megafind sends each student a copy of their “lecture digest” which contains 3 parts:

  1. A summary of the lecture created by performing natural language understanding on the transcript
  2. The notes taken by the student in lecture
  3. Each keyword that we picked up on compiled into a list with a short summary of its definition (for study guides/quick reference)

Tell me more about the technologies that you chose to integrate with. What are they, and why did you choose these in particular?

Our web app uses live speech-to-text translation to convert the professor’s words into a transcript students can refer to during a lecture. While it is producing the text, our application uses entity extraction to pick out keywords and provide a hyperlink to more information about the highlighted content. To achieve this, we used Google’s Cloud Speech and Natural Language APIs to create this hyperlinked transcript. With this feature, students don’t need to worry about missing something the professor says. In addition, they can now refer to further resources about topics they might be unsure of.

We also used SparkPost’s email API to send each student their personal notes. Their notes were added onto the slide text, which was extracted via Google’s Slides API. The email also included a list of keywords from the entity extractor and a summary of the entire lecture. This simple but important feature allows students to keep a record of each lecture in one, single file.

What problems did you come up against while trying to build out the application?

Most of us came to the hackathon with little-to-no JavaScript experience, needless to say, Node.js experience, which was the language we used to integrate all of the web app’s main functionalities. We needed to understand websockets and asynchronous code to figure out how to work with audio streams, processing the text to find entities, and dynamically displaying it. We knew these in addition to learning Node.js would be some of our biggest hurdles, so we dedicated most of the first night to figuring these out.

Despite not knowing much Node.js, we persevered by asking mentors questions, checking Stack Overflow, and continually revising the code through both nights to fix our bugs. We didn’t want to stop until we had our application working exactly how we imagined it.

A+ Application

At the end of the day, we always love to see the creative ways that hackathon attendees choose to use SparkPost in their applications. Today, these students are solving day-to-day problems like how to keep up in class lectures, but we’re confident that the real-world skills that they learn at the hackathon will lead them to solve bigger problems down the road.

What have you been tinkering with lately? If you’ve used SparkPost in a cool way or recently integrated it into a project, we’d love to hear about it! Send us a note on Twitter or come chat about it in Community Slack.

Happy Coding!

 

2016 hackathon review

2016 Hackathon Review

This year we challenged you to “Build Something Awesome” with SparkPost. To motivate you further, we sponsored 5 different Hackathons across the USA with cash and prizes. We also sent along our own engineers in order to mentor those who accepted our challenge. As a result, the response was incredible and we’d like to recognize the winning teams.

Developer Week

We started the year in February at the Developer Week Hackathon in San Francisco. We selected three teams that demonstrated the best use of our Inbound Email, Data & Analytics, and the SparkPost Heroku Add-on.

Best Use of Data & Analytics

Kaushik Ashodiya and his son created SparkPost ONTAP, combining our data with Net Cloud ONTAP to store webhook and campaign data. It allowed users to view or edit historical campaigns, as well as replicate the storage for disaster recovery and availability purposes.

Best Use of SparkPost Heroku Add-on

The team comprised of George Portillo, Stephen Fuller, Victor Sanchez, and Sal Casillas created Grab & Go, an application that leveraged the SparkPost Heroku Add-on to help alleviate the long lines found at the local food trucks. Their solution uses our transactional email to alert customers when their food is ready for pickup after placing an online order.

Best Use of Inbound Email

Marlon Frausto, Anna Wu, Ravender Virk, and Jigesh Parekh set out to tackle San Francisco’s affordable housing dilemma and created DwellWell. They used our Inbound Email to set up a double blind communication channel, allowing people to request information about a particular housing option with some anonymity. The DwellWell team has since continued their partnership with SparkPost to create PublicBNB.

BrickHack

In early March, we headed to Rochester Institute of Technology in New York for BrickHack. After 24 hours of hacking, we selected UBinE by Stephen James as the Best Use of the SparkPost API. This application uses transactional email to assist in planning, tracking, and notifying students of campus events.

Bitcamp

In April, we headed to Bitcamp at the University of Maryland. Because of our close proximity, we got to send multiple engineers of our own to mentor at this 36 hour hackathon. Henry Saniuk, Sneha Vaswani, and Stuart Olivera won our “Build Something Awesome using SparkPost” challenge with their PiggyPennies application. This application made use of our inbound and transactional email and the CapitalOne API to while helping friends save money together.

SDHacks

After a long summer break, we headed to the University of California San Diego’s SDHacks, a 36 hour hackathon. At this event, Kevin Burns and Jack Zeiders had some fun with SparkPost and created an email based gaming service called QuibbleMail. Using only your email, you can challenge a friend to a game of Chess or Tic-Tac-Toe. Their use of SparkPost inbound and transactional email allows you to play without leaving your email client.

MLH Prime Southwest Regional

Finally, we wrapped up 2016 in Austin, where Major League Hacking pulled together the region’s best hackers for 24 hours. Bailey Breaux, Ali de Jong, Yuriy Minin, and Patrick Edelen blew us away with Mochi, their Jibo robot integration for patient care. The team used SparkPost’s inbound and transactional email to empower Mochi to contact a patient’s family via email and read aloud any replies.

At each event, the response to our challenges was amazing. So many of you Built Something Awesome and we thank you. As a result, we’ll be back out there in 2017 and we’ll be sure to keep you updated. Our first stop will be a return to Rochester in February for BrickHack 3. Because we take your feedback into account, we’d love to hear what events you’d like us to attend. You can chat with us on our community slack or send us a tweet @SparkPostDev.

— Aydrian

So, what’d you think of our 2016 hackathon review? What were your favorite hackathons from 2016? Any hackathons on the agenda for 2017 yet? Leave us a comment below.

Community Driven Development

The Community Driven Development Approach

April 2015 was an exciting time to be an engineer at SparkPost. Our service had just launched. We were seeing the results of all the hard work and dedication from previous quarters spent building our functionality, infrastructure, and teams.

Fast-forward to late February 2016. SparkPost had been generally available for ten months. Our community was growing steadily. We continued to make refinements to our service and infrastructure. We didn’t know it at the time, but MailChimp had just announced some important changes to Mandrill that would change the way we interact with our community and how we improve and support our product.

In the days following the announcement, we’d go on to set up our community Slack and revise our product and engineering processes to embrace community driven development. We used the feedback and experiences to drive our decision making processes to execute on what really makes our community successful.

Channels for information

Several mechanisms for feedback from our community exist at SparkPost. I mentioned our community Slack. There, our community has access to SparkPost team members and, more importantly, each other. We learn from you not only through direct interaction but by observing, listening, and taking notes. Any member of our team can take feedback from community Slack and post it directly to a feedback channel in our internal Slack. There, our engineers, product managers, and executives have direct access to your comments.

community driven development slack screengrab

Support tickets and Github issues are another essential method for understanding ways we can make our community’s lives easier. Our support team does a great job of escalating issues internally to our engineering team as well as bringing up issues that are occurring repeatedly and brainstorming ways to address. Github issues allow us to understand how our client libraries are being used and where we can make improvements.

Attending meet-ups, conferences, and hackathons has been a major source of learning for us too. We get to spend quality time face-to-face with our community, learn about how you use SparkPost and what improvements might help you and your business be more successful. After each event we make a point to share learnings internally so that we can discuss ideas and issues that arise during our conversations with attendees.

What happens behind the scenes?

Collecting all this valuable input wouldn’t mean much if we didn’t act on it. In the past three quarters we’ve acted on a little over 50 items that were a direct result of the information we gathered from our community. These smaller items are what we consider quick wins – things like updating language in our UI, improving documentation, bug fixes, and minor feature improvements. Here are some examples:

  • Click to see event details in Message Events UI
  • Allow customers to clone Templates in UI
  • Create code samples for cc/bcc in the client libraries
  • Surface all 4xx API errors in the web UI
  • Add information about rate limiting and error responses to the docs
  • Fix click tracking on <area> elements

Additionally, the engineering, product, and support teams meet weekly to discuss customer impacting issues, solutions, and action items. Like many software companies, we also have a prioritized list of larger initiatives that we work our way through. Some examples of work completed from the past few quarters include:

Prioritization

Prioritization of new features and improvements is a constant work in progress. We do our best to compile all of the great feedback we receive and maintain a balance between addressing current issues and the planning and execution of new functionality and improvements. Some additional items we’ve heard our community request include:

  • Deliver webhooks by subaccount
  • View the contents of sent emails in the UI
  • View billing history in the UI
  • Add the ability to use a test API key
  • Reporting by geography in the UI
  • Support for stored templates with subaccounts

Lastly, the best way to stay up-to-date with what’s new as well as fixes we deploy is to join the #announcements channel in our community Slack or keep an eye on our change log article. We update both every Friday when we deploy changes that we want to make sure you know about.

Onward & Upward

With 2017 nearly upon us, we’re looking forward to implementing some of the improvements and features you’ve told us are important to you. Our community plays a major role in the development and evolution of SparkPost. We love to hear from you, so keep the feedback coming. And keep pushing us to deliver the best service we can.

—Rich Leland, Director of Growth Engineering

ps: Thoughts on community driven development? How do your teams prioritize and process feedback? Leave us a comment below.

All-Things-Delivered_SparkPost Live Stream #SparkPostLive

SparkPost is built by and for developers and as such, we value your input. We showed you our true colors during the Mandrill migration and we’ve added lots of new features and enhancements based on your suggestions. We’ve also opened up a communication stream for you to share feedback with us on a regular basis. Now that we’ve gotten to know who you are, we want to pull back the curtain a little and introduce ourselves.

Mark down September 21st on your calendar to hang out with us LIVE and get to know our Dev Relations Team in our new All Things Delivered live stream. In our first live stream find out who we are, what we do, and why we’re passionate about delivering the best email cloud service on the planet to you, our community.

Starting in September, on the third Wednesday of every month, we’ll be coming to you LIVE for 30 minutes to discuss what our team is working on and walk you through our client libraries, the SparkPost CLI, or other technical topics. We’ll also be covering common questions and issues that you, our community members, have brought to our attention; helping you troubleshoot issues and get a better understanding of how to look for information that will help you do your job better and land your messages in the inbox.

We’ll also be taking questions from you in real-time via the #SparkPostLive hashtag on Twitter and via the SparkPostLive channel in our Community Slack.

Here are some dates to add to your calendar for All Things Delivered:

How can you participate?

  1. Join us live!
  2. Follow the hashtag #SparkPostLive on Twitter during the live stream

If you’re unable to participate live, you can always watch the playback on our YouTube channel.

Looking forward to seeing you soon!