Wide acceptance of the React.js one-way binding is something that fundamentally changed the way we approach projects. Sharing a single source of state across components via properties and managing the lifecycle can get very complicated, but results in high performance applications. The React.js and Webpack repositories are fast-moving targets and it's important to stay on top of versions and not always leap off the bleeding-edge.
Recently I've worked on projects that transpiled TypeScript into ES for the browser. I prefer JSX because many of the third-party React.js components are written in it and there seems to be more examples and tutorials out there for JSX. It's no fun chasing down missing type libraries when you get an error like: Type 'Readonly<any>>' is not assignable. Yeah, you know.
Another core competency is building to RWD best practices. There is always a new technique and browsers continue to challenge us with inconsistencies. I’m excited about the Accelerated Mobile Pages (AMP) project from Google and I think there are ways to incorporate some of those concepts into standard development to make highly efficient, quick loading sites.
For front-end developers, templating frameworks such as Bootstrap and Css pre-processors like Sass have forever changed the way projects are approached. We frequently work with designers now who build to the Bootstrap grids and every site we create seems to start with “container-fluid”. I require that even small projects are scaffolded with Sass to make them efficient and maintainable.
I write C# code for building out back-end components. All of the microservices that we developed at Epiq were written using .NET Core. Even the React.js apps were hosted inside Core applications to handle authentication and APIs.
In the MVC world I used Razor template markup for views. I’ve been more focused on React.js lately, so it’s been a while since I’ve been into a true Microsoft MVC project, but I’m happy that WebForms is finally a thing of the past.
For source control I’m skilled with Git and had a touch of TFS a few years back. I regularly use Visual Studio, prefer Chrome over Firefox and can be pretty handy with Photoshop. I'm a fan of Agile processes, but I've been told that what passed for Agile at my recent employer wasn't how it was "supposed" to work. I'm looking forward to doing Scrum/Agile the right way!
I've been fortunate to work on outstanding teams and consider all of my accomplishments as group efforts. Several of the projects listed below were ones where I was the lead or sole developer.
Worked on a small team that developed .NET Core microservices for a variety of internal applications. The projects were heavily scaffolded by our senior developer, so I can't take credit for most of the heavy lifting. However, I worked on a variety of tasks to add new functionality including adding business logic, and building API controllers. I developed build definitions with VSTS, and managed deployments using Octopus. The services were deployed into VMs, and we were starting to go down a path of preparing them for containers such as Docker.
A simple skinning of React-Table.js from a Material Design based mockup, this was a welcome departure from strictly back-end API development and got me back into React.js and Sass work.
Also: Redux, React Router
Acting as the lead developer, this was a large website rebuild using Umbraco as the core framework. Working closely with content strategists and designers this was a complete rebuild of an existing website. I was able to utilize all my skills from core-modelling and architecture and through to module creation and rendering. Many of the base objects and components from this build went into a common library for future Umbraco projects.
The entire team was involved in this enterprise scale build-out of a new website for Sharp Health Plan using the Sitefinity CMS. My contributions included everything from developing custom modules to managing the deployment into Azure. The core of the front-end was built by a peer, but I participated in quite a bit of Html, Css and Sass development and continued to contribute to this project as on-going maintenance. We published from Visual Studio into Azure and maintained a "git-flow-workflow" source control project.
I've worked on a variety of projects for Persil ProClean including developing a fully-responsive Super Bowl LI landing page to support social media and influencer campaigns. The landing pages we build in-house are iFramed into the clients Adobe CQ5 system and make use of customized scripts that allow them to be fully responsive even within an iFrame!
A multi-site Umbraco project that allows the client to quickly spin-up microsites that are used for marketing of Group Insurance products. This was one of our first large builds that started with a third-party package installed on the core Umbraco framework, and ended up being used as a best-practice baseline project.
One of the first Umbraco projects that I worked on, this is more-or-less a simple CMS structure where back-end properties are used to render specific content areas rather than true ad-hoc site building. I worked very closely with the designer, and it was a little complicated at times because each page required a slightly different template.
Steele and I have worked together on the same team for 7+ years while at Apollo. Jon is consistently rock solid. His mad Css skills coupled with an understanding of why the UI is designed for usability is great to be around. I trust the guy with my designs and with his portion of the work. He makes things happen and tends to strengthen the team around him. He communicates. He's creative. I won't say anything about thinking outside of the box, because that phrase is terrible, really. But he is creative. He solves problems. He shows initiative and wants to learn. He understands strategy, architecture and process. He thinks metrics and analytics naturally and contributes. And contributes. Jonathan Steele is someone to build a team around and I recommend him without hesitation.
Interaction Designer UX at Pearson Education
I've been working as a developer for a few years...
Coming in on the ground-floor of Epiq's Modernization Project, I was hired into a Scrum team that focused on building microservices. We followed Domain Driven principles and churned out APIs and services that were intended to be consumed by a variety of business-line applications. Early in the summer of 2018, our team jumped into front-end projects using React.js with .Net Core back-end for authentication. We used Visual Studio Team Services online for build definitions and Octopus for deployments.
Working for an agency allowed me to contribute to a wide variety of projects, each one unique and challenging in their own way. Most of my time with Sitewire, I focused my energy into front-end development, but still retained the usual survival skills as a full-stack developer. I was introduced to the Umbraco CMS framework and really become enamored with using it as a rapid development tool for any size of website.
I started with Apollo Group working on student-facing websites for the University of Phoenix and eventually landed in the Identity Management group. Working with a small team of dedicated designers, I was introduced to User Experience and Responsive UI concepts that I continue to draw from. One of the aspects I enjoyed most was working with a tight-knit team, hashing out aspects of the technical design and working towards developing an outstanding user experience.
Duties focused on integration of proprietary sales management tool and included heavy SQL and PL-SQL scripting. In 2000, I moved into a new startup division for a SaaS product being developed called SalesLobby.com and returned to programming, working with Visual Basic, ASP and VBScript.
Becoming a “road warrior”, I traveled around the United States installing and providing training for software designed to help Fortune 500 companies complete due-diligence assessments of their financial records prior to Y2K.
Working for Sun Health's Transcription Department. I supported hardware and software for full-time telecommuting transcriptionists. I continued to learn about software development on my own time and started coding a proof-of-concept client/server application using Visual Basic 5 that would allow transcriptionists to work completely off the grid and transmit completed files back to the hospital securely via TCP. I didn’t know it at the time, but I was essentially building a VPN.
I actually resisted my first Umbraco project because I felt it was going to send me down a path of being a “CMS jockey”. Resistance quickly changed to evangelism! Umbraco is a bare-bones open-source framework that is truly .Net MVC based. It’s not MVC bolted on top of WebForms like some other .Net CMS products. If you need a custom controller action and associated views, or a RESTful api, then go ahead and build it. Umbraco doesn’t care. A while back I did a bunch of work modifying a third-party framework that has become a baseline “starter kit” for new builds that allows me to quickly spin-up new sites.
I haven’t had the privilege of working on many Angular projects, so my skills are rated at “survival” and was limited to AngularJS 1.x. I’m happy to dive into Angular 2.0 (and embrace TypeScript) but it's been 18 months since I've travelled in the MVVM world.
The truth is that I used to do quite a bit of database work, writing stored procedures, building complex DTS packages, but please don’t tell anyone. Lately, for writing data access, it’s so much easier to take a Code First approach using Entity Framework or other ORMs. So, while it’s not something that I seek out, it's worth including it for completeness. I feel that despite the joy of finding “3rd normal”, the old-school data schema design with all the CRUD in stored procedures is a thing of the past.
We don't really have a lot of elevators in the Phoenix area, so maybe this is the "waiting in line for coffee" pitch. Just a few bullet points that I'd like you to remember about me.
I'm a perfectionist and it's always a challenge to declare a project "complete" over "perfect".
I love threading the needle between what a developer wants to throw into a product versus what the requirements actually request.
Of all the programming principles "Don't Repeat Yourself" (DRY) is my favorite and I think it's important to spend the time up front to build reusable components.
We're only as good as our team. I know some stuff, but I'll never pretend to know everything.
For some reason I seem to have a knack for bringing ideas together and running architecture and core modelling sessions.
Most shops keep their developers in a place that is always referred to as "The Cave". I prefer sunlight and I'm the Unicorn that you'll use to communicate with clients and business units about architecture, core modelling, and development processes.