Dror Helper
Specialist solution architect @AWS
Tel Aviv, Israel
Actions
Dror is a senior solution architect working at AWS. In his current role Dror assists companies migrate to the cloud and modernize their existing code.
He has been writing software professionally for more than a decade, during which he has worked for industry giants such as Intel and SAP as well as small startup companies. He has extensive knowledge of many programming languages and platforms including C++, assembly, .NET (C#/VB) and Java.
Dror is a Pluralsight author and public speaker. He is an expert in agile methodologies and software engineering practices.
In his blog (www.helpercode.com) Dror writes about programming languages, software development tools, clean code, cool programming languages and anything else he finds interesting.
Area of Expertise
Topics
Testing strategy for your cloud based ASP.NET Core service
These days companies need to rapidly develop new features without sacrificing quality. Software teams embrace practices such as continuous integration and test automation as building, testing and deploying and increasingly complex codebase becomes impossible.
In order to succeed with automatic testing in a cloud based, microservice architecture you will need clear guidelines and rules that will help you decide what to test and how to test your micro services.
In this talk I will cover the test pyramid and how it applies to ASP.NET core microservice and the different types of automatic tests needed to guarantee high quality in your software project
Test automation for Serverless Applications
When developing desktop or server application it's easy to run and test them on your development machines. However, serverless applications are built from code running on AWS Lambda and services that run in the cloud, and it seems it's impossible to test them during development. This session will cover the different types of automated tests, the tools you can use for testing AWS Lambda functions written in C#, and how they can be applied to create high quality serverless applications.
Debugging With Visual Studio Beyond ‘F5’
Debugging is part of any development process, but unfortunately it’s never planned or expected. On top of that, it’s rarely approached in a structured way, and while many modern IDEs have powerful debugging tools – most developers are not aware of how they can be used to reduce the time and pain of debugging. The whole act of debugging is done as an ad-hoc, time consuming activity, which is considered less interesting then developing new features or investigating the latest and greatest technology. But while there are many articles and productivity tools aimed at writing better code – faster, it seems as though it’s impossible to find resources that teach you how to effectively debug your code. In this lecture, we will discuss how to approach a debugging session, and show the latest power debugging capabilities Visual Studio has to offer. These will help you save time and pain by first understanding the problem and then fixing the bug that caused it.
5 unit testing facts I wish I knew 10 years ago
Getting started with unit tests should be simple – it is just a matter of writing code to test other code. If that is right why so many talented developers fail implementing unit tests in their daily job. I have started using unit tests 8 years ago and failed miserably. It took me 2 years and the right company to start over and learn how to use unit tests and TDD as development tools. However, it was not always clear sailing and as I progresses I found more than my share of pitfalls than blind alleys as well as a fair amount of successes.
In this talk, I will cover the non-trivial facts I learnt over the years about unit testing and the tips that I use to this day.
The secret unit testing tools no one ever told you about
There are more to unit testing than using a unit testing framework - in order to succeed you want to use the right tools for the job.
There are a few tools that almost no one talks about - some enabling creating of top-notch, robust unit tests. Some will help you run your tests better and faster.
In this session I'll explain about the inevitable maintainability problems developers face when writing and maintaining huge unit testing suits and how unit level BDD, AutoMocking, and Continuous Execution can help take control over your tests.
Electronics 101 for software developers
These days it seems as if everybody talks about the internet of things (IoT). With a cheap Arduino, Raspberry PI (or another microcontroller) every developer has the power to control the real world.
Suddenly confronted with resistors, digital inputs, analog interfaces and a weird bread board full of holes – a developer is reminded that the world of hardware can be confusing and sometimes downright frustrating.
The good news is that an electrical engineering degree is not required in order to understand and build electronic circuits.
In this talk we’ll cover the basic rules that govern the electronics world (and why they matter). We’ll talk about capacitors, resistors and other components and how to read circuit diagrams in order to understand how to use them.
Harnessing the power of AWS using .NET Core
In the past AWS and C# seemed to belong to two different eco-systems. One was a leading cloud platform while the other a widely used, powerful programming platform.
Does it mean that a developer that needs to provide a solution in the cloud must choose between the two? Not anymore.
As C# becomes truly multi-platform with the new .NET Core and the release of the AWS SDK for .NET a .NET developer can harness the power of AWS without the need to learn new languages and tools.
In this talk, I will show how to write C# code that runs in a dockerized container in the cloud or as an AWS Lambda and harness, the popular AWS services such as S3, SNS, SQS and DynamoDB.
Unit testing patterns for Concurrent code
Getting started with unit testing is not hard, the only problem is that most programs are more than a simple calculator with two parameters and a returns value that is easy to verify.
Writing unit tests for multi-threaded code is harder still.
Over the years I discovered useful patterns that helped me to test multi-threaded and asynchronous code and enabled the creation of deterministic, simple and robust unit tests.
Come learn how to test code that uses concurrency and parallelism – so that the excuses of not writing unit tests for such code would become as obsolete as a single core processors.
Creating serverless architecture with AWS Lambdas
Cloud development has changed when AWS Lambda was introduced in 2014. Instead of provisioning and managing servers, developers were able to focus on their code, creating event-driven, on-demand functions. Harnessing automatically scalable, always available code. Using Lambda functions integration with other AWS services and step functions developers can create whole applications.
In this talk, I’ll show how to use Lambdas to create scalable, fault-tolerant applications using event-driven, cost-effective, serverless architecture.
What’s wrong with TDD
Test driven development is a well know agile methodology that is practiced throughout the software industry.
A developer that uses this “test first” approach is more productive, writes less bugs and his coffee tastes better (I might have made up the last one).
If TDD is so great how can there be a piece of software in the world is not developed using TDD?
The truth is that there is not lack of stories of bright individuals who tried and failed using TDD at their project as well as others who claim it to be a complete waste of time.
So who is right – the TDD practitioners or the ones that claim it to be a complete hoax?
In this session I’ll discuss Test Driven Development (or is it Test Driven Design) its pro & cons and the when and how to use it in order to succeed in your software project.
All you need to know when getting started with Amazon Web Services
Cloud computing is the future! Cloud computing helps reduce development times, grow your infrastructure with your business and perform tasks you could only dream of from the comfort of your own keyboard.
But it’s not all fun and games: there's security you need to set up, an endless list of service you could get lost in as well as new architecture and design considerations that could change the way you write your code.
In this session I’m going to teach you everything you need to know about AWS - how to create a new account, secure it and the services you want to know about that makes all of the difference.
The 7 commandments of the effective Legacy code maintainer
Almost every software developer has faced this scenario:
There’s a new feature to build or a bug to fix on an existing product – which was written a long time ago by someone else. More often than not that code had become hard to understand and impossible to change.
So what can a developer tasked with this frustrating work do?
After years of helping developers fix and refactor their companies codebase, I can tell you there are ways to work effectively with legacy code.
In this this session I’ll explain what worked and how you should approach legacy code and how it can even improve over time, by using those practice you can make sure that the next developer would have an easier job – which is important because it might be you...
A software developer guide to working with AWS
Cloud computing is the future! Cloud computing helps reduce development times, grow your infrastructure with your business and perform tasks you could only dream of from the comfort of your own keyboard.
But it’s not all fun and games, one could get lost in the endless list of available services and on top of that there are architecture, design and security considerations that change the way you write your code.
In this session I’m going to teach everything you need to know when starting with Amazon web services from creating a new account, securing it and using the services you need to get the job done.
From Clever code to Better code
Part of the software developer job is to find new and better ways to solve problems. Writing code using his/her wits, intelligent and creativity.
However, sometimes being too clever can lead to hard to track bugs, maintainability issues and impossible to understand code.
Is all cleverly written code good code, or is it a problem just waiting to happen?
In this session, I will show you real world examples of cleverly written code. And show you how we can use clean code principles, refactoring and design patterns, to transform that code from clever code to good code, code one that your peers - and future self - would thank you for writing.
What's wrong with Unit Testing Frameworks and what YOU can do about it
I've been practicing TDD and unit tests for more than a decade and had my share of failures. I've learnt that there is more to unit testing than using a unit testing framework - in fact most of the time the unit testing framework was the reason I failed.
In this session I'll explain about the inevitable maintainability problems developers face when writing and maintaining huge unit testing suits, what unit testing frameworks can and can't do to help you and how to compliment them using and how to compliment unit testing with tools that can help take control over your tests.
Developing multi-platform dockerized microservices using .NET Core
Since its launch in the early 2000s the .NET framework has enabled developers to write code using cutting edge technologies in many different languages – as long as that code run in the Windows/Microsoft eco system.
In the past, the choice between writing code in C# to writing cross platform applications was an important one, which effected every project from the first line of code written all the way to the deployment stage. Therefore, C# developers’ could only look in envy as the world moved to container based micro services and cloud deployment – until now.
With the new ASP.NET Core a C# developer can write REST based microservices using the latest and greatest Visual Studio and deploy them in a different OS - or the cloud using Docker, quickly and effortlessly.
In this session, I will show how to harness ASP.NET Core to create a modular architecture, which is easily developed and deployed, and how the new Docker for windows can help us easily deploy .NET code on any platform.
C++ Linux development using Visual Studio
C++ developers working in Linux have powerful tools, and a wide selection of libraries to use. On the other hand, writing C++ code using Visual Studio is easier and more productive.
Up until recently, C++ developers needed to choose between developing with the power of the Linux ecosystem or simplicity of the most powerful Windows IDE.
Not anymore! Now developers can write, build and debug C++ code on Linux within the new Visual Studio 2017.
In this talk, I will show how to set Visual Studio to write, build and debug code on Linux desktop, servers, and ARM devices.
Batlle of the .NET Mocking Frameworks
Writing unit tests is hard, isn’t it? You need an entire set of tools just to start. One of the crucial decisions when building this set is picking up a mocking framework.
But BEWARE! What you choose has the ability to make you or break you! In this session,
Dror – once a mocking framework developer – will cover the capabilities and functionality of the leading .NET mocking frameworks, showing the good and the bad of the different options (both free and commercial), and making them battle to the death!
Choosing the right BDD framework for your team
Behavior Driven Development is a process that uses executable specifications and help teams formalize TDD best practices.
It seems as if once you have created stories and use cases all that is left is to use your BDD tool of choice to implement the features your users want and need.
Truth be told not all of the tools are created equal – There are some tools that do not use external text based files written using Given-When-Then to create and run your specifications.
So which tool would you choose? Your tool of choice will dictate your team’s development process and even affect the success (or failure) of your project.
In this session I will show the different tools, divide them into groups and explain how to decide which tool is the best for your team.
Developing serverless applications using C#
AWS Lambda enables you to trade operational complexity for agility and better pricing, without compromising on scale or reliability. Writing AWS Lambda using C# means you can run your code without provisioning servers, configuring autoscaling or patching operating systems.
In this talk I’ll explain about AWS Lambda, the serverless application lifecycle and how a to create serverless applications built out of code and services in the cloud using C# and your IDE of choice.
Working with C++ Legacy Code
Legacy code is the bane of most developers. Even so in C++ where you can find code that was created more than a decade ago.
When a developer needs to add a feature or fix a bug in such codebase he's faced with a problem - how to add code to a mess without creating a bigger mess as well as additional bugs on the way?
In this talk I show what worked for me when working with large, undocumented piles of C++ code, the practices and patterns that I use and how to transform unmaintainable code into code that can be extended and improved.
C++ Unit testing - the good, the bad & the ugly
C++ is a powerful language when used by a seasoned developer. It is being used everywhere from operating systems and compilers to cross platform mobile apps development. But this power comes with a cost - C++ programming is not simple nor easy – with memory leaks, stack overflows and strange exceptions, a software developer needs all of the power he can use.
By harnessing the power of unit tests a software developer can find defects quickly, avoid regression and speed up development time.
In this talk I’ll show how to use the right unit testing tools and practices available that will help you get your C++ code under control and even test legacy code which no one ever want to touch.
Navigating the TDD alphabet soup
TDD, BDD, ATDD are a few of the acronyms in the wide world of emergent design. It’s seems that every day a new xDD methodology is born with the promise to better (or at least newer) than what came before.
Which methodology is better? And how exactly would it benefit the Development Life cycle?
This is the talk to help sort out the various methodologies – Where did they come from, which tools to use, and discuss how and when to use each one of them.
And finally answer the question whether or not there’s one “DD” out there to rule them all.
NDC Oslo 2023 Sessionize Event
DevConf 2022 Sessionize Event
Developer Week '21 Sessionize Event
NDC Oslo 2020 Sessionize Event
Update Conference Prague 2019 Sessionize Event
.NET Developer Days 2019
- Debugging With Visual Studio Beyond ‘F5’ (https://net.developerdays.pl/debugging-with-visual-studio-beyond-f5/)
From Clever Code to Better Code (https://net.developerdays.pl/from-clever-code-to-better-code/)
STEAM 2019
- The secret unit testing tools no one has ever told you about
- Battle of the .NET mocking frameworks
Reversim Summit
https://summit2019.reversim.com/session/5c5145067314030017e1c2b5
DevDays Europe 2019
- Session: A Software Developer Guide to Working with AWS
- Workshop: AWS Lambda
NDC Porto 2019 Sessionize Event
NDC TechTown 2018 Sessionize Event
Cloud Developer's Days 2018
- Harnessing the power of AWS using .NET Core
- Creating serverless architecture with AWS Lambdas
Confoo Montreal 2018
- Developing multi-platform microservices using .NET core
- Harnessing the power of AWS using .NET Core
IT/Dev Connections 2017
- How Unit Testing Frameworks Hurt your Unit Testing Efforts
- Unit Testing Patterns for Concurrent Code
.NET Developers Days 2017
- 5 unit testing facts I wish I know 10 years ago
- Secret unit testing tools no one ever told you about
- Unit testing patterns for concurrent code
NDC Oslo 2017
- Working with C++ legacy code
- C++ Unit testing - the good, the bad & the ugly
NDC Oslo 2016
Unit Testing Patterns for Concurrent code
https://vimeo.com/171317257
Dev Week
The Secret unit testing tools no one ever told you about
NDC London 2016
Electronics 101 for software developers
https://vimeo.com/156397798
Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.
Jump to top