C# Developer in Annandale, NJ, United States
CTO2016 - PRESENTBallStreet Trading
- Developed a greenfield mobile app in Ionic 2.
- Guided a UX consulting team to produce beautiful designs for our platform.
- Managed several part-time developers.
- Built a real-time trading engine to power our system, with a true stock market style order book and near-instantaneous settlement of trades.
- Helped pitch to a multitude of investors to raise capital for the company.
- Did the software architecture and design for the entire software platform.
Adjunct Professor2011 - PRESENTStevens Institute of Technology
- Taught introductory programming.
- Taught advanced systems programming for Unix environments.
- Taught advanced network stack code, including a reimplementation of the TCP/IP networking stack.
- Managed graduate students who wanted to pursue independent study.
CTO2012 - 2016FunnelFire
Technologies: C#, TypeScript, MongoDB, ElasticSearch, RavenDB, RabbitMQ, Facebook, Twitter, LinkedIn, ASP.NET MVC, SignalR, Web Sockets, Angular, Ionic, SendGrid, Email
- Built a real-time sales intelligence engine from the ground up.
- Wrote sophisticated back-end code that crawled various APIs such as Facebook and Twitter as well as scraping various internet pages to build rich profiles on companies.
- Built a real-time front-end that integrated with the back-end using SignalR/web sockets to update company profiles on the user's screen as soon as new information was available.
- Fetched news from a variety of sources, such as Facebook feeds, RSS, and a news API, and stored it in Elasticsearch before generating feeds that were relevant to company profiles.
- Managed and mentored several developers.
CTO2010 - 2014FivePM Technology
- Developed a real-time vehicle tracking and dispatch system.
- Worked with Windows Azure cloud technology to use as back-end infrastructure in order to ensure the fulfillment of service level agreements.
- Used enterprise service bus middleware technology to handle all requests by users or vehicles.
- Developed hardware and software for a Linux-based embedded computer platform to put onto vehicles to report vehicle location, handle fare collection, and deliver information needed by passengers or operators.
- Managed interns responsible for large projects such as a system-wide administrative console intuitive for city administrators.
- Interfaced with the cell phone text message system to develop a short-code SMS mechanism for locating buses.
- Built a call-in system that used text-to-speech to read the vehicle location and ETA, after a senior citizen user study.
- Developed apps for iOS, Android, and Windows Phone 7 by leveraging both Java/Swift as well as Xamarin.
Software Developer/Analyst2009 - 2012Deutsche Bank
Technologies: Geneva, C#, .NET, Java, Prism, MVVM
- Developed a real-time log file analysis engine for legacy bank applications.
- Created an automated testing framework for a trade processing loader, facilitating an upgrade to Geneva 7.6.
- Developed a “high-bandwidth” framework in C# in parallel to and compatible with a Java framework, avoiding garbage collection and other activities that could cause a performance lag.
- Implemented and managed a collaborative development environment, bringing teammates from Bangalore, the United Kingdom, and the United States together on one platform. Developed business processes for use of the environment.
- Created a scheduler system allowing business users unfamiliar with IT to schedule complex jobs.
- Created a wrapper around a buggy vendor tool to avoid a $15,000 redevelopment task by the vendor.
IT Integrations Consultant2008 - 2009World Travel Group
Technologies: SMTP, Postfix, Google Apps, Windows Server, HyperV, VMware, Microsoft Exchange
- Planned, tested, and integrated a full overhaul of IT solutions, replacing a dozen legacy servers with a virtualization platform.
- Successfully outsourced email to Microsoft Hosted Services on an Exchange platform after a test period involving both Google Mail and Microsoft Exchange.
- BallStreet App (Development)https://play.google.com/store/apps/details?id=com.ballstreettrading
Using Cordova and React, I did the system architecture and then constructed a trading app for simulated "stocks" representing a team winning a sporting event. Real-time market information is transmitted via web sockets from the back-end, and graphs/charting is done with the D3 library. An Android version of the app is now released and an iOS app is making its way through Apple review.
- IoT, Back-end, Front-end, and Embedded Linux for Methane Well Collection Mesh Networked Sensor/Monitoring Devices (Development)https://www.apisinnovation.com/
Evaluated the existing platform and explained the pros and cons of reworking the existing code vs. starting from scratch, did a formal estimation of time/effort required to complete the project, and architected and designed a new platform with a new tech stack (Cordova, React, Node.js, and Express).
Managed the project, working with relevant stakeholders to ensure that goals were met. I set up and managed a CI/CD system using CircleCI and set up and maintained Azure-based infrastructure to host the platform.
Developed the entire front-end web interface (TypeScript/React) for supervisors and a hybrid mobile application (TypeScript/Cordova/React) for employees.
Oversaw the lead back-end developer and acted as secondary developer on back-end code (TypeScript/Node.js/Express).
- Custom CMS for Travel Agency (Development)
I built a custom CMS for World Travel Group, a large multi-brand travel agency in PHP, the client's preferred language. The primary goal was the ability to integrate pricing dynamically into the site from a legacy booking engine. Also, I used HTML's "contenteditable" property to implement sophisticated WYSIWYG editing into the site. This was built in 2006, before similar editor components were available as freely available open-source libraries.
- BallStreet Proof-of-Concept App (Development)https://play.google.com/store/apps/details?id=com.ballstreettrading
Using Ionic and then Ionic 2, I built a trading app for simulated "stocks" in the outcome of a team winning a sporting event for both iOS and Android platforms. Real-time market information is transmitted via web sockets from the back-end, and graphs/charting is done with the D3 library. We did an MVP release in Ionic and then ported it to Ionic 2. We were ultimately forced to move off of Ionic 2 because the platform was not released by the time we were nearing our debut, but the port was very easy to accomplish and the platform worked very well.
- FunnelFire Back-end Engine and Architecture (Development)
I built a real-time sales intelligence tool for researching information and the latest news about companies while at FunnelFire. It is intended to be used for pre-call research as well as to stay up-to-date on a company's behavior.
The engine was built in C# on a service bus architecture, with a series of ingestors running to pull data from a variety of data sources (Facebook API, Twitter API, CrunchBase, Lexis Nexis, Freebase, AngelList, web crawling, etc.) in response to messages and then to publish results as they were found back onto the bus. A company comparison algorithm then compares the company profiles found and, depending on match confidence, either merges the results into an existing company, creates a new company, or creates a potential merge for human verification via Amazon Mechanical Turk. News stories are fed through the same bus when discovered, where they land in an Elasticsearch database for future querying. A trie of all company names is stored in a proprietary self-designed database system, rapidly matching company names found in the article to help start off various push notifications and email alerts.
- Teaching Computer Science at Stevens Institute of Technology (Other amazing things)http://web.stevens.edu/facultyprofile/?id=1692
I'm teaching a variety of courses to undergrads and grad students at Stevens Institute, such as advanced data structures and algorithms, introductory computer science, Linux systems programming, low-level TCP/IP networking, a crash course in advanced Java for C++ developers, and software engineering topics such as QA.
- FunnelFire App (Development)
I built an Ionic (AngularJS) app for iOS and Android during my time at FunnelFire. The app does not show off my ability to create beautiful apps—the app looks fairly kludgey—but rather my ability to rapidly iterate under strict time constraints. The app was built in less than a week in order to appease various sales managers who would not buy our product without there being a mobile app presence. Much of the code was shared with the front-end web application, since they're both built in AngularJS, which improved long-term maintainability.
- MedChat (Development)https://www.medchatapp.com/
I built the chat widget for MedChat, an Olark-like real time chat engine with medical compliance.
- Real-time Vehicle Tracking System ("Treadmarks") (Development)
While at FivePM Technology, I built a real-time vehicle tracking system for shuttle buses. The vehicles carried an onboard embedded Linux platform that I developed and maintained, a cellular modem, and communicated via a special low-byte count protocol I developed to transmit vehicle position to a server I wrote that sat on Azure. We then took those positions to calculate ETA to bus stops, and responded to requests via text message and phone calls via Twilio to report the ETA to a stop or the current shuttle locations. We also delivered the location of the vehicles on a live map online, using web sockets to update the vehicle positions and interpolating between data pushes.
The entire platform was built on .NET, with Mono running on the buses and various workers written in C# and ASP.NET with SignalR powering the back-end and web app.
- Taxi Hailing System (Development)
I developed a primitive version of an "Uber" for the Hoboken, NJ taxi system. Hoboken's taxi drivers did not have smartphones and were reluctant to have a GPS device onboard due to "big brother" concerns. However, Hoboken is also only a square mile in area.
Text message-based hails indicating where a rider was located would trigger a message to be sent out to the highest rated drivers that had sent a text-based command into the system reporting that they were "online." One of those drivers could reply reporting that they are going to accept the ride. If they were the first to reply and the request hadn't timed out, they would be texted back with the location of the rider and the rider would receive a confirmation text.
We then also used Twilio to allow the driver and rider to communicate via phone or text without releasing either of their phone numbers to one another. At the end of the ride, passengers were asked to rate their driver from 1 to 5, and low-rated drivers were deprioritized in the system for receiving text hails.
The platform was built in C# with heavy utilization of Twilio. Ultimately, Uber of course took off and Hoboken gave up trying to control the internet-based hailing of their taxis.
- StackOverflow Top 2% Overall Ranking (Other amazing things)http://stackoverflow.com/users/172029/david-pfeffer
I am in the top 2% of overall user reputation on StackOverflow.
- Guest Instructor at Webb Institute (Other amazing things)
I taught a special topics course at Webb Institute, the renowned ocean/naval engineering school on Long Island, NY. The school did not have anyone capable of teaching a complex programming course, so I was brought in to instruct the students in a crash-course in programming coupled with data structures and algorithms over the course of a semester.
Frameworks.NET Core, Onsen UI, Ionic 3, Redux, Cordova, Ionic 2, .NET, Angular, PhoneGap, Electron.js, Ionic, AngularJS, ASP.NET MVC, Express.js, React Native, Windows Presentation Foundation (WPF), Windows Communication Framework (WCF)
Libraries/APIsAsync, Node.js, Flexbox, React, React Redux, React Router, LocalStorage, REST APIs, Google Maps API, Facebook API, D3.js, Twilio API, Twitter API, SendGrid API
ToolsCordova Plugins, CircleCI, Adobe Photoshop, Amazon SQS, AWS Push Notification Service (AWS SNS), Git, Microsoft Visual Studio, GitHub, Webpack, Webpack 4, Webpack 2, Webpack 3, Gulp.js, Fastlane, SendGrid, AWS SES, Bitbucket, Mercurial, Trello
ParadigmsConcurrent Programming, REST, MapReduce, Spatial Databases
PlatformsArduino, Android, Amazon Web Services (AWS), Azure, iOS, Docker, Visual Studio Code, Embedded Linux, Bluetooth LE, Twilio
StorageMongoDB, Elasticsearch, Microsoft SQL Server, RavenDB, AWS S3, Couchbase, PostgreSQL
OtherLarge Scale Distributed Systems, Concurrent Computing, TCP/IP, Industrial IoT, Distributed Systems, Software Architecture, PhoneGap Plugins, Pixel Perfect, Code Architecture, OOP Designs, SMTP, ZigBee, SVG, CSS3 Animation, Yocto, Bash Scripting
- Master of Science degree in Computer Science2007 - 2009Stevens Institute of Technology - Hoboken, NJ
- Bachelor of Science degree in Computer Science2005 - 2009Stevens Institute of Technology - Hoboken, NJ