- I've written my first book: Deployment Driven Design.
- One of my biggest honors has been being flown to Redmond to help Microsoft design SharePoint developer exams for the 2007, 2010, and 2013 platforms. This makes me a Subject Matter Expert (SME) in the technology.
- I created the Hybrid Provider that allows both AD and SQL users to be authenticated against the same SharePoint site, which allows our clients and consultants to collaborate on projects. He then wrapped it up into a SharePoint Solution and wrote a WPF installer that uses animated progress bars and WFC that allows users to easily install it on their environment. After being released on CodePlex, it has over a thousand downloads!
- I am a leader of the Rightpoint Architecture Council, which is the senior technical group at the firm.
- One of my first side projects at Rightpoint was standing up our TFS environments. In addition to setting up the governance and policies, I built a Silverlight/WCF-based project generation tool that automates Visual Studio and uses the TFS API to provision team projects based off of Architecture Council-approved templates.
Click on a logo to view the details of the project I did for that company.
Utilities // Q3 2014 - Q4 2015
In this $2M+ project, I had the pleasure of designing and building Exelon's public facing website on SharePoint 2013. I followed Microsoft’s "Mobile First, Cloud First" paradigm to create a fully responsive site on the frontend with a sophisticated architecture on the backend. The technology stack includes wull TFS builds & ALM, cloud services, Redis cache, dependency injection using Castle Windsor, TypeScript, NPM & Bower – all with almost no SharePoint server code.
Things started with me providing technical oversite for the UX / Creative agency that was chosen to do the look and feel. They had never seen SharePoint, so I had to train them up on the product, while balancing the prudence of knowing when to push back on scope, and when to bring their dreams online.
Once they delivered us their ~300 pages of wireframes, it was time to assemble and manage a large development team to breathe life into them. I played all roles on this project: everything from PM to arch to developer to build master to client liaison. After almost a year of development, we delivered this monster site on time and under budget. This truly was my baby.
American Medical Association
Healthcare // Q4 2014 - Q4 2015
Over the last year or so, I've run a few interesting SharePoint 2013 projects for the American Medical Association. It has been an honor working with the passionate people at the AMA! However, when it comes to SharePoint, it's always possible that blood pressure will quickly boil – even in a medical setting.
Our first project tasked us to move a gigantic site collection from SharePoint 2007 over to 2013 using a third party tool – skipping 2010 altogether with no opportunities for a rewrite or custom migration strategy. A week later, when the dust cleared after the production run, we were left with a half-broken site and a rapidly-approaching deadline.
PowerShell to the rescue. It ended up only taking a few insane scripts to loop through everything and fix all kinds of things: dead list views, confused XSLT web parts, mangled IA, etc. Some tactical server code filled in the holes. It wasn't pretty, but it got us live. The second project, a knowledge sharing platform, was much smoother, and a bittersweet reminder of just how fast you can build a SharePoint site using server code if it's the correct solution for the situation.
Retail // Q2 2014 - Q4 2014
Mondelez was spun off from Kraft Foods as a new parent company that umbrellas all the delicious snack food brands they own. The lobby of their global headquarters has aisles and aisles of cookies, chips, and desserts that makes it one of the happiest places I've ever been. However, the challenge of building their intranet on O365 Dedicated soured this otherwise sweet project.
That said, we were able to turn these challenges into unique development opportunities. Since O365D deployments require the completion of a ~60 page word document to be submitted to Microsoft, and you only get five per year, I had to design the system in such a way as to minimize server code – which aligned my team very well with Microsof's client API-centric paradigm shift for SharePoint 2013 custom development.
Staffing // Q1 2014 - Q3 2014
SmartSource is a small, family-owned IT staffing & recruiting firm that was running their entire operation via sending Excel spreadsheets to each other. Needless to say, this "system" didn't scale, didn't track history, didn't provide accurate reports, and didn't help with the increasing amount of manual data entry.
I took this project on in order to keep my MVC / EF skills sharp amidst all the SharePoint work I was doing. And sharpen my skills it did! Based on MVC 5, this site imports job placement data from a backend system, emails users notifications of new assignments, allows them to enter hours in a timesheet module, calculates overtime on a state-by-state basis, and facilitates an approval workflow.
As a pet project, I was able to take my time in learning several new (to me) technologies: Bootstrap, Bing Maps, Azure Storage Containers and WebJobs, Knockout, Entity Framework Code First, and ASP.NET MVC Web API to name a few. But beyond the tech, this project also helped me boost my BA and PM skills, and allowed me to really appreciate what has become one of the most satisfying experiences in my career: seeing users get cozy with their first custom system after living on Excel.
Aviation // Q3 2013 - Q4 2013
I was sitting on a very delayed flight in Mexico when I learned about United and Continental's merger. When the pilot informed us that the issue was due to paperwork, I knew that whomever was in charge of reorganizing United's data was in for quite a challenge. As it turns out, that became my problem.
My role was to use SharePoint 2013 to help organize the CMS of the newly-birthed aviation giant so that content can be entered once and distributed across all their digital channels: web, mobile, kiosk, app, etc. As a technical advisor to United's IT team who was building out the site, I instilled in them SharePoint best practices with the new app model and using PowerShell to provision their new environment.
Together with Microsoft's SharePoint architects, we scoped out a system that not only leverages enterprise functionality like variations, translations, and multi-farm workflow, but also has a tight taxonomy and information architecture to keep content authors efficiently to drive the most complex site I've ever designed.
Parks & Recreation // Q2, 2013 - Q3 2013
In my first SharePoint 2013 website, I moved back into the development role to not only learn the new technology, but at the same time use this project to help mold Rightpoint's approach to SharePoint 2013 projects.
This site is built using the new SharePoint 2013 app model. A high trust, server-to-server provider-hosted app implemented in MVC 4 provides the data access layer and the online store portion of the site. The CMS side is more conventional SharePoint with a UI following the responsive design paradigm.
Since the SharePoint 2013 development paradigm is very different from what the industry has gotten used to with 2010 and 2007, my job was to flatten the learning curve for Rightpoint, and keep the project on schedule despite all new challenges that had to be overcome.
Utilities // Q3 2012 - Q2 2013
In another "save the day" project, I was called in to patch the leaks of this skinning ship of a SharePoint 2010 intranet site. Citing massive memory leaks, poor performance, and a complete lack of architecture, Exelon had lost faith in their chosen vendor. I was given a large team and a short timeframe to not only launch the site on time, but save the IT department's reputation in the company.
Using PowerShell structure retrofitting scripts and Deployment Driven Design principles, I was able to introduce a solid data access layer and other architectural components (such as common caching, error logging, and SharePoint helper utilities) to the code base.
I then orchestrated automated builds with remote PowerShell deployments, content retrofitting activities, TFS ALM with test scripts and issue remediation, and a team of developers fixing bugs from the existing code base. The result was an on-time, under budget project and very happy and relieved Fortune 100 Company.
Online Age Verification // Q3 2012 - Q4 2012
AgeStat is a startup company that provides online age verification services to companies who sell age-restricted products online. Beyond developing the web site, I designed and built the age verification process itself. Unlike other sites who perform similar types of identification, AgeStat actually talks to each state’s DMV’s backend to validate users.
As they partner with more and more states, AgeStat will be able to support more and more businesses. All these clients have to do is include a script in their web site, and they will be ensured that no one underage can access it. This is all accomplished with JSONP and WCF services.
The rest of the site is rounded out with MVC, EF, and jQuery. It uses a customized version of the ASP.NET membership provider to store users’ ages without matching them to any personally-identifiable information. All such data (for example, driver’s license numbers) is encrypted and safe.
Outplacement Services // Q2 2012 - Q4 2012
Resition was a startup company that provided outplacement services to downsizing companies. As the sole architect / developer, I built it following my standard MVC / EF architecture for the backend, and using extensive jQuery UI for the pages themselves. The user interface also had a lot of modern touches with jQuery animations, CSS gradients and rounded corners, and AJAX updates.
I also, somewhat uncharacteristically, used some cutting edge third party controls to provide very robust functionality to our users. For example, part of the outplacement process involves meeting with a career coach. To this end, we used TokBox for Flash-less video chat.
Then, after a user uploaded their resume, we used Crocodoc to convert it into an HTML 5 document that supported inline, real-time editing and commenting! Unfortunately, as is the case with most startups, Resition never really got off the ground.
Lurie Children's Hospital
Healthcare // Q2 2012
Lurie Children's fired their vendor with less than a month before the site was supposed to go live. This release date was unmovable, as it coincided with their new hospital opening and marketing campaign. I led the team that made sense of the failed code base and turned around enough key features to make this a successful launch.
After go live, I was immediately asked to rearchitect the site to not only implement all remaining features from the previous vendor's back log, but also evolve the CMS of the new site so that the client's marketing team could take over content creation tasks.
Also, I organized Rightpoint's involvement in a community service event run by the hospital: The Eric & Kathy Radiothon.
YMCA of the USA
Non Profit // Q3 2011 - Q1 2012
Under a tight timeframe, I co-lead a very large, hybrid team of SharePoint developers and designers to success in rebuilding the YMCA of the USA's intranet. I worked closely with SharePoint "no coders" to delegate tasks and build in deployment mechanisms to seamlessly integrate their work into TFS and the builds. A result of this was the "Content Query Host" web part, which wrapped their Content Query Web Parts in a container that plugged it into our caching and error logging infrastructures.
In addition to my team, I helped the highly technical client development team – who had very few positive experiences with SharePoint – build confidence in the product. They ended up promoting it internally for new projects.
I also worked closely with both the Rightpoint and client project managers to make sure tasks were completely on time and in order; this project was my transition into technical leadership roles on projects beyond what an architect would do. I helped triage issues to keep our scheduled deployments in place, and facilitated these release schedules so that the testers could remain efficient with their QA. But I also wrote a lot of code!
Athletic Wear // Q1 2011 - Q3 2011
This application is the process management collaboration tool for New Balance's shoe designers. My team built a beautiful Silverlight application full of heavy design layers, animation, custom navigation, as well as SharePoint 2010 and Office integration. The backend is a combination of SQL Server 2008 R2, WCF 4.0, .NET RIA Services, and Entity Framework 4.0.
All assets uploaded to the system are stored in SharePoint 2010, which we also leveraged for the search and security capabilities of the application. Since this tool is built for designers, our platform support crossed PC and Mac, while pervading essentially all browsers. In this app, Macs running Silverlight can open documents stored in SharePoint in Office with full enterprise collaboration features working!
I also built a video encoding sub system for this site. Users can upload raw video via a WCF bidirectional duplex service which automated Expression Encoder server to convert it. The resulting files are formatted to use IIS Smooth Streaming technology so they can be viewed crisply and clearly to New Balance associates across the globe.
Research // Q2 2010 - Q4 2010
In my first SharePoint 2010 project, I designed and built a very sophisticated and extremely complex information architecture and taxonomy for the National Opinion Research Center of the University of Chicago (NORC)'s new public website. This allowed the meganav and content population of the site to be flexible and intuitive.
We used SPMetal, a brand new technology, to facilitate load testing with a custom-built data population tool that allows us to tune performance on the hosted production environment and hit our page load time goals. This became the skeleton of our data access layer, which powered NORC's critical requirement of intra-content relationships. For example, departments link to people who link to projects who link to research who link back to departments, and so on; it's all dynamic on the backend.
I made deployments trivial by creating PowerShell scripts and code-powered provisioning features that, with a single command, built out the entire site. Everything from site structure to web.config modifications to search configuration was automatic. It was this project that inspired Deployment Driven Design.
At The Laundromat
Film // Q1 2010 - Q3 2010
At The Laundromat was built to not only serve as the official web site of the documentary by Vanessa Yee entitled "The Laundromat," but also to be a forum to foster ongoing discussions that the film was created to inspire. It is about the inter-generational struggles faced by Asian American families.
This was my maiden architectural voyage into MVC. The system has a SQL backend and Entity Framework in the middle. In addition to the standard MVC paradigm for building data-driven web sites, At The Laundromat also has extensive administration functionality so that Vanessa and the other producers can grow the site along with their audience.
For example, they can provision, retire, and moderate all of the forums. In addition, user accounts can be provisioned on behalf of older people who might not be comfortable putting their information into a web site. There is also a lot of CMS functionality so that they can control not only the content of the landing and interior pages dynamically, but also tweak the aggregation queries by featuring other stories.