dotNetConfPL 2015

dotNetConfPL 2015

In the previous weekend, on October 31, together with Michal and Pawel we held 3rd edition of dotNetConfPL.

In this year, sessions were very diverse: from ASP.NET vNext, through unit testing, functional programming, Vargant, software architecture, all over to Internet of Things. Great thanks to speakers who did awesome job.

If you missed it you can watch videos on youtube.

Make sure to subscribe to dotNetConfPL youtube channel to do not miss upcoming events.

If you have any feedback and suggestions, please tweet mentioning @dotNetConfPL and #dotNetConfPL, or leave comments below this post.


ConnectJS and All Things Open

Last month I had a pleasure to speak at ConnectJS and All Things Open conferences.


ConnectJS 2015

ConnectJS was not only about JavaScript, but about web development in general. There was even track dedicated for UI Design and User eXperience. The most popular during the conference were talks about ES6/ES2015 and React.

I delivered two sessions:

TDD with TypeScript, AngularJS and Node.js

// video coming soon


Aurelia – the next generation Framework you will love

// video coming soon


I addition to my talks I attended the following sessions:

Everything I Needed to Know, I Learned in Rabbinical School (Yitzchok Willroth) – this session was about sharing knowledge, and cooperation between developers. One thing I noticed, not only at conferences, but also at local meetups in Seattle area is that many people would like to go and speak at the conferences, but “they aren’t doing anything interesting in day-to-day job and they are not expert in anything”. They should have been at this session. Yitzchok was explaining how you can help others, and engage in Open Source. Moreover, he emphasized one, simple truth: every developer has something interesting to share.

Building Web Sites that Work Everywhere (Doris Chen) – very useful overview of web compatibility problems, and recommendation of tools that can help with that, like Autoprefixer. I also liked the quote from Patrick Lauke: “The userAgent property is ever-growing pack of lies”. Doris recommended that we should prefer feature detection over relying on userAgent strings.

Re-evaluating Front-end Performance Best Practices (Ben Vinegar) – the most important lesson learned at this session is the fact that whatever you find in JavaScript books written 2+ years ago might be already obsolete. Moreover, whatever you learn today, might be obsolete tomorrow. This is definitely not a good news for developers, but we need to deal with that and when reading anything on the web – thinking for ourselves.

Video killed the Telephone Star (Ben Klang) – WebRTC is coming to the browser. In this talk Ben demonstrated web app that allows to do a video conference (his implementation of Google Hangouts in Rails).

Lessons learned with TypeScript and ES2015 (Dylan Schiemann) – it was an overview of TypeScript and ES6 based on experience working on Dojo 2 Framework – the second largest application written in TypeScript (after Azure Portal). After this presentation I talked to Dylan, and he showed me another projects his company SitePen is working on: Intern – very flexible and powerful testing framework, and Mayhem – JS Framework written in TypeScript (still under development).

Functional Programming Basics in ES6 (Jeremy Fairbank) – tips&tricks you can do in JavaScript(ES6), but you cannot in OO strongly typed languages like C# or Java.

Lessons from Open Source @ Scale (Christine Abernathy) – Facebook has over 300 repos in github (after this talk I checked how many Microsoft have – almost 300). Christine explained how they help community by delivering Open Source, and how community helps them by contributing to their software.

Introducing Trix (Javan Makhmali, Sam Stephenson) – Javan and Sam created web based text editor, and they open sourced it right after this talk.

The rise of “API” first applications (Travis Tidwell) – this talk was about Micro Services, and modern applications architecture where we have multiple, independent endpoints responsible for one functionality each.

It Was Like That When I Got Here (Paul M. Jones) – it was a great talk about approaching legacy applications, and refactoring techniques. I enjoyed it even despite the fact that Paul was using PHP examples…I actually felt a bit sentimental as PHP was a language that get me started with Web Development when I was back in middle/high school 🙂

All Things Open

All Things Open 2015

All Things Open is one of the largest Open Source conferences in the United States. This year there was over 1700 attendees, and 13 tracks!

I gave a talk about TDD with TypeScript, AngularJS, and Node.js – the same as at ConnectJS.

On a day before the conference there was 5k run/sightseeing event at the evening. It was exactly what I needed before 2 days of seating. Kudos for organizers 🙂

Most of my time during the conference I spent in the room with front-end related sessions. Carina C. Zona explained problems with artificial intelligence and machine learning – Consequences of an Insightful Algorithm. Seth Vargo made an overview of Vargant – product that allows to create and configure universal development environment for every developer in the team. Christian Heilmann was encouraging people to learn JavaScript, ECMAScript 6, and to stop supporting old browsers, such as IE8, that has security vulnerabilities. Yehuda Katz explained how he and other contributors of Ember.js created version 2 without breaking a lot of APIs from version 1, and thus allowing developers for a smooth transition. I also liked the session about Netflix architecture by Andrew Spyker. I wish Andrew had more time to explain details more deeply. The surprising takeaway is that Netflix has 3x of everything. Which means – for every server, service and API they have additional 2 redundant.

The most widely commented session at the conference was keynote by Mark Russinovich. I was pretty surprised that people were surprised by Microsoft doing so much Open Source. For me this is a known fact for a few years now, but it seems that the rest of the World doesn’t know yet, and still see Microsoft as closed-source corporation that want to lock you in their technology.Well…that’s not true anymore. I also had a pleasure to met Christian Heilmann – former Evangelist of Mozilla who joined Microsoft with one mission: kill the Internet Explorer. I really enjoyed his session on ES6, and keynote.

At the speaker dinner I had a pleasure to seat at the table with Andrew Spyker from Netflix, Michael Laing of New York Times, Christine Abernathy from Facebook, and Eric Martindale – entrepreneur from Silicon Valley. We had interesting conversation of the future of Netflix, Internet Television, bitcoin, and digital newspapers. I also learned that New York Times is the only news paper that is profitable in the transition from paper to electronic.

At All Things Open I finally got awesome Ninja Cat stickers:

ThinkPad X1 stickers

Strange Loop and NCDevCon

Last week I had a pleasure to speak at Strange Loop and NCDevCon.

Strange Loop

At the Strange Loop I presented Aurelia – the next generation JavaScript Framework:

Strange Loop is an intersection of everything: from Researchers, through programmers maintaining 20 years old systems that still works, Web Developers using the latest Frameworks (like React), Web Developers using mature (AKA ‘old’) frameworks (like Spring), DevOps deploying with Docker, large scale distributed systems architects, to Common Lisp fans. The most important thing is – most of the people at this conference are real passionate programmers. I really recommend you to check out Sam Aaron’s session: Beating Threads – live coding with real time. Sam is a researcher who created programming environment that allows you to compose music by writing code. Something that can be used today, which is cool, and he presented it with such a passion that cannot be described by words.

All videos from Strange Loop are available on their YouTube channel.

If you think that now everyone is creating Web Apps and Mobile Apps – go to Strange Loop! You will see a different World.

The Strange Loop 2015


I’ve been at NCDevCon only for the day two, because of overlap with Strange Loop, and I presented how TypeScript helps to build large scale applications. Unfortunately, there is no video from my session, because just before my talk there was a power outage. I, and other speakers (if they still had battery), had to present from laptops while people were looking from behind our shoulders.

NCDevCon 2015

I gave similar talk earlier this year at .NET Developers meetup in Redmond. You can find video and slides in this blog post.

At NCDevCon I’ve seen only 3 sessions, because 1 hour after my session, in addition to power outage, the fire alarm started beeping, and the rest of the conference was cancelled. Videos from day 1, and maybe some from day 2 (if speakers record them at home) will be available at

This conference was more down to Earth for me, as everybody was talking about Web and Mobile. You can find more detailed overview in this blog post.

On my way back from Raleigh, NC (where NCDevCon took place) I had connection flight in Minneapolis, MN. This gave me an opportunity to see the airport of XXI century: power outlets everywhere, free WiFi, and iPads for free public use (utilized also for ordering food at restaurants).

Minneapolis airport
Minneapolis airport
Minneapolis airport
Minneapolis airport

Seattle Code Camp: Aurelia and TDD with TypeScript, AngularJS, and Node.js

Last Saturday I had a pleasure to speak at Seattle Code Camp. It was an amazing event, which was free. There were over 50 talks, 500 attendees, and raffle with many prizes, e.g., Microsoft Surface Pro 3!

Seattle Code Camp - Aurelia

Aurelia – the Next Generation JavaScript Framework you will love

Aurelia is a next generation JavaScript client framework that leverages simple conventions to empower your creativity created by Rob Eisenberg, creator of Durandal, who left Angular 2 team to create cleaner and simpler JavaScript framework of tomorrow written in ECMAScript 7!

In this talk I am showing how to get started with Aurelia, and how ES7 (aka ES 2016), JSPM, System.js, babel, and gulp can make you development amazingly fast, smooth, and enjoyable.




You can find demo app I created during presentation on github.

TDD with TypeScript, AngularJS, and Node.js

TypeScript helps to develop and maintain large web applications. Strong typing prevents from introducing bugs, but it doesn’t mean we can give up on testing. In this talk I showed how we can use TDD for building web applications with TypeScript on the client side (with AngularJS) and server side (with NodeJS). I showed a few JavaScript testing frameworks (mocha, Jasmine), and showed a few tools that can make Web Developer’s life easier (npm, gulp, bower, tsd, karma, protractor).




You can find demo app I created during presentation on github.

More is coming

I will be speaking about Aurelia, and TDD with TypeScript, AngularJS, and Node.js at various events this fall. You can find more details in my speaking page.

dotNetConfPL 2014: summary and sessions recap

The second edition of dotNetConfPL was pretty successful. I am very pleased with all sessions, and speakers performance.

All sessions went smooth, but one. Barbara Fusinska could not run screenshare on Google Hangouts. Her session was recorded later and is already available. The only way to inform other about the problems during the conference was through JabbR or displaying Blue Screen of Death instead of her session. Adding something on website would require us to redeploy. We didn’t want to do that. For the next year we will prepare some placeholder for information, which can be set dynamically.

This year we had one non-technical talk: Talent for $2. You would be tempted to! I think this talk has great potential. It includes a lot of pointers and tips. I encourage you to look at it. I watched Simon Sinek’s TED talk: “How great leaders inspire action”, and I took Clifton’s test to discover my talents. My 5 talents are:

  • Learner
  • Focus
  • Responsibility
  • Deliberative
  • Analytical

I am very interested if some of you did this test, and what results did you get. Share it in comments!

The most popular feedback about the conference is: “We need it more often than once a year”. We will try to figure out something 😉

Check all sessions recap:

Maciej Aniserowicz – Unit testing in practice, vol 2

1:11 – agenda
1:55 – unit tests vs integration tests
4:14 – DB testing: “in memory”
7:14 – DB create script
7:50 – DEMO start
9:25 – tests outline
11:40 – creating InMemoryDbFixture (helper class for tests)
13:40 – tests implementation
17:00 – first method implementation (to pass test)
18:29 – installing packages: autofixture, xunit.extensions, autofixture.xunit (for random string generation)
19:30 – applying installed packages for automatic string generation
21:15 – second method implementation (to pass test)
24:20 – modifying InMemoryDbFixture class to respect join on tables
26:12 – pros and cons for testing with real DB
27:50 – separating tests for mock DB, and real DB
30:09 – script for drop everything in DB
32:15 – creating fixture for running db scripts (drop_everything.sql and install.sql)
34:50 – baking fixture into test class and implementing tests for real DB
42:00 – turning off NCrunch ability to run tests simultaneously
43:40 – summary
45:10 – Q&A

Filip Wojcieszyn – Everything you want to know about Roslyn

1:55 – C# compiler today
3:20 – compiler as a service
4:05 – Roslyn influence
6:45 – Roslyn APIs
7:58 – Tools required for Roslyn
10:25 – compiler as a service DEMO
17:17 – Roslyn for code analysis (static, semantic)
22:24 – code analysis with Roslyn DEMO (syntax visualizer)
26:21 – sanity check DEMO
31:40 – SyntaxRewriter DEMO
35:55 – Roslyn APIs (one more time)
38:40 – building tools for Visual Studio with Roslyn SDK
39:25 – Diagnostic + Code fix DEMO
46:57 – Custom C# dialect DEMO
50:30 – Examples of Roslyn in Real World
52:00 – Q&A

Barbara Fusinska – Aspect-Oriented Programming (AOP)

1:37 – Agenda
3:29 – History of AOP
4:57 – Cross cutting concerns
8:50 – What the heck are aspects?
13:01 – demo app presentation
15:23 – Some benefits of AOP
16:15 – DEMO: adding functionality to existing method of demo app
23:55 – DEMO: LoggingAspect
27:00 – DEMO: DefensiveProgrammingAspect
28:23 – DEMO: TransactionAspect
30:00 – Where you’ve been using AOP without knowing it
33:15 – DEMO: communication with external services and cleaning code with aspects
42:02 – Testing aspects usage
46:10 – DEMO: How to test aspects and possible problems

Jakub Gutkowski – Server Side or/and Client Side MVC ???

0:45 – Agenda
1:06 – Client Side vs Server Side
6:22 – SPA (Single Page Applications)
14:00 – Problems with SPA
16:58 – Solutions?
19:20 – DEMO: SPA inside not SPA
23:39 – DEMO: SPA without server
26:20 – JavaScript everywhere? JS approach by Twitter, Basecamp, AirBnB, Instagram, Facebook
34:20 – How we can/should use JavaScript
35:13 – DEMO: Push State
40:53 – summary
41:22 – Q&A

Patryk Góralowski – Talent for $2. You would be tempted to!

3:39 – how to answer a question: who you are?
6:05 – development
6:59 – self development
7:58 – our personal resources: body, mind, emotions, belifies
14:00 – task 1: why your are here today? give 10 reasons, select 3 most important, and ask why each of them
19:30 – expected result from task 1
21:02 – about Simon Sinek (author of the process given in task 1) and his TED talk: How great leaders inspire action
26:35 – philosophy of our self development
27:35 – about Mike Markkula, and philosophy of Apple
29:34 – #1: empathy (understand customer needs better than others)
30:32 – task 2: write down your needs
30:53 – #2: focus (eliminate all irrelevances)
31:29 – task 3: eliminate all irrelevances at your work
33:10 – #3: impute desired characteristics
35:55 – task 4: identify your “imputed characteristics”
37:27 – invest $2 to discover your talent ($9.99 for 5 talents) with Gallup Strengths Center
39:55 – what means talent by Gallup Institute
42:06 – strength = talent + knowledge + skills
43:33 – Clifton’s test
45:05 – 5 talents discovered by Patryk
49:22 – summary
50:46 – recommended books
51:45 – Q&A

Maciej Grabek – Business Requirements in the form of a code: a few words about BDD with SpecFlow

1:25 – Agenda
2:20 – DEMO #0: unit tests – how we do that, and challenges in interaction with business people
5:03 – business requirements and unit tests (BDD)
7:02 – Applying BDD (tools)
9:25 – DEMO #1: simple example (translating behavior description to C# code)
16:53 – DEMO #2: parameters
18:45 – DEMO #3: scopes
23:05 – DEMO #4: parameters table
35:45 – DEMO #5: “before” and “after”
42:19 – summary
46:36 – Q&A

Michał Łusiak – WTF # – what is F # and why you should care

0:41 – Functional programming
4:38 – F# language overview
10:41 – DEMO: variables
14:07 – DEMO: lists
15:59 – DEMO: functions
19:53 – DEMO: pattern matching
21:23 – DEMO: tuples
22:20 – DEMO: record types
23:04 – DEMO: union types
24:01 – DEMO: printing
25:00 – DEMO: using .NET libraries from F#
25:55 – DEMO: unit of measures (“numbers with units” variables)
28:21 – DEMO: type provides (providing types for compiler dynamically)
31:12 – Why use F#
33:18 – Learning resources
38:05 – Recommended F# talks
39:20 – Recommended books
39:58 – summary
40:10 – Q&A