- Full stack web developer
- Have extensive experience in architecting, re-architecting, designing and implementing large-scale backend/web applications
- Skillful in object oriented design, programming and methodologies. Thoughtfully borrow and apply functional programming concepts.
- Dogmatic about producing highly reusable semantically meaningful space-efficient debuggable and maintainable quality code. To crash is a shame!
- Have extensive experience in refactoring beyond-repair production code and transforming it into robust secure testable high quality code with no new defects and agreed breaking changes
- Agnostic, interested and hungry to work with any present day language/technology – Scala, Go, F#, Python, Spark, Cassandra, anything. Prudent enough to employ the power of the language/technology to effectively solve business problems – Not do C programming with C++
- Have extensive experience working in small and large teams practicing Agile software development with XP (eXtreme Programming) and TDD; project inceptions, story creations and estimations.
- Adaptive to delivery-centric or research/innovation centric work style
A Developer’s Experience
Introduce discrete programming problems from an alternative viewpoint, not HOWTOs, and present plausible solutions, Wild analogies of scenarios identified across platforms or languages.
Thinker, philosopher, failed writer
Highly interested in photography. Capture and present the original beauty of the subject without manipulation.
Articles Published Online
- C++/CLI Primer – Enter the World of .NET Power Programming
- “Please Don’t Fail Me!” – Decorator Cries Out to Template Method
- Type-Safe Logger For C++
- Scrollable Image Viewer
- Simple Tree List View
- Highly proficient in C# with the extensive knowledge of .NET internals thereby avoiding/resolving runtime issues at construction time
- Have hands-on experience in developing web applications using ASP.NET MVC and Web API, and creating user intuitive desktop applications using WFP/MVVM/WinForms
- Highly proficient in C++ 98. Can write memory leak free code. Template meta-programming enthusiast. C++ 11/14 academic and follower.
- Highly proficient in Java and J2EE technologies with hands-on experience in creating heavy-weight backend/web applications using one or more of Spring, Apache CXF, Jetty, Tomcat. Academic knowledge of Java 8.
- Have played with Groovy developing highly customizable test automation engine/suites and scripts/scnippets that save time.
- Have extensive and hands on experience in re-architecting large mundane PHP applications into robust secure and object oriented counterpart utilizing advanced features of PHP.
- Have published small time applications in Android – Seinfeld Calendar, SMS Firewall. Worked in workshops and meet-ups building small independent applications.
- Prefer automating the boring stuff with Python than with Shell Scripts.
- Disciplined and thoughtful in writing freely testable code using JUnit, NUnit, Easymock without uglifying mainstream code with ugly setters or such
- Disciplined use of source control – GIT, SVN, Clearcase; organized and disciplined rather than kitchen-sink style check-ins
- Miscellany: Jenkins, My SQL, SQL Server, SQLite, OhMyZsh lover, Amateur Shell Scripting
- As Technology Architect with Cognizant Technology Solutions
- In USA (since May 13, 2013)
- In India (May 2011 – May 2013)
- As Senior Consultant with ThoughtWorks Technologies Ltd, India (May 2010 – May 2011)
- As Technical Lead with HCL Technologies Ltd, India (Jan 2003-Apr 2010)
CURRENT PROJECT ENGAGEMENT
Apple Retail POS – Apple Inc.
Needless to say about Apple – market leader and innovator in conceiving and releasing the next generation devices ahead of time.
Apple Point of Sales system aka POS is the enterprise application that all of the Apple retail stores worldwide uses to perform various sales operations – purchase, returns, gifts etc. POS is a highly complex and large application that caters to the sales of all Apple products – iPhone, iPad, Mac etc., worldwide specializing to the business and regional rules and laws for the sale of these products. A sale is not just limited to an invoice and a receipt. The sale of an iPhone has different aspects and rules when compared to a Mac. In that aspect, a sale is not just selling of a product but may involve returns, exchanges, gifts, discounts etc. All of these again are subject to the geography. Being Apple poses unique and challenging requirements unlike any other point of sales system – security, secrecy, customer satisfaction etc.
- Part of the team that manages the receipts module of the point of sales systems; a team that is exposed for any glitch in the system from discrepancy in the item price to errors in data sync. Everything is exposed on the receipt that is handed to the customer. This is no joke.
- Proposed and currently implementing an universal geo-agnostic receipt server (micro-service(s) based) that involves massive refactoring/rewrite of the receipts module while supporting the legacy (current) with absolutely no deviation from the current behavior whatsoever as well as the next generation software all on the same platform with relatively smaller footprint.
- Developed a highly scalable worker model based application for generating receipts for a given geography; we are talking about generating receipts for a million or more transactions without compromising the production environment which is where the transactions happen.
- Prototyped a highly flexible Groovy based test automation engine that could run all sorts of complex and intricate application flows pertaining to the POS business use cases; one could analogize this with a DSL that enables anybody from test engineer to product owner and beyond to propose and test new or existing use cases.
- Geo-agnostic Endeavors – One of the major hurdles in delivering new features, besides development, is testing. The underlying reason is that large parts of the code suffer from geo-affinity. Making the code geo-agnostic would enable defining rules, configuration and metadata declaratively rather than hand coding and reduced the footprint massively. Identified patterns, introduced conventions, developed small-scale libraries to enable geo-agnostic behaviors in certain areas of the application. This is not related to internalization and/or localization.
PAST PROJECT HIGHLIGHTS
Twinspires.com, Twinspires Inc.
Twinspires is the online wagering wing of the Churchill Downs and Kentucky Derby. Basically, Twinspires is a horse racing company. Twinspires.com is a collection of affiliate based websites for online wagering with annual revenue of ~800 million USD. Some of their famous affiliates are KeenelandSelect, BetHarness, and MyRaceBet etc.
Environment: Java/J2EE, Spring, Hibernate, JBoss, jQuery, Linux, Apache, PHP, MySQL, Drupal
Role and Contributions
- Identify, Propose, Design, and Execute every day and hidden pain points as projects
- Research and prototype projects in pipeline; build proof of concept with the push-to-production mindset and discipline.
- Overhauled and re-architected two fundamental areas of the web site – Registration and – Funding aka payment methods, thereby reducing the source code footprint by 40%.
- Proposed and implemented the parent-child relationship based database design (using Hibernate) that provides an abstract data interface and a specialized one for legacy, current and new payment methods.
- Implemented highly reusable robust classes and libraries that are widely used across teams. Some of the library classes haven’t been changed in more than a year.
ReOrg Advantage, Boston Consulting Group, USA
BCG is a global management consulting firm and the world’s leading advisor on business strategy. They partner with clients in all sectors and regions to identify their highest-value opportunities, address their most critical challenges, and transform their businesses.
One of the several consulting services that BCG offers is ‘Structuring an Organization Hierarchy’. This involves either structuring the hierarchy of a new organization or restructuring an existing organization or structuring a merger\acquisition or structuring the sister organizations on a breakup. And this is the top earning service for BCG – Not even the physical structuring but just proposing it.
ReOrg Advantage is the tool used by all the consultants and top officials in BCG for analyzing and proposing organization hierarchies. An organization is seen as a hierarchy of positions (vacant and staffed). Employees are staffed in one or more positions with percentage of employment time summing up to 100%. ReOrg portrays this concept visually to the consultant, who then can swap around positions or delete them or staff\unstaff employees; thereby restructuring the hierarchy, based on proprietary metrics. ReOrg deals with huge volume of data and meets the strict performance benchmarks demanded by BCG.
Environment: Windows 7, Visual Studio .NET 2008, .NET 3.5, WPF, C# 3.0, SVN\GIT.
- Proposed an alternative and radical new design for the entire application that redefined how the application was being developed
- Redesign two of the prime parts of the application
- Technical inputs, suggestions and guidance
KTFA Suite, KLA-Tencor Corporation, USA
KLA-Tencor Factory Automation Suite, formally called, as the KTFA Suite is a collection of software components designed to help KLA-Tencor’s wafer inspection equipment software products to harness Factory Automation interfaces to Host computers rapidly, with high quality, and with increased consistency across KLA-Tencor products, with the goal of significantly increasing the commonality of software and FA behaviors across the KT product line.
The factory automation of the semiconductor processing equipment aims at minimal human intervention, which is considered to be the prime pollutant in a fab, and increase the throughput. There is a remote controller called the Host that sends messages [E5 standard] or remote commands instructing the equipment in the production line to do specific operations in a sequence that the processing demands. The main component in the software suite, the KTFA Server, processes the messages from host, interacts with the equipment software and responds for the message. KTFA Server performs complex job scheduling based on the resources that the job refers to and monitors the wafer inspection in the equipment. The project involves a thorough understanding, and the design and implementation of the standards.
Environment: Visual Studio .NET 2003/Visual C++ 7.1, ATL-COM, MFC, Rational Clearcase, SECSIMPro+, Windows XP
Role and Contributions
- Designed and implemented the SEMI automation standards – E40, E94, E87, E90 and related – features.
- Implemented and owned some of the critical and complex features – Pipelining, Set Attribute Service Handlers
- As a Technical Lead
- Contributed in formulating the Project Specific Process and Software Configuration Management
- Responsible for all the software merges and software release initiatives
- Author and curator of several documents and artifacts
Bachelor of Engineering (Electrical & Electronics) – 1997 – 2001,
Alagappa Chettiar Govt. College of Engineering & Technology, Tamilnadu, India
Affiliated to Madurai Kamaraj University
78% with Distinction