Sebastian Brestin
Verified Expert in Engineering
Azure Databricks Developer
Since 2012, Sebastian一直在为Solaris等各种平台开发分布式系统, IBM AIX, HP-UX to Linux and Windows. He's worked with various technologies such as Apache Spark, Elasticsearch, PostgreSQL, RabbitMQ, Django, and Celery to build data-intensive scalable software. Sebastian热衷于提供高质量的解决方案,并对大数据挑战非常感兴趣.
Portfolio
Experience
Availability
Preferred Environment
Amazon Web Services (AWS), Apache Kafka, Spark, Linux, Hadoop
The most amazing...
...我用Docker、Django、PostgreSQL和芹菜构建了一个MapReduce系统.
Work Experience
Data Engineer
Fortune 500 Retail Company (via Toptal)
- 重新设计Spark应用程序,使其对数据科学家和软件工程师来说更加健壮和灵活.
- Researched to increase Spark S3 parquet write performance. 为了分析Spark作业,我使用了Spark History Server和Ganglia来确定时间花在哪里,并比较配置修复.
- 为Spark管道实现了一个健壮的通用测试框架.
- 将Spark应用程序从一个单体重新设计为一个模块化的Spark应用程序,它可以编写中间结果并可以并行运行.
- 构建了一个Spark应用程序,用于从多个来源摄取1TB的数据,并生成40k个可能的特征,数据科学团队可以根据这些特征执行EDA和测试模型.
- 实现新的应用程序api,以帮助其他团队提高生产力.
Python Developer
Reconstrukt(via Toptal)
- 使用Python Tornado实现了一个实时视频渲染系统的并发编排器.
- Used HTTP, Websockets, 原始TCP连接、AWS S3和NAS存储来构建处理内容所需的管道.
Data Engineer
Spyhce
- 通过创建三个基于spark的应用程序,将可变对象(用户可以创建/更新)与其他数百万个不可变对象实时匹配(或尽可能接近). 有关该项目的其他详细信息可以在我的投资组合部分找到.
- Built a task manager Django application over Celery. 该应用程序允许管理员轻松地管理任务和查看进度/统计数据,而无需额外的监控服务.
- 为了跟踪所有的用户操作,在Django ORM上开发了一个Django审计应用程序.
Software Engineer
Hewlett-Packard
- 为虚拟设备开发了一个基于Python的构建系统,该系统允许HP客户轻松地将产品部署到生产环境中.
- Maintained the project.
- 引入了服务器代理使用的软件/补丁时间窗口安装,以避免在关键时间加载/重新启动服务器.
- 领导所有服务器和客户端组件之间从SSL到TLS的升级.
- 重新设计了服务器代理用来选择IP地址以便与核心组件通信的策略.
- 遗留代码重构,以支持Windows服务器代理的自定义安装路径.
Software Developer
GFI Software
- 通过使用局域网邻居的缓存提高补丁下载速度.
- Enhanced the build system for a better UX.
- Maintained the project.
- 重新设计产品遗留架构,以便轻松扩展新功能.
- 增加了发现局域网内Android和iOS设备的功能.
Experience
个性化引擎优化(财富500强零售公司)
We wanted to improve the user and developer experience. The Spark application was presenting performance problems, and tech debt became a blocker for adding new functionality.
Solution:
重新设计Spark应用程序,使其更加健壮和灵活的数据科学家和软件工程师:
Partitioned data to avoid shuffles and data skew
减少分区数量,同时增加分区大小,以避免数据倾斜和驱动程序拥塞
使用策略缓存以避免重新计算,并通过减少查询计划来改进计算
将应用程序重构为管道,以便工程师将功能作为插件添加到管道中
在具有相等比较值的行的情况下生成确定性Spark输出
Results:
减少了50%的执行时间,增加了配置灵活性, 在第二轮中,哪一个提高了数据科学家的生产力
减少了技术债务,从而改善了开发时间和开发体验
Improved functional tests by having a deterministic output
个性化引擎编写优化(财富500强零售公司)
我们希望提高集群的可用性,因为它被长时间运行的Spark作业阻塞了.
Solution:
Researched to increase Spark S3 parquet write performance. To analyze Spark jobs, 我已经使用Spark History Server和Ganglia来查明时间花在哪里,并比较配置修复.
Results:
Increased write performance by a factor of three.
个性化引擎测试框架(财富500强零售公司)
我们希望提高产品的稳定性和我们的开发过程.
Solution:
为Spark管道实现健壮和通用的功能测试框架;
Allowed multiple instances of a test to run in parallel
允许测试作为套件的一部分以管道方式运行
Simulated production runs by using a representative dataset
Results:
Faster POC development
Reduced development time by 50%
Increased product stability
通过使用更少的资源模拟生产运行,降低了AWS成本
个性化引擎管道优化(财富500强零售企业)
我们的一些Spark应用程序是长时间运行长达9小时的应用程序. 在此时间范围内,节点可能会内存不足或失去连接. 我们希望我们的应用程序运行得更快,并且在发生故障时更容易恢复.
Solution:
将Spark应用程序从一个单体重新设计为一个模块化的Spark应用程序,它可以编写中间结果并可以并行运行.
Results:
No failures due to out of memory
Easier to recover by re-running only the failed module
个性化引擎流失模型(财富500强零售公司)
我们想要一个流失模型,我们可以用它来预测我们会员的未来,并将其集成到其他Spark应用程序中.
Solution:
构建了一个Spark应用程序,用于从多个来源摄取1TB的数据,并生成40k个可能的特征,数据科学团队可以根据这些特征执行EDA和测试模型.
个性化引擎应用开发(财富500强零售公司)
数据科学团队必须最有效地使用数据和我们的系统来提高生产力.
Solution:
实现新的应用程序api,以帮助其他团队提高生产力;
1. Wrote better API for complex Spark or Cloud functionality
2. Wrote wrappers for complex application configuration
3. Implemented integration with adjacent applications
4. Wrote documentation and Unit Tests
5. Ran data analysis and data quality checks
Django MapReduce System
Spyhce | Mutable Object Matching Project
We chose Apache Spark because of its Python support, rich analytics toolkit, and streaming capabilities.
The solution was split into three Spark apps:
01. 使用Kafka和Spark流从数据源中检索可变数据, extracting features and saving the result to Cassandra.
02. 使用Kafka和Spark流从数据源中检索不可变数据, 提取特征并将结果保存到磁盘作为Parquet文件.
03. Loads data from Parquet files, 计算所有不可变对象与来自Cassandra的单个可变对象之间的匹配百分比.
In order to query data in a reasonable amount of time, 我使用Elasticsearch对PostgreSQL表(数十亿条记录)进行了反规范化. 这将读性能提高了两个数量级,但增加了写损失. 因为只有部分文档频繁更改, 这个问题通过使用Elasticsearch对复杂字段的批量部分更新和Groovy脚本解决了.
Single Sign-on Platform
Machine Learning
High-content-streaming Platform
Spark Secondary Sort
http://www.qwertee.io/blog/spark-secondary-sort/The article covers two solutions. 第一个解决方案使用Spark的groupByKey,它在reducer阶段进行排序,而第二个解决方案使用Spark的repartitionAndSortWithinPartitions,它利用shuffle阶段和迭代器到迭代器的转换来更有效地排序,而且不会耗尽内存.
PostgreSQL Data Partitioning and Django
http://www.qwertee.io/blog/postgres-data-partitioning-and-django/本文的第一部分介绍了对数据进行分区的原因,以及如何在PostgreSQL中实现分区.
第二部分描述了在使用web框架(如Django)时可以利用PostgreSQL分区的一些解决方案.
PostgreSQL B-Tree Index Explained | Part 1
http://www.qwertee.io/blog/postgresql-b-tree-index-explained-part-1/In the first section of the article, 我将介绍PostgreSQL b树索引结构的基本原理,重点介绍b树数据结构及其主要组件——叶节点和内部节点, what are their roles, 以及在执行查询时如何访问它们(这个过程也称为索引查找). The section ends with the index classification, 更广泛地了解索引关键度,这有助于解释对查询性能的影响.
In the second section, 下面是对查询计划的快速介绍,以便更好地理解后面的示例.
In the third section, I introduce the concept of predicates, 并且解释了PostgreSQL根据索引定义和可行性对谓词进行分类的过程.
最后一节将深入讨论扫描的机制以及索引如何定义, data distribution, 甚至谓词的使用也会影响查询的性能.
Skills
Languages
Python, C++, Java, Delphi, C#, TypeScript, JavaScript
Frameworks
Hadoop, Apache Spark, JSON Web Tokens (JWT), OAuth 2, Django REST框架,Django, .NET, Spring, Spark, Twisted, Spring MVC, Angular
Libraries/APIs
PySpark, NumPy, Pandas, Asyncio, OpenSSL, Scikit-learn, ZeroMQ, Natural Language Toolkit (NLTK)
Tools
Celery, RabbitMQ, WildFly, Ganglia, Amazon Elastic MapReduce (EMR), VMware vSphere, Apache Avro, Subversion (SVN), Git, Jenkins
Platforms
Amazon Web Services (AWS), Apache Kafka, Windows, Linux, Ubuntu, Oracle Database, Unix, Jupyter Notebook, HP-UX, Solaris, Docker
Storage
Elasticsearch, PostgreSQL, Microsoft SQL Server, Cassandra, Amazon S3 (AWS S3), Memcached, Redis, Oracle RDBMS, MongoDB, SQL Server 2012, MySQL
Other
RESTful Web Services, Data Mining, Data Engineering, OpenID Connect (OIDC), Azure Databricks, WebLogic, Parquet, VMware ESXi, Apache Cassandra, NATS, Apache Flume, Cryptography, Tornado
Paradigms
Scrum
Education
Bachelor's Degree in Computer Science
University of Babeș-Bolyai - Cluj-Napoca, Romania
Certifications
Certified Scrum Master
Scrum Alliance
Oracle Certified Associate, Java SE 7 Programmer
Net BRINEL SA
How to Work with Toptal
在数小时内,而不是数周或数月,我们的网络将为您直接匹配全球行业专家.
Share your needs
Choose your talent
Start your risk-free talent trial
Top talent is in high demand.
Start hiring