Software Development Manager Resume
5.00/5 (Submit Your Rating)
PhiladelphiA
PROFESSIONAL EXPERIENCE:
Confidential, Philadelphia
Software Development Manager
Responsibilities:
- I work on the team that does Big Data analysis of medical data. Despite my title, I do 100% development using Scala, Spark, HiveQL and Java 8 on Cloudera Hadoop 2.
- I have developed working knowledge of Hadoop tools like Oozie, Sqoop, Hue, Impala, HBase and some newer ones like Kudu, as well as Hadoop architectural patterns and tradeoffs between Map - Reduce, Tez and Spark.
- I also learned details and pros/cons of various HDFS file formats like Avro and Parquet.
- I have coded various enhancements and bug fixes to existing Scala Spray Http based RESTful microservices and refactored the codebase to remove code duplication.
- Developed several utility functions, to handle Futures easier and to keep Impala performant under load.
- Defined HiveQL best practices, and developed an open source Hive unit-testing framework for HiveQL.
- It enables Hive developers to write true unit tests of hiveQL code on any platform.
- It also automates Excel-based QA manual certification step necessary before production deployment, by integrating it into a continuous delivery build process.
- This provides automatic regression and QA certification for existing functionality.
- I developed it using Java 8 functional features and not Scala for maintainability by non-Scala developers.
Confidential, Plymouth Meeting, PA
Software Development Consultant
Responsibilities:
- Mentored a team of Hexaware developers from India on Scala Development best practices for a pilot project to explore ways Data Analysis team can use supplier data that will become available in the new IMS data lake.
- Used Scala, Spark, Hadoop 2, Hive, Impala Elastic Search and Kibana
Confidential, Philadelphia
Software Development Consultant
Responsibilities:
- I was the sole developer from inception and initial two quarters, the first working version was deployed to production three months after the project.
- Designed and evolved the functional domain model and corresponding Play Json marshallers. Influenced the team to use more domain driven design approach.
- Defined the data model and the architecture and wrote the first release of the Portal based on cats free monads.
- I used the approach described by Debasish Ghosh in the new book ‘Functional and reactive domain modeling’.
- Together with team lead, wrote other portal features using cats co-products, Kleisli and other cats typeclasses.
- Used type-based techniques with shapeless and H-List, to achieve a totally testable system, with all of the business logic being pure and based on co-product of multiple algebras, one for each distinct concern.
- The codebase is DRY, compact and expressive, unlike most Play code I’ve worked with before.
- The system uses the interpreter pattern to achieve full decoupling between the declarative business logic code and the implementation, making the system independent of the storage technology. Surprisingly, it is also decoupled from details of the Confidential, so Future, Task or anything similar can be used.
- After the first release, evaluated and prototyped some features with Freestyle and FreeK Scala libraries for free monad-based code.
- Dave Cleaver, the team lead, gave this presentation on the approach we used:
- Learned enough Haskell to write smallish programs and to read functional literature.
- Learned Elk and developed and configured logstash grok filters to produce logs in a format consumable by existing production monitoring infrastructure.
Software Development Consultant
Confidential, Philadelphia, PA
Responsibilities:
- Responsible for architecture and development of Confidential.
- The system is designed to be massively parallel but not real-time and uses Celery to manage concurrent worker processes.
- I developed a prototype in Scala but decided to implement in Python because there are no Scala developers on client’s team to maintain the system.
- The team is agile, uses CI and Dev-Ops to deploy to Amazon AWS.
- The system was developed using Doman Driven Design and uses CQRS, Event Sourcing, microservices and View Projection patterns to achieve horizontal scalability.
- All of the business logic is pure and functional.
- Only the ETL layer uses a couple of classes for validation and reporting.
- The system is storage-agnostic and is configured to work in production with SQL Server, memcached and Postgres.
- It has been in production for a couple of years now.
- I worked with the front end 5-10% of the time using Django and Angular JS.
- TDD framework is Nose and BDD is handled by Cucumber.
Vice-President
Confidential, Pennington, NJ
Responsibilities:
- Lead Developer, leading several on and off-shore resources in development of software solutions for clients of Operational Risk group.
- Developed a workflow façade layer for a new application to manage operational risk.
- The application and the façade layer are written in Python.
- Enhanced the proprietary workflow DSL implemented in Scala with email capability.
- Also worked on UI in Python using Bank’s Quartz infrastructure.
- Diagnosed and fixed performance issues with proprietary Cassandra clone in the new app.
- Wrote an ETL framework in functional Python to validate, transform and clean data that is used by the application since it comes from multiple heterogeneous sources.
- Responsible for investigating newer technologies and developed POC prototypes of the new application in Scala, Play 2 and AKKA on the back end exposing RESTful services and React.js on the client with Couchbase for storage.
Principal Technical Architect
Confidential, New York, NY
Responsibilities:
- Work with the sales team in pre-sales architectural role, deliver architecture consulting and develop enterprise scale portals and large scale web sites using Open Source tools.
- Worked as one of two architects on Confidential
- Developed portlets using Spring MVC, web content structures, templates and various Liferay plugins. Wrote deep customizations of Liferay’s Content Management System and Lucene-based search.
- Also worked on client-side code for Persona Modeler and developed several Single Page App prototypes using the MEAN stack (Mongo, Express, Angular and Node). Investigated partnership with Typesafe and built demo apps using Play 2.
Web Services Architect
Confidential, Princeton, NJ
Responsibilities:
- Developed Web Services framework for a new ETS Spring MVC-based software system that facilitates web-based grading of audio, video and graphical answers to questions for all major ETS tests.
- The framework uses SOAP with Apache CXF WS stack with JAXB, the Hibernate Validator framework, the Dozer mapper and a multithreaded logger.
- The project stack consisted of jBoss, Spring, Hibernate and Maven. I used annotations, generic programming, ThreadLocal, AOP and reflection to encapsulate all of the non-business behavior in the framework layer so development of a web service required three simple Java classes -- ValidationService, DataService and BusinessService -- which contained only business logic, to enable junior developers to efficiently develop numerous web services required for the project.
Principal Software Architect
Confidential, Philadelphia, PA
Responsibilities:
- Wrote the engines in Java for the MCA Inventory Optimization, Budget Management, Contract Management and portions of Supply Planning modules.
- Developed, implemented and maintained high performance algorithms and data structures.
- Wrote several types of multi-echelon multi-indenture stochastic greedy optimizers and a combinatorial optimizer that achieved acceptable optimization performance in problem spaces with millions of optimization variables.
- Wrothe MCA numerical library to efficiently compute probability and cumulative density functions of Negative Binomial, Poisson and Normal distributions used by the optimizers.
- Developed a significant portion of the web-based UI including data structures and a framework to produce sophisticated data analysis/reporting pages with rich two-dimensional data grids that can be collapsed and expanded in both horizontal and vertical dimensions.
- Twenty percent of my time was devoted to investigation of emerging technologies and building prototypes using them for internal use.
- Learned Domain Driven Design and Scala and used both to develop a DSL for customizing MCA products to drastically reduce the time needed by MCA on-site consultants to change the product for needs of specific clients
- Successfully evangelized and helped out with MCA’s switch from a homegrown agile like development methodology to SCRUM.
- Developed and maintained MCA ERP INTEGRATION Service Oriented Message Broker that coordinated very large volume web service messages between SAP’s Supply Chain Management SPP Enterprise Services and MCA Enterprise Services. The system also provided real time control and display of all of the interactions and used Java 5 threading libraries utilizing concurrent collections and the Executor framework. Designed XML Schemas and WSDLs and wrote corresponding web services to front the existing MCA integration system.
