TL;DR

On March 19, 2026, I ran the NERPG Spring Poster Session & Tour at UConn’s Science 1 Research Center. Around 70 people showed up, 41 of them industry professionals from the New England Rubber & Plastics Group. There were 23 poster presenters, 3 faculty talks, $850 in cash prizes across two award tracks, lab tours, and a sponsored dinner. I organized the entire thing solo as president of the ACS Rubber Division UConn Student Chapter.

I also built a custom web app (bfer.land/NERPGApp) from scratch: a poster session companion with QR-based check-in, a browsable poster gallery, visit logging, gamification, and ranked-choice voting with database-level anti-fraud protections. 181 poster visits in 90 minutes. 78% voter turnout. And I automated every piece of printed material from a single spreadsheet using Python and Playwright.

This post covers the planning, the tech, and the lessons learned.

Audience during faculty talks in Science 1's G01 active learning room
Faculty talks in Science 1's 204-seat active learning room

Why This Event Existed

The New England Rubber & Plastics Group is a regional industry group of about 40 ACS Rubber Division-affiliated professionals, many of whom are former UConn polymer grads now working in industry. They’re people who have actually hired from programs like ours. When I founded the ACS Rubber Division UConn Student Chapter in late 2024, I didn’t know how enthusiastic the rubber industry would be about mentoring students. NERPG’s whole mission is growing the next generation of rubber and polymer professionals, and from the first meeting, their members treated our chapter like it was what they’d been waiting for.

While I was on vacation in January, Deep Shikha Srivastava, our chapter treasurer, kept the ball rolling with NERPG and secured the room at Science 1. NERPG typically holds their events at company facilities. This would be their first at a university. Once I was back and the date was confirmed, I took over the planning and ran with it.

The idea was simple: bring NERPG members onto campus for a poster session so students could present their research directly to people who might one day hire them. I handled the logistics, the tech, and the operations, but the event couldn’t have happened without such a fantastic group of rubber pros on the other side, ready to show up and engage with student research. Mykhel Walker, NERPG’s Chairman, coordinated on the industry side.

Planning & Recruitment

I started planning in February 2026. The first challenge was getting students to show up during spring break. No classes and no TA duties sounds like a vacation, not a poster session. I framed it as one of the best networking opportunities they’d have during their entire grad career. The people coming weren’t just academics. They were hiring managers, R&D leads, and technical directors from companies in the rubber and polymer space.

Student registration went through Microsoft Forms. I wrote email campaigns targeting IMS students for two roles: poster presenters and tour guides for the Science 1 facility. The event also drew a student from UMass Lowell’s Plastics Engineering department and four from Middlesex Community College in Massachusetts. The community college turnout meant something to me personally, having started at one myself 12 years ago. By the time registration closed, we had 21 poster presenters signed up. I’d planned for 24 poster spaces, leaving room for the late additions that always happen. Two more presenters were added after registration closed, bringing the final count to 23.

Osker Dahabsu, the Polymer Program’s administrative assistant, handled the institutional logistics: poster board orders, coffee and tea catering, and room booking.

NERPG sponsored $850 in cash prizes split across two award tracks. I’d pitched the idea to their E-Board, explaining how cash prizes would be the most effective way to drive student participation, but this was their money and their investment in the next generation:

  • NERPG Distinguished Poster Award ($500/$250/$100), voted on by NERPG industry attendees
  • NERPG Peer Impact Award, voted on by fellow student presenters

I also recruited three faculty for talks: Prof. Anson Ma, Prof. Thanh Nguyen (whose work I’d seen at the Industry Affiliates Program), and Prof. Mihai Duduta. Prof. Ma turned out to have an existing relationship with NERPG that we discovered serendipitously at their November meeting. We bumped into one of his students, and the connection clicked. A week before the event, Prof. Nguyen had to cancel. Prof. Adamson stepped in as a last-minute replacement. If he hadn’t, my backup plan was a custom rubber trivia game I’d built: 5 rounds of 25 questions pulled from the same polymer trivia facts used in the app’s codename system, exported as a PPTX. Try it:

The faculty talks kept the room full through the afternoon.

Prof. Adamson presenting Functionalized Graphene as a Rubber Nanofiller
Prof. Adamson stepping in as a last-minute replacement speaker

Rethinking How Poster Awards Work

At most poster sessions, awards are decided by a small panel of judges who circulate through the room, score a rubric, and pick winners. I’ve always found this approach unfair. A panel of 3–5 people can’t meaningfully evaluate 23 posters, and the results end up reflecting who the judges happened to spend the most time with.

I wanted something different. If 41 industry professionals and 23 student presenters were all going to be in the same room, why not let everyone vote? The challenge was making sure votes were informed: you shouldn’t be able to vote for a poster you never visited, and the system needed to separate industry votes (for the cash-prize Distinguished Poster Award) from student votes (for the Peer Impact Award) without making the voter experience any different.

That’s what led me to build the app.

Presenter discussing her poster with industry attendees
Florence Wambugu presents her cannabinoid antimicrobials research to NERPG attendees

The App: bfer.land/NERPGApp

I could have used a Google Form. “Pick your top 3 posters,” done in ten minutes. But that would have meant letting existing software shape the event. I started from the other direction: what should this event actually feel like? Attendees should discover research before they arrive. They should be rewarded for engaging broadly, not just parking at one poster. Voting should come from people who actually stood in front of the work. Industry and student votes should be counted separately, because student votes are far easier to game (have all your friends vote for you) and it felt wrong to let that determine $850 in cash prizes. And the whole thing should feel polished enough that NERPG members walk away thinking this is what poster sessions should be.

No existing tool does that. So I built one. My benchmark was ACS national conferences. A 23-poster event can do things a 500-poster conference can’t: branded materials for every attendee, a purpose-built app instead of generic conference software, and voting that requires you to actually visit the work.

Poster gallery app projected during the opening demo
Walking attendees through the poster gallery app during the opening

The app is a vanilla JavaScript SPA on GitHub Pages with a Supabase backend. No framework, two runtime dependencies. Built in 24 days.

What the Attendee Experienced

You arrived and received a cardstock registration card with a polymer-themed access code: CURE, VULC, MOONEY for industry; GREEN, CHAIN, SPIN for presenters; BLOOM, BLEND, HELIX for students. Scan the QR or type the code. No passwords, no email, no friction.

On login, the app greeted you by name and showed a trivia fact tied to your code. These were sourced from Basic Elastomer Technology and verified, because the audience was rubber industry professionals who would catch a wrong fact.

Codename Facts Each attendee saw one of these on login

Then you browsed the poster gallery: 23 cards with headshots, LinkedIn links, titles, and plain-language blurbs. Not abstracts. A tire compounder isn’t going to parse “polyelectrolyte-encapsulated microcapsules for osmotic desalination” without stopping to Google half the words. Every presenter had to distill their work into one or two sentences that would land with anyone in the room.

Poster Gallery Poster 1 of 23
0 of 3 to unlock voting

At the event, you logged visits as you walked the room. Each tap fired gold sparks from the button. Posters you’d bookmarked earlier flipped from “want to see” to “seen” as you made the rounds.

After three visits, confetti fired and the Vote tab unlocked. You couldn’t vote for a poster you hadn’t visited. Every vote came from someone who had stood in front of the work.

Voting was ranked-choice: rank your top three. What you didn’t see: your ballot was counted in a different pool depending on your role. Industry attendees decided the Distinguished Poster Award. Students decided the Peer Impact Award. One ballot, two separate tallies, two separate podium reveals.

What Kept People Moving

A poster session’s worst failure mode is people clustering at three posters and ignoring the other twenty. The app turned breadth into a game. Your progress bar filled with each visit, with toasts at quarter marks. At 50%, it showed your rank: “You’ve explored more posters than 70% of attendees!” A live ticker scrolled what other people were checking out, pulling you toward work you might have walked past. Total visits ticked up across all phones in real time.

Haptic feedback fired on every interaction. Even on iPhones, where web haptics normally don’t work, taps felt physical.

181 poster visits in 90 minutes. 78% voter turnout. 18 minutes from first visit to first vote.

Under the Hood Realtime, vote integrity, offline design, admin dashboard, testing

Realtime. Supabase WebSocket subscriptions on visits, votes, and event_state. When I flipped the phase from “session” to “results,” every connected phone auto-navigated to the podium reveal within seconds. A 5-second polling fallback caught phase changes if the WebSocket dropped.

Vote integrity. Three PostgreSQL triggers, not middleware, not application logic. enforce_vote_phase blocked votes after results + 45s grace period. enforce_no_self_vote compared voter code against poster presenter code at the database level. Row Level Security locked the anonymous client to SELECT and INSERT only. Admin mutations went through SECURITY DEFINER stored procedures.

Offline-first. State persisted to localStorage on every update. Failed visit logs and vote submissions queued locally and flushed on reconnect. When the archive table incident knocked out server-side writes for the first few minutes of the event, every visit was still cached on attendees’ phones. Nothing was lost.

Admin dashboard. 793 lines of JS. Phase toggle, schedule editor, poster toggles for no-shows, live stats, attendee management, poster traffic bar chart, results tables for both award tracks, nuclear vote reset with type-to-confirm (“RESET”), and a live activity feed.

Testing. 444+ Playwright assertions across 21 spec files. Auth, gallery, voting, admin, offline, deep links, state corruption recovery, self-vote prevention, double-submit. Plus a full event simulation: 29 users, 163 visits, 26 ballots, verified against the live database.

The Brand

The authentication screen’s background is a procedurally-generated crosslinked polymer network: 45 nodes on desktop, 25 on mobile, connected by bonds, drifting with soft repulsion physics. It’s inspired by the molecular network in NERPG’s logo. The whole app follows a brand guide I reverse-engineered for ACS Rubber Division (colors, typography, logo hierarchy, voice). That guide was used for every piece of material produced for the event.

Polymer Network The auth screen background, running live

The Tour Script

Science 1 is UConn’s newest research building: 198,000 sq ft, $220M, opened 2023. I wrote a 35-minute guided tour script for it. The first page tells the guides: “Don’t read from this script. Know the bones, then talk like a person.”

The script has two content layers. The top layer is conversational: what to actually say while walking. The bottom layer, in italicized “if asked” blocks, has instrument specs and technical detail for when an industry visitor asks a pointed question. Guides never rattle off specs unprompted, but they can answer anything. For the core labs, every instrument is framed for the audience: “For rubber and plastics people, this is how you’d look at filler dispersion, blend morphology, or a fracture surface.” The SAXS instrument gets a callout because its tensile and shear stages let you watch nanostructure evolve under deformation in real time, and “that usually gets a reaction from the rubber crowd.”

The route hits 6 stops across two floors: the 204-seat active learning room (tables custom-designed by Payette, the winning shape is called the “canoe”), 9 PhD-staffed core labs, a cleanroom with four bays of increasing cleanliness viewed through observation windows, teaching labs, the nanoBYTE Cafe (“the biophysics people are still jealous”), and the Polymer Floor. A design thread runs through the whole tour: the building’s philosophy is that if you work in a beautiful space, your ideas will be beautiful. The glass walls, the woodland views, the open sightlines. It’s not decoration, it’s infrastructure for better thinking.

The final product was a 921-line LaTeX/PDF with a TikZ route diagram, progress bars, thumb tabs, and a pocket-sized quick reference card with crop marks. Volunteer tour guides Mahdad Mahmoudi and Phuc used it to lead rotating groups through the building.

The Print Pipeline

Every piece of printed material was generated programmatically, most from a single Excel spreadsheet via dedicated Python generator scripts:

NERPG Distinguished Poster Award certificate for 1st place
Award certificates printed on 80 lb cardstock, personalized with winner names post-event
  • 112 check-in badges, each with a unique QR code for app login, color-coded by attendee group (industry, student, presenter, e-board)
  • 24 nametags and 21 poster board ID cards
  • 6 award certificates on 80 lb cardstock, personalized with winner names post-event
  • 24 personalized thank-you cards for presenters and faculty
  • Ranked-choice paper ballots as backup for the app
  • Event poster in four formats: letter size, Instagram aspect ratio, quarter-page handout, and ink-saver variant
  • 7-slide Instagram recap carousel
  • Parking directions video, RSVP QR codes, and ICS calendar file

The auto-email system deserves its own mention. I wrote a Python script that sent personalized HTML emails to all 20 presenters via Outlook AppleScript. Each email contained the presenter’s unique app login code, event details, and award explanations. Presenters missing profile data (headshots, abstracts, LinkedIn URLs) got a tailored nudge with exactly what was still needed. The script had a --dry-run mode to preview every email before sending.

NERPG Spring Event 2026 poster, Instagram format
The event poster, Instagram format, generated programmatically

The pipeline used Python with Playwright for HTML/CSS-to-PNG rendering at 300 DPI, then assembled into PDFs. Pillow handled image compositing. Everything read from the same XLSX source of truth, so updating a presenter’s name or poster title propagated to every material automatically.

I printed the badges and certificates on 80 lb cover cardstock using the department’s large-format printer, one paper weight to cover both use cases.

Catering on a Budget

Feeding ~70 people required some thought. The event fell on the last day of Ramadan and during Hindu fasting periods. Ordering a stack of pizzas would have been easy, but lazy.

To plan this properly, I scraped Big Y’s entire catering menu off DoorDash using browser automation, built a reference document with dietary labels (Vegan, Vegetarian, Indian Vegetarian, Halal), and put together a tiered catering pitch for NERPG with three options from ~$140 to ~$345 depending on headcount.

The final order was a Big Y pickup (~$150 after tax): turkey sandwich platter, party cheese pizza, veggie tray, fruit tray, and a cookie platter. The cheese pizza covered vegetarian needs. I dropped the tuna sub since the halal contingent would be fasting anyway. Mothana, our Membership Engagement Coordinator, picked it all up while fasting himself.

After the poster session, NERPG sponsored a social hour and dinner at Hops 44 from 4:30–7:30 PM at $44 per head. I set up an RSVP form with a “with or without food” option to respect fasting attendees who still wanted to network. I also made it clear that no-shows would reflect poorly. NERPG was paying per plate.

UConn students networking at Hops 44
UConn students and NERPG members networking at the social hour at Hops 44

Day-of

The morning of, I shot a parking directions video on my run: driving footage from the highway to the North Garage, sped to ~65 seconds with branded overlays. Sent it to all attendees before doors opened.

Time Event
12:00 PM Soft start: registration, coffee, poster setup, attendees browse the gallery app
1:00 PM Hard start: poster session + Science 1 lab tours (3–4 tour groups)
~2:15 PM Voting opens in the app
2:30 PM Faculty talk: Prof. Ma
3:00 PM Faculty talk: Prof. Adamson (last-minute sub for Prof. Nguyen)
3:30 PM Faculty talk: Prof. Duduta
4:00 PM Awards ceremony
4:30–7:30 PM Social hour & dinner at Hops 44

We also coordinated with UConn’s Industrial Affiliates Program (IAP) to set up a booth at the event. IAP staff could answer questions about IMS instrumentation and capabilities, and NERPG members got a direct line to explore whether UConn’s facilities could serve their R&D needs.

Registration desk with check-in cards
First-year students manning the registration desk. In the background, Hatice from UConn's IAP booth talks instrumentation with an NERPG member.

First-year polymer program students manned the registration desk. They were also presenting posters, but working check-in gave them a face-to-face introduction with every industry attendee walking through the door, a low-pressure way to start conversations before the poster session even began.

For real-time coordination across the building, I set up a Zello channel for volunteers and e-board members for walkie-talkie style push-to-talk on their phones. It kept tour group timing, poster session flow, and awards prep in sync without anyone needing to leave their post.

Event-Day Performance

By the Numbers

  • 181 poster visits logged across the session
  • 46 unique visitors used the app
  • 36 people voted (78% voter turnout of active users)
  • 108 ranked votes cast (36 voters × 3 picks each)
  • 17 industry voters (Distinguished Poster pool)
  • 19 student/presenter voters (Peer Impact pool)
  • Peak activity: 31 visits in a 10-minute window around 2:20 PM
  • 18 minutes from first visit to first vote
  • 59 minutes 47 seconds voting window (first to last vote)
  • Zero downtime, zero data loss, zero integrity violations

Production Incidents (and Fixes)

The archive table incident: I’d written triggers to copy every visit and vote to archive tables, but the archive tables didn’t exist in production. The migration hadn’t been applied. Every visit INSERT was silently failing. I created the tables live, and the app’s offline-first design saved us: all visits had been queuing in localStorage on attendees’ phones. Once the tables existed, everything flushed in. Zero data lost.

Last-minute presenters: Two presenters showed up day-of (poster #22 and #23). I created their attendee records, added poster entries, uploaded headshots, and deployed, all within minutes.

Vote freeze: I scheduled a pg_cron job to redefine the vote phase trigger at a specific time, silently blocking new votes while keeping the app in “session” phase (no results revealed). This let me freeze voting without triggering the celebration animations prematurely.

Results

Distinguished Poster Award (industry votes, $500/$250/$100):

  1. 1st place:17 points (4 first-place votes)
  2. 2nd place:16 points (only 1 point behind, the tightest race of the event)
  3. 3rd place:10 points

NERPG Peer Impact Award (student/presenter votes):

  1. 1st place:15 points (unanimous: 5 first-place votes, zero anything else)
  2. 2nd place:11 points
  3. 3rd place:10 points

One presenter placed on both podiums: 3rd in Distinguished, 2nd in Peer Impact.

Awards ceremony
Presenting awards with Mykhel at the ceremony
Distinguished Poster Award, 1st place
Zhiming Li, 1st place Distinguished Poster Award

Post-Event Audit

Zero self-votes, zero duplicates, zero votes after the freeze, zero identical ballots. Every active poster received at least one vote.

The Backstory

I’d been building the relationship with NERPG since the previous semester, when two NERPG members came to UConn to give an industry talk. That connection, plus founding the ACS Rubber Division student chapter, plus attending the Global Polymer Summit in Cleveland on a Student Initiative Award. It all stacked up to the kind of trust where NERPG would sponsor $850 in prizes and a $44/head dinner for a student-run event.

NERPG didn’t just write checks. Their members showed up, spent time at posters asking about methods and applications, and hosted us for dinner afterward. Mykhel Walker (Chairman), Cheryl Woodman, Billy Washer, Dan Murphy, Jen Forgue, and the rest of the NERPG E-Board were partners from the start. The event worked because both sides wanted it to.

The organizational skills behind this didn’t fall from the sky. I learned how to plan events, coordinate volunteers, manage budgets, and keep people moving through my time on the GEU organizing committee. Coffee hours, ice cream socials, rallies with fellow grad workers. But all of that was done as a team. This was my first time running something this size on my own.

What I’d Do Differently

The whole event was planned in about six weeks. That compressed timeline rippled through everything below.

  • Tour groups should be pre-assigned. I let tour group formation happen live, and it was messy. Next time, groups and guides get decided and scheduled before the event, not figured out in the lobby.
  • Set up the comms channel before the event. Zello worked great for real-time coordination, but getting volunteers to install it and join the channel on the day of was friction I didn’t need. Next time, that’s part of the pre-event checklist with a deadline.
  • Don’t use Big Y catering. They missed the order entirely. Mothana showed up to pick it up and had to stand there while they made everything from scratch. They offered nothing to make it right.
  • Bake check-in into the app. The registration desk and the app were separate workflows. Merging them would simplify the job for whoever’s working the desk and get attendees into the app faster.
  • Paper ballots don’t work as a fallback. I printed ranked-choice paper ballots for people who didn’t use the app. Nobody used them. People who weren’t on the app just didn’t vote.
  • Poster blurbs need more lead time. I wanted editorial control over every blurb, but the tight deadline meant I had to accept what presenters submitted. With more runway, I’d review and rewrite every one.

The print pipeline and the app are both reusable. I’m planning to package them so other student chapters can run events like this without starting from scratch.

Scope & Tech Stack
MetricValue
Total commits154
Development period24 days
Source JS5,024 lines across 24 files
CSS2,762 lines (hand-authored, no framework)
Test JS3,340 lines across 22 files
SQL1,158 lines across 20+ files
Total codebase~12,284 lines
Runtime dependencies2
Playwright assertions444+
ComponentTech
AppVanilla JavaScript (ES modules), Vite, GitHub Pages
BackendSupabase (PostgreSQL, Realtime, RLS, RPCs)
Print pipelinePython, Playwright, Pillow
AnalyticsPostHog (via Cloudflare Worker proxy)
Tour guideLaTeX, TikZ
Videoffmpeg, moviepy
TestingPlaywright (21 spec files)
CI/CDGitHub Actions

My Own Research

I also presented at the event. Poster #21: “Interfacial Self-Assembly of Graphene Networks at 1 vol% Enables Piezoresistive and Electrothermal Silicone Foams,” advised by Prof. Douglas Adamson. But that’s a story for a different post.


The NERPG Spring 2026 Poster Session & Tour was held on March 19, 2026 at UConn’s Science 1 Research Center. It was organized by the ACS Rubber Division UConn Student Chapter.