- Large scale application development and deployment.
- Legacy application migration
- DevOps policies and procedures
- Budget, Project, Vendor and Team management.
- Leadership and Teambuilding
Languages: Rust, C++, Python, Go, Java
- Poster: Author Credit: Classifying and Mitigating Side-Channel Vulnerabilities between VMs
- Poster: Author Credit: Open and Secure Vehicle Data Collection Standard
Professional Work Experience
- Rust, Intel SGX, C++, Containerization
- Oversaw the global transition of the organization’s legacy batch job scheduler. Developed a Java interface for configuration trans- formation and a hybrid Java-Python recovery tool, enhancing the reliability of 30,000+ critical jobs, doubling their dependability
- Enhanced Python data loaders and created Java-based Extract Transform Load (ETL) components to optimize the loading speed and reliability of a legacy MongoDB security master database to a PostgreSQL security master database.
- Managed a team of 4 engineers, maintaining effective leadership while actively participating as an individual contributor. Mentored, directed, and oversaw project coordination to ensure the successful delivery of key reliability and support initiatives for a 24x7 on-call rotation.
- Directed vendor management activities, encompassing contract negotiation and successfully curtailed third-party software expenses by 25% through meticulous usage analysis.
- Developed Python process validation and referential data integrity checks using the firm’s proprietary Quartz libraries (Bank of America’s custom Python 2.6 environment).
- Provided guidance and mentorship to a team of 3 junior developers, encompassing comprehensive code reviews and career development support.
- Initiated, championed and developed a Python analysis tool that analyzed the run time characteristics of 28,000 organization wide applications and 50 million data touch points. This initiative provided critical insights into revealing unknown application dependencies and establishing predictive performance metrics which reduced downtime by 70\%
- Managed a worldwide support team of 26 on-site and remote engineers specializing in Java, Oracle and Python. Ensured seamless operation of 500 applications across 150+ servers, maintaining uninterrupted availability through 24x7 support.
- Architected and refined Business Continuity Plans for an extensive network of 250 servers, culminating in a flawless track record during both internal and external audits, especially for primary to secondary data center transitions.
- Authored technical procedural documentation that was successfully employed to establish Service Level Agreements (SLAs) accommodating both cutting-edge and legacy application products. This initiative facilitated the maintenance of uniform service standards.
- Oversaw the creation and maintenance of applications using Python and Java within Goldman’s proprietary dynamic hybrid cloud infrastructure.
- Championed the pivotal overhaul of the department's infrastructure, orchestrating the replacement of outdated hardware systems with Goldman's proprietary dynamic cloud environment.
- Produced a comprehensive technical design document detailing the requirements for a proprietary equity product based on the industry-standard Financial Information Exchange (FIX) specification, as part of a strategic collaboration with the Swiss Stock Exchange. Implemented a protocol validator for the specification in Python, which significantly accelerated the integration process with the exchange by three months.
- Collaborated closely with legal teams and external stakeholders to critically review and validate all technical and legal documentation, ensuring alignment with business and regulatory standards.
- Led and developed Python-based full stack support management and validation tools, leveraging the capabilities of Django and MySQL, streamlining deployment and configuration operations. This resulted in a 30\% acceleration in the production deployment process as well as enhancing overall service reliability and client satisfaction.
- Formulated and executed a comprehensive departmental strategy for software deployment and operational procedures, ensuring consistency and efficiency.
- Oversaw the trading system hardware and software infrastructure with a strategic focus on optimizing connectivity and product delivery timelines.
- Hardware acquisition and coordinated internal and external connectivity.
- Mentored and managed a team of 3 engineers, ensuring a robust 24x5 support coverage for key trading operations.
- Managed and mentored a team of six engineers, cultivating innovation in the creation of trading system applications utilizing C and Java. Spearheaded the shift to Agile methodologies, yielding notable enhancements in development speed and team synergy.
- As an individual contributor, conceptualized and executed a client migration testing framework in C. Orchestrated the utilization of this tool by an offshore testing team of 8 engineers to transition 250 client connections from legacy infrastructure to an in-house system that included rigorous configuration and testing protocols. The transition was flawlessly executed, preserving uninterrupted service. This testing framework accelerated deliverables, resulting in a 40\% reduction in project timelines.
- Devised and effectively executed proof of concept applications in Java, showcasing shared characteristics in individual client configurations. These demonstrations streamlined the migration process from a legacy third-party application to an in-house developed system.
- Served as a key liaison between IT and Business stakeholders, ensuring budget adherence, astute financial planning, and alignment with overarching company objectives.
Academic Work Experience
Focuses on design and implementation of network programs and systems, including topics in network protocols, architectures, client-server computing, software-driven networking, and other contemporary network hardware-software system design and programming techniques. Familiarity with C and Unix is required.
Basics of graph theory and convex optimization; consensus on graphs, parallel and distributed computation methods, regret and convergence analysis, cooperative games, and elements of online optimization. The techniques and methodologies presented in the course are introduced through application setups including power and energy systems, sensor networks, transportation systems, and social networks.
An applied analysis and design class addressing the use of object-oriented techniques. Topics include domain modeling, use cases, architectural design and modeling notations. Students apply the techniques in analysis and design projects
Research and review technological impact on the democratic process of infromation sharing and the proliferation of infromation bubbles and its impact on society.
Explores algorithms that can extract information about the world from images or sequences of images. Topics covered include: imaging models and camera calibration, early vision (filters, edges, texture, stereo, optical flow), mid-level vision (segmentation, tracking), vision-based control and object recognition. Recommended prerequisite: probability, multivariate calculus and linear algebra.
Studies design, analysis and implementation of computer graphics techniques. Topics include interactive techniques, 3D viewing and models, clipping, transformations, projection, removal of hidden surfaces, lighting, textures and shadows. Knowledge of basic linear algebra is required.
Introduces core concepts in cybersecurity including confidentiality, integrity, authentication, risk management, and adversarial thinking. The concepts will be applied to both traditional information technology (IT) systems and cyber physical systems (CPS). At the conclusion of the course, students should have a solid foundation in cybersecurity and hands-on experience.
Develops the skills and practices necessary to apply user-centered approaches to software requirements analysis, and the design and evaluation of computer applications.
Studies design, analysis and implementation of advanced computer graphics techniques. Topics include shaders, using the GPU for high performance computing, graphics programming on embedded devices such as mobile phones; advanced graphics techniques such as ray tracing.
Examines systems that span multiple autonomous computers. Topics include system structuring techniques, scalability, heterogeneity, fault tolerance, load sharing, distributed file and information systems, naming, directory services, resource discovery, resource and network management, security, privacy, ethics and social issues.
Provides an introduction to software engineering concepts and techniques. Topics include the history of software engineering, fundamental software engineering principles and theory, software life cycles, software testing, and the design and implementation of concurrent and large-scale software systems.
Teaches basic exploit design and development through hands-on experimentation and testing. Uses a controlled environment to give students a "playground" in which to test penetration skills that are normally not allowed on live networks.
Instructs new Ph.D students in Computer Science how to obtain a Ph.D and how to become an effective member of the computer science research community. Makes students aware of formal requirements, educational objectives, and research themes. Provides evaluative criteria and guidelines for all objectives to be achieved.
Learn about innovative research and teaching in computer science by attending talks and discussions by leading researchers and educators. Learn professional presentation skills and etiquette of participating in scientific research presentations.
Learn how to make the most of your CS PhD by understanding and preparing for a career as a computer science research in academia, industry, and government. Students need to take this class once they complete Preliminary Exam and before their proposal defense.