I am a manager and programmer with a more recent adoption of open source software, while still leveraging my original .NET background. I have been working in a management/leadership role for over six years, leading direction in technology decisions and growth of teams to provide solutions to our customers.
My focus is to continue learning as a programmer but use my experience as a leader in as much of a capacity as needed.
Software Engineer (January, 2017 - Present)
Part of a growing team of engineers, focused most of my work building OMG’s order service API which will allow the company to manage larger numbers of orders with higher complexity. My main objective of taking a development job over a management job was to ensure that I could still communicate effectively with future engineering teams as a leader.
Responsibilities: Participated in agile practices to ensure delivery of the API for future use in different products/services. Learned a new language (Go) for this specific project.
Director of Software Engineering (April, 2014 - November, 2016)
Managing team of engineers of software development and infrastructure, I introduced a focus on monitoring and automation for deployments, as well as migrating monolithic systems into microservices. Decentralized data sources from a large SQL Server cluster into various data sources more suited to the responsibility.
Responsibilities: Management of agile processes, participating in management discussions and strategy decisions, growth of team and personal objectives as well as guiding direction for technology direction.
Technical Skills: Adopting virtualization (Hyper-V) and containerization (Docker) technologies to allow for a higher utilization of build and test automation as well as a better controlled deployment strategy. New applications and services built with Python and existing applications, written in C#, are being migrated to Mono (perhaps take advantage of vNext). Using data sources such as Elasticsearch and MongoDB for data storage, migrating away from SQL Server.
Sr. Manager (October 2012 - April, 2014)
Managed team of around 25 direct reports that spanned 6 scrum teams. The teams were responsible for two major initiatives which included our flagship website product that receives on average 320 million requests per month (direct and async requests) as well as the supporting image handling software that received 180 million (2.8TB of traffic) origin requests per month.
Responsibilities: Assisted with budgeting for the development department of our business unit (forecasting growth of team, training, expenses [tools, licensing], etc...). Identified and trained project leads to assist with management of the team. Helped our newly acquired development team with new corporate goals, such as a switch of new development to Python (on new projects) as well as helping the team adapt to the culture change between the two companies.
Manager (April, 2010 - October, 2012)
Responsibilities: Restructured the hiring process and introduced a more comprehensive interview and onboarding process. Worked with the owners of the company in interacting with our largest customers (Ford, Acura and AutoNation). Led an initiative to automate our build process that ran on Jetbrains’ TeamCity and a combination of MSBuild and Powershell. Our team took pride in the level of automation we had accomplished.
Key Accomplishment: Assisted with the process of being acquired by DealerTrack by providing support on the technical due diligence early in the acquisition process as well as helping set the immediate.
Developer/Lead Developer (October, 2007 - April, 2010)
Responsibilities: My responsibility was to maintain the flagship product that was written in C# in ASP.NET, heavily relying on customized web controls. Led the effort in refactoring an application, rendering sites in HTML instead of Adobe Flex, which ultimately led to migrating from WebForms to MVC.
During this time, assisted with the hiring as well as creating our onboarding process for our new developers.
Developer (February, 2007 – October, 2007)
Responsibilities: Part of a development team working towards developing an ad server. Tasked with building a web UI interface and some ad serving backend work. Responsible for different parts of the application and working on new features as well as modifications or
fixes to existing features.
Technical Skills: C# in an ASP.NET 2.0 environment with AJAX. Used build tools such as CruiseControl and MSBuild to keep a continuous build executing regularly. Subversion and Surround as source control. Mentored junior programmers to focus on code maintainability as well as keeping true to the team’s coding standards. Worked on making the existing application more maintainable by refactoring as much logic into the business objects rather than presentation layer.
Technical Architect/Senior Developer (February, 2006 – February, 2007)
Responsibilities: Part of a team of 4 architects that split role between architecture and development. The team was tasked with integrating an existing (classic ASP) LMS system and building a more scalable solution for current customers using .NET 2.0. The role also consisted of mentoring developers that had mostly a classic ASP background. Introduced a continuous build process using tools such as CruiseControl.NET, NAnt, NUnit and other free tools to aid in our development. My role was split between architecture that ranged from software design to infrastructure design, as well as developing most of the base libraries to be used by the rest of the development team.
Technical Skills: C# in an ASP.NET 2.0 environment. Used tools such as CodeSmith for DAL code generation. Leveraged tools such as nUnit, FxCop, msbuild, Subversion and CruiseControl to help with the automated build process as well as development process that helped with our iterative approach to the project. Recently, WCF and Atlas were being evaluated to help with the development as well.
Software Developer (October, 2005 – December, 2005)
Responsibilities: As the sole software developer on the projects presented at Reiger Consulting, I had the responsibility to plan, develop, test and deploy the projects envisioned by the project manager. With a specification in hand, all development with these projects were planned out and had a schedule to deliver testing, refactoring and deployment. Clients of Reiger Consulting were given the code written for their projects, so extensive documentation was generated to ensure they had the necessary tools to update the projects as necessary.
Technical Skills: Focused on .NET, both C# and VB.NET to complete projects for the consulting company. I was the primary developer a VB.NET windows application and C# ASP.NET application for clients of Reiger Consulting. Extensive work with stored procedures and UDF’s to keep most of the logic in the database, as the client’s resources consisted of mostly database programmers. Leveraging the knowledge gained at Microsoft, troubleshooting Crystal Reports issues was quick and efficient.
Application Developer (July, 2005 – October, 2005)
Responsibilities: My primary responsibility in this position was to develop web applications for internal use. I was brought in to help finish an ASP.NET current project that had slipped its due date. The project had no set of defined requirements, so some requirement gathering was needed to complete the project. My role on this project was one of the two developers who implemented the new requirements. Additionally, I was tasked with a new project as the primary developer, though the database schema and the requirements had already been gathered by a project manager. My primary responsibility was to design and code the project according to the specifications provided.
Secondary roles were primarily as a resource to other developers in troubleshooting development issues, where I leveraged my newly acquired Microsoft skills.
Technical Skills: The technologies that we used as a team, and that I implemented accordingly, were standard Microsoft web technologies that include ASP.NET, CSS, and some HTML. Using an existing framework for data access, we avoided direct development with ADO.NET by leveraging a data framework that used a combination of reflection and code generation tools. The use of SQL to write and modify existing stored procedures was also a necessity.
Visual Basic Developer Support, (July, 2004 – July, 2005)
Responsibilities: Handle cases called in by Microsoft customers. Primary responsibilities include ability to identify issues that end user is having by scoping out the problem. Cases that reach our team are non-trivial and difficult, which requires the ability to constantly have different solutions or approaches to a problem. Customers call in with issues that are described as bugs or inability to perform a certain action. As the engineer, I have to help clear up the symptoms, identify the root cause and help come up with solutions for the issue.
Technical Skills: Focus on VB6 and VB.NET technologies. Ability to analyze problems and diagnose issues with the use of memory dumps, monitoring tools and other diagnostic tools. Increased debugging abilities beyond the IDE, into Windows debuggers, memory allocation and performance issues.
Ability to troubleshoot environment issues as well as development issues. Towards the end of my career I took some C# cases which allowed me to focus on both languages.
Software Engineer, (April, 2004 – July, 2004)
Responsibilities: Assist in development and maintenance of NewHomeSource.com. Current project requires translation from English version of the site to Spanish as well as migrating from the 1.0 Framework to the 1.1 Framework. Primary responsibilities are focused on the use of technology to efficiently offer the current corporate site in another language, as well as maintain and fix any issues or enhancements in the current site.
Technical Skills: Technologies used are primarily C#/VB.NET, ASP.NET, leveraging caching technologies and perform some database work.
Developer, (May, 2002 – April, 2004)
Responsibilities: The primary position was as a developer for the company. The second position held at this company requires management over information systems developers, DBA and other resources. This job requires skills in integration of enterprise-wide software, as well as managing development of in-house applications. Primary responsibilities include project management, providing technical expertise to developers and database administrators in the areas of .NET, supervising a team of technical people and building a new architecture for the company’s operations.
Technical Skills: Primary technical skills used for this position require knowledge in VB6, T-SQL, OOP concepts, security (network and application), ASP 3, and HTML. Secondary skills require extensive knowledge of Microsoft’s Server software family (Application Center, SQL Server, Commerce Server), as well as the .NET framework.