Andrei Smirnov,土耳其安卡拉的开发者
Andrei is available for hire
Hire Andrei

Andrei Smirnov

Verified Expert  in Engineering

Full-stack Developer

Location
Ankara, Turkey
Toptal Member Since
December 11, 2014

Andrei是一位充满激情的全栈软件工程师,拥有20年的经验,曾在微软等领先品牌工作, EMC, Motorola, and Deutsche Bank. 他利用各种移动、桌面和web软件栈构建了许多成功的项目. 安德烈精通多种语言, including C++, Go, and JavaScript, 以及最受欢迎的框架, libraries, and tools.

Portfolio

A Blockchain Startup
Go,区块链,Solidity,以太坊智能合约,PostgreSQL...
OnyxCorp
WebAssembly, WebRTC, Protobuf, Chromium, CMake, QML, JavaScript,密码学...
DreamFactory
REST api, RESTful开发,c#, .NET

Experience

Availability

Part-time

Preferred Environment

Windows, Linux, MacOS

The most amazing...

...我编写的是一个利用现代后量子加密算法的安全通讯平台.

Work Experience

Senior Blockchain Engineer

2021 - PRESENT
A Blockchain Startup
  • 设计和开发各种区块链项目.
  • 分布式系统设计、可观察性和警报.
  • 集成了各种第三方加密/区块链项目.
Technologies: Go,区块链,Solidity,以太坊智能合约,PostgreSQL, Decentralized Finance (DeFi), Grafana

Lead Software Engineer

2015 - 2021
OnyxCorp
  • 设计并开发了后量子, 包括客户端框架的安全消息传递系统, client applications, back end, and web portal management.
  • 使用最新的c++ 17特性重构遗留加密代码, 具有完整的测试覆盖和CMake和Conan的新构建系统.
  • 设计和集成语音和视频通话与WebRTC.
  • 增加了对WebAssembly (Emscripten)的支持,使消息传递应用程序能够在浏览器中运行.
  • 指导新的团队成员,进行技术网络研讨会,并维护详细的文档.
Technologies: WebAssembly, WebRTC, Protobuf, Chromium, CMake, QML, JavaScript,密码学, Go, React, Qt, C++

Freelance Software Engineer

2015 - 2015
DreamFactory
  • Designed and developed .. NET SDK for DreamFactory API: http://github.com/dreamfactorysoftware/.net-sdk.
技术:REST api, RESTful开发,c#, .NET

Technical Lead

2014 - 2015
Return On Intelligence
  • 设计并开发了一个员工福利管理(保险、退休等)门户网站.).
  • 介绍了一种web服务模拟方法,以简化本地调试和故障排除.
  • 启用使用Selenium的自动测试. 实施和执行产品质量工具.
  • 极大地改进了公司构建和部署策略,以最小化日常工作.
技术:指导、人员管理、SonarQube、c#、Web Services、AngularJS

Lead Application Developer

2013 - 2014
Deutsche Bank
  • 为桌面互操作性设计和开发了一个元数据驱动的框架,并使几个现有的应用程序能够使用这个框架. 目前,所有的Autobahn软件都在使用这个名为Synapse的框架.
  • 增强WPF应用程序(外汇交易)在投资银行方面的性能, security, and code quality.
  • 为银行应用程序开发了许多WPF控件(MVVM).
技术:Roslyn, Windows Presentation Foundation (WPF), .NET, C#

Software Developer

2010 - 2012
Microsoft
  • 开发了一个快速数据序列化SDK(类似于Google ProtoBuf), 包括c#代码生成器:Github.com/microsoft/bond.
  • 为内部云基础架构构建了面向对象的日志框架(业务数据日志), now used by AdCenter and Bing.
  • 为Azure当前使用的全新键值存储(NoSQL)实现了远程过程调用(RPC)引擎和工具集.
技术:MapReduce, c++, NoSQL, .NET, C#

Senior Software Engineer

2009 - 2010
EMC Corporation
  • 在基于linux的高可用性集群(HA)上工作, 集成和配置用于网络附加存储(NAS)的Pacemaker.
  • 介绍了HA集群中cgroups特性的使用.
  • 用C语言开发了一个内存不足(或超提交)监视守护进程.
技术:Pacemaker, Linux, C, c++

Senior Software Engineer

2006 - 2009
Motorola, Inc.
  • 曾在多个摩托罗拉移动设备平台工作, 实现安全特性(JSR177), 品牌服务(T-Mobile MyFaves), etc.
  • 将Adobe Flash Lite播放器集成到主流摩托罗拉移动平台(P2K). Collaborated with Adobe.
  • 参与AJAR移动平台开发.
  • 在c#和c++中开发了一些嵌入式软件开发的内部工具.
Technologies: .NET, C++

Senior Software Engineer

2002 - 2005
电信协会
  • 使用c++、STL和OpenGL设计并开发了GIS (Geo information services)三维引擎.
  • 用c++开发了一个跨平台的计算几何数学库.
  • 设计并构建了一个功能齐全的应用程序套件,用于操作GIS数据.
  • 用C和c++编写了一个大图像处理引擎(卫星图像).
技术:GIS, Qt, OpenGL, 3D图形,c++, C

REVERSCREEN

http://github.com/pinebit/reverscreen
Invented, designed, 并开发了一个剪切工具的概念,通过利用计算机视觉算法提供自动对象剪切. 这个工具被UX/UI设计人员积极使用.
栈:Qt, c++, OpenCV库,等等.

DB Autobahn

http://autobahn.db.com
参与Autobahn FX产品开发:从协议到用户界面(.NET/WPF).
我设计并实现了一个灵活的互操作性协议,它连接了许多Autobahn产品(现有的和新的). 该系统名为Synpase,目前已投入生产,并正在推动高速公路生态系统的发展.

Demoscene: 4k Intro

http://www.pouet.net/prod.php?which=54415
用C和OpenGL创建了一个自制项目,4096字节.

Sochi - 3D Engine for GIS

http://www.youtube.com/watch?v=bNE4WX1v-W8#t=204
使用OpenGL在C/ c++中开发跨平台3D引擎. It was used by Russian DoDF.

计算几何API的诺基亚Gate5 GmbH

http://www.youtube.com/watch?v=Yh1eUudkxgc
设计并开发了2D/3D图形计算几何库, used in a fork of Nokia Maps.

Autobahn Toolbar

http://www.toolbar.autobahn.db.com
实现工具栏的核心功能,这是许多交易应用程序使用的核心用户体验组件.

Vault

http://github.com/pinebit/vault
一个小的c++库,管理密码保护的文件,有一个非常简单的API使用.

假设您需要在密码保护的文件中持久化一些用户敏感信息——这个小库可以满足这一需求.

React-CR

http://github.com/pinebit/react-cr
一个在JSX中用于条件渲染的小库. 这里的想法是声明式地表达条件(JSX风格),而不是注入有条件的JavaScript代码. 该库在生产中的一些实际项目中使用.

The Largest App

http://github.com/pinebit/largestapp
一个桌面应用程序,用于查找计算机上最大的文件和文件夹. 我们的想法是使用Qt5/QML构建一个入门应用程序. 为了使它更有用,我让它搜索计算机上的大文件.
Stack: C++ and Qt5 with QML UI.

Jet Pipes

http://github.com/pinebit/JetPipes
又是一个使用Qt3D的“管道屏保”. 最初,这只是一个入门Qt3D的使用. Still, 后来我为另一个项目添加了“引导挤压数学”算法, and eventually, 这被转换成这个有趣的应用程序.
Stack: C++, Qt 5, Qt3D.

又一个以太坊暴力破解工具

http://github.com/pinebit/eth-brute-force
一个小的命令行应用程序,用于查找与给定ETH地址匹配的私钥.

其他区块链工程师都在做这个练习,只是为了好玩.

如果你真的想使用这个工具, 那么请记住,遇到与其他人以太坊地址对应的私钥的概率约为1 / 2^256. 只覆盖1%的键空间, 即使我们使用的计算资源允许我们每秒生成100万亿个密钥, it would take us roughly years. Eventually, 你的电费和硬件成本将超过“入侵”某人地址所带来的好处. You've been warned.

ETH Transactions Listener

http://github.com/pinebit/eth-listener
这是一个用Go语言编写并使用Geth API的简单控制台应用程序. 目的很简单:监视指定ETH地址的任何交易, 包括智能合约(令牌).
Stack: Go, Geth

Go Server Boilerplate

http://medium.com/@pinebit/my-own-golang-server-boilerplate-ed12ec33a0b3
将最佳实践打包在一个模板中.

很多次,我被要求引导一个新的Go项目. 通常的要求是创建一个微服务框架,该框架使用经过实战测试的包,具有良好的项目结构,易于扩展和开箱即用.

我记得我创建了一堆这样的项目,直到我意识到我应该做我自己的“样板”项目,我可以很容易地在GitHub上用作模板.

This is why the project was born.

文章:如何在技术面试中胜出

http://medium.com/@pinebit/how-to-fail-a-coding-interview-d5b5e93adeee
在过去的十年里,我为许多公司进行了500多次编程面试, 从小型创业公司到IT巨头. 我学到了很多关于如何在编程面试中取得好成绩和如何失败的知识. 在我过去二十年的软件工程生涯中,我一直站在另一边. 在这篇文章中,我将告诉你应该注意什么,以及如何在技术面试中取得好成绩. 在文章的最后,我会给你一个完整的“外卖”清单,供你准备.

Languages

C, Go, QML, C++, C#, UML, JavaScript, Visual Basic for Applications (VBA), 领域特定语言(dsl), Python 3, SQL, Solidity, C++17

Frameworks

Redux, .. NET、Qt、Google Protocol Buffer、Windows Presentation Foundation (WPF)、AngularJS、NUnit、ASP.. NET Web API, Windows通信框架(WCF), Chromium嵌入式框架(CEF), Qt 5

Libraries/APIs

Protobuf, React Redux, React, OpenGL, OpenSSL, Win32 API, WebRTC, REST API, jQuery

Tools

Stash, Jira, ReSharper, Microsoft Visual Studio, Git, Roslyn, CC.. NET、SonarQube、CMake、Qmake、Grafana、Pacemaker、JetBrains、Visual Studio、GIS、JSX

Paradigms

Concurrent Programming, Unit Testing, Test-driven Development (TDD), REST, MapReduce, RESTful Development

Platforms

Windows,区块链,黑莓,Linux, Docker, MacOS,以太坊,Windows Phone

Other

Cryptography, IPC, WebSockets, APIs, 3D Graphics, Code Contracts, MSYS2, Cryptocurrency, Web3, Ethers.js, Prometheus, Web Services, Chromium, WebAssembly, People Management, Mentorship, Embedded Systems, Qt 3D, Custom Protocols, App UI, Ethereum Smart Contracts, Decentralized Finance (DeFi), Interviewing

Storage

NoSQL, Microsoft SQL Server, SQLite, PostgreSQL, MySQL, RocksDB

1996 - 2002

Specialist Degree in Engineering

波罗的海国家技术大学-圣彼得堡,俄罗斯

Collaboration That Works

How to Work with Toptal

在数小时内,而不是数周或数月,我们的网络将为您直接匹配全球行业专家.

1

Share your needs

在与Toptal领域专家的电话中讨论您的需求并细化您的范围.
2

Choose your talent

在24小时内获得专业匹配人才的简短列表,以进行审查,面试和选择.
3

开始你的无风险人才试验

与你选择的人才一起工作,试用最多两周. 只有当你决定雇佣他们时才付钱.

Top talent is in high demand.

Start hiring