Casey Kramer
- 15 years experience in the IT industry
- 10 years software development experience
- Understanding of high-scale systems with requirements for big data and high availability
- Extensive experience building scalable web applications using ASP.Net Webforms and ASP.Net MVC
- Rich content creation using Silveright, Javascript, jQuery, AJAX and CSS
- Experience working with Agile development methodologies including iterative development cycles, and releases, Pair Programming, Code Reviews, Agile Estimation, and Retrospectives
- Avid practitioner of TDD (Test Driven Development), automated testing and CI (Continuous Integration)
- Set up and maintained continuous build and deployment systems utilizing MSBuild, NAnt, CruiseControl.Net, TeamCity, and Team Foundation Server
- Provided formal and informal technical leadership to various sized teams
- Experience with various NoSql solutions including RavenDB, MongoDB, and memcached
- While not at work, I'm kicking around:
- As much Scala code as I can eat
- Android Mobile development (in Scala of course)
- Ruby/Sinatra web application development (running on Heroku)
- RESTful hypermedia services (currently looking at unfiltered in scala-land, and Sinatra in Ruby)
- Working on getting a Scala Unfiltered app up on Google App Engine
- CQRS, Event Sourcing, and NoSQL (RavenDB mostly with a little Mongo for fun)
Experience
ExactTarget (Indianapolis, IN) - July 2010 to present
ExactTarget is a leading Software As A Service company providing a platform for interactive, one-to-one marketing. Dealing primarily with Opt-In emails, they server thousands of customers with millions of subscribers sending out billions of emails every month. More information:
www.exacttarget.com
Sr. Software Engineer - Subscriber Data
- Improved scalability of services by moving them out of the database and into the managed code utilizing distributed workers and caching to provide a per formant solution that is consumed from REST services and internal asynchronous processes.
- Performed some large-scale data migration tasks for some of our largest customers.
- Performed numerous SQL Server tuning and optimization processes to minimize system impact for multi-tenant systems.
- Provided production escalation support for issues related to data imports and data quality
- Continually improving code-quality where possible by creating tests within the sea of untested code (and implement TDD if I'm lucky) and introducing SOLID design principles, and software craftsmanship idioms
- Provided monitoring, support, and emergency bug fixing for releases
Mailing List Systems Corp (Arlington, TX) - August 2009 to May 2010
Mailing List Systems provides data cleansing and address correction services for companies to help manage their direct mail campaigns. Services include address correction and standardization, National Change of Address (NCA) corrections, and duplicate detection and removal. More information:
www.mlsc.com
Architect - October 2009 to May 2010
- Implemented an ASP.Net MVC application to serve as a self-service portal (SaaS) for various services offered by MLS
- Created an architecture was focused on loose coupling, atomic web applications and services and utilizing an Event Driven Architecture and Publish-Subscribe idioms to keep components loosely coupled
- Utilized Silverlight (and WCF) for graphically rich controls which would have been more difficult using strict HTML 4/javascript, and for tasks which were not easily accomplished using standard HTTP capabilities of web browsers (such as large-file uploads)
- jQuery and jQuery UI were used to provide the rich AJAX functionality that would have been too heavy for Silverlight
- Managed source control and all of the Continuous Integration, on-demand, and Nightly builds for the project with deployment targets for Dev, Test, and Production, in Team Foundation Server
Programmer Analyst - August 2009 to October 2009
- Implemented a simple ASP.Net MVC site for customers to manage submitted lists
- Established testing and code quality standards as well as general agile coaching
- Worked extensively to make existing application testable
Envisage Technologies (Bloomington, IN) - October 2007 to August 2009
Envisage provides a rediness and training management system for government institutions including, military, law enforcement, and public safety organizations. More information:
www.envisagenow.com
Sr. Software Engineer
- Worked with an Agile team to provide weekly iterations and 6-week releases
- Performed TDD and Pair-Programming with regular pair rotations
- Utilized "Poker Planning" as a means of group estimation in terms of story points
- Lead the team in adoption of more sophisticated testing practices such as proper use of Mocks
- Pushed to move away from dumb data buckets based off of XML returned from the database towards a more rich domain model
- Introduced the use of IoC (Inversion of Control) containers and guidance concerning their proper use
- Introduced jQuery as a means of providing rich AJAX functionality (and tried to weed out all of the UpdatePanels I could find)
- Lead the team in the adoption and utilization of CodeRush as a coding assistance tool.
- Created several custom plug-ins for CodeRush based on the needs of the team, including a monitoring tool for CruiseControl.Net, navigation providers for use with TDD, and Code Issues for detecting possible memory leaks
- Introduced a set of tools to try and implement a declarative syntax for wiring domain object up to the stored procedures which supplied their data
- Utilized Attributes to map select/insert/update/delete operations to sprocs, and the fields/properties of the object to appropriate input or return values
- Mode use of Reflection.Emit, and later Expression Trees where possible to do "static reflection" based on the attributes, building all of the glue code behind the scenes.
- Created a base
Repository<T> implementation that used the glue code to wire up the basic CRUD operations
- Worked on implementing a new Acceptance Testing tool to serve as a replacement for Fitnesse.Net that was written in .Net, and allowed tests to be created utilizing NUnit for assertions.
- The grammar was very loose, and utilized plain english (even fewer constraints than something like Gherkin). Grammar definition was done using MGrammar
- Made use of the initial drops of MEF to provide plug-in support to the testing system for doing things like wiring in your own IoC container, and handing test-related events
- Made sure the tool could be easily integrated into the CI build, and statistics such as Code Coverage could easily be captured
- Started working on an "IDE" for authoring the test cases, which utilized the ICSharpCode text editor, and provided syntax highlighting, code-folding, and statement completion, as well as tools to run the tests from the editor
eImagine Technology Group (Indianapolis, IN) - April 2006 to October 2007
eImagine provides IT consulting services in Indianapolis, IN, and Columbus, OH for both government and commercial organizations. They offer professional consulting services on a variety of Microsoft technologies to provide innovative technology solutions for their customers' problems. More information:
www.thinketg.com
Sr. Consultant - Chase Home Equity Group - July 2006 - October 2007
- Refactored the database used for vendor invoicing to increase accuracy, improve transparency, and reduce errors
- Created a single desktop application which replaced several other Dot Net Nuke and MS Access components to process the vendor invoices received every month, reducing the time required to process the invoices, and greatly simplifying the process
- Converted the reports from a series of custom Dot Net Nuke modules and MS Access databases to SQL Reporting Services
Sr. Consultant - April 2006 to July 2006
- Created a framework and series of guidance documents around best practices and patterns for .Net development
- Refactored a Classic ASP authentication system to incorporate password complexity, password hashing, timeouts, and password re-use policies
- Customized the time tracking software used internally to better match the work flow used by employees, making the tool easier to use for both employees and managers.
Software Architects (now Sogeti USA, Dallas, TX) - August 2004 to April 2006
Sr. Consultant - GameStop, Inc. - August 2006 - April 2006
- Created a service for processing credit card transactions as they were being sent from the stores
- Utilized a file system watcher to monitor files as they arrived
- Files were processed by a thread pool (one per file)
- The file data was written as binary data in a format specific to the POS system
- The process included extensive logging to allow production support personnel visibility into the process
- Utilized a remoted service to perform decryption of the data, ensuring cryptographic keys were located in a centralized location.
- Worked on a new POS platform written in .Net to replace the legacy systems in the stores
- Provided the core platform which provided the base UI framework and device integration points
- Functional UI requirements:
- Must be full screen
- Must not allow the user to switch to other applications or the desktop
- Integrated several OPOS compliant devices
- Bar-code scanner
- Ingenico Credit Card/Signature Capture device
- Provided the programming for the device to display the branded screens which were displayed to customers.
- Provided the control for the POS system to display the captured signature on the POS terminal
- Processed the data returned from the device and created image files with the signature
- Created an internal web site which would allow specific users to view the signature files
- A batch-scanner ("phaser") used for collecting inventory. After the inventory items were scanned they could be uploaded to the POS system and processed.
- Created an email client application for use on the POS terminals:
- The application would connect to the corporate mail system when available and download messages to the POS in plain text
- The email messages were displayed to the user in a familiar looking mail client which would allow for replying, forwarding, and carbon-copy functionality
Comcast Corp (Dallas, TX) - October 2001 to August 2004
Business Analyst
- Object Oriented Application Programming utilizing C# and Java.
- Full-lifecycle application development utilizing Object Oriented Design (OOD) principals such as Design Patterns and UML.
- Java and Microsoft .Net based web development utilizing ASP.Net, ADO.Net, JSP, Servlets, and JDBC. Specific Java technologies include Tomcat, Jakarta Struts, and Hibernate.
- Process automation utilizing Perl, Python, and VBA scripting technologies.
- Extensive use XML technologies including XSLT.
- XML Processing from Microsoft .Net, Java, Perl, Python, and PHP
- SQL Server 2000 Administration and Data Warehousing design.
- Report creation from SQL and Oracle sources, including Ad-Hoc and recurring reporting.
- SQL Server technologies including DTS, Analysis Services, and Reporting Services.
AccuNet, Inc. - May 1997 to August 2001
AccuNet is a Microsoft Gold Certified partner and provider of Microsoft Dynamics business solutions, as well as a full-service IT consulting organization. More Information:
www.accu.com
Internet Systems Engineer - March 2000 to August 2001
- Developed highly dynamic, interactive web-based applications utilizing HTML, DHTML, PHP, CGI (Perl), SQL, and JavaScript.
- Experience with data-integration and reporting using SQL, primarily in the context of web content creation.
- Experience using PERL and UNIX Shell scripting to perform a variety of functions from system administration to web development.
- Administered Linux based web servers running Apache with mod_ssl, as well as Windows NT/2000 servers running IIS 4.0 and 5.0. Administered Front Page Server Extensions for both Windows and Linux platforms.
- Administered virtual web hosting services on apache and NT/2000 servers. Hosting services included detailed site statistics available online and updated daily.
- Server administration, including all email, DNS, and web servers.
- Hardened all internet servers for maximum security and performance. All major software was built from source.
- Set up monitoring on internet servers and client side equipment to analyze and report any of the following data/events: Host/Router/Server down, Bandwidth utilization of routers/switches/remote access devices, unauthorized access or potential port-scans of critical internet hosts.
- Handled all aspects of TCP/IP network configuration.
- Familiar with all aspects of TCP/IP based networks including the core protocol suite including: TCP, UDP, IP, ARP, and ICMP
- Built firewall systems using OpenBSD and OpenBSD's suite of security and encryption tools including IP Filter, IP NAT, and IPSEC based VPN solutions. Firewalls also utilized the SQUID proxy/caching server to maximize available bandwidth and provide authentication and logging services
Network Consultant - May 1997 to March 2000
- Familiar with all prevalent network support and monitoring protocols including: DHCP, WINS, DNS, SNMP, IPSEC, PPTP, and directory services such as LDAP and Active Directory
- Served as a network administrator and consultant for 25+ clients in capacities ranging from network design and implementation to ongoing maintenance.
- Network environments included single server, multi server and heterogeneous networks including NT, Novel, and Linux/Samba.
- Worked heavily with Citrix Metaframe on Windows NT Terminal Server and Windows 2000 Server. Citrix was used for a variety of purposes including remote access, thin client application, application hosting, and easy application deployment.
- Provided support for clients both on site and over the phone. Support responsibilities included all aspects of the client networks including end-user applications, connectivity issues, server maintenance, and tape backup.
- Performed network and server performance analysis to identify bottlenecks and performance problems.
- Built and configured workstation and server machines.
Nestlé R&D (Marysville, OH) - October 1996 - April 1997
IT Technician
- Performed daily network maintenance and support for a 150 user network
- Lead a 4 member team through upgrading all workstations from Windows 3.11 to Windows NT 4.0 workstation.
- Daily tasks included solving user issues, maintaining hardware, performing hardware and software inventory, and keeping up with maintenance on hardware.
- Assisted with the conversion from a Unix LanManager network to a Windows NT 4.0 Server network.
- Coordinated the deployment of the Windows NT and hardware upgrades.
Education
Associates of Applied Science in Electronics - DeVry University - 1996
Honors Graduate
Buzzwords
- Scala SBT
- C# .Net ASP.Net MVC
- HTML AJAX Web JavaScript JQuery CSS JSON
- SQL MSSQL Oracle Pl/Sql TSql
- Agile TDD Scrum Pair-Programming NUnit Mocking Rhino Mocks
- SaaS Enterprise Scalability WCF Web Services REST
- Event Driven Architecture nServiceBus
- Continuous Integration Build MSBuild NAnt CruiseControl NCover Automation
- Fitnesse Gherkin FlowSPEC BDD
- REST NoSQL Ruby Android