Front-end, Back-end, UX, Design, Privacy, eHealth, WebVR, IoT, Ethereum and Fun;

Friday 13th April 2018

Building native mobile apps with Angular and NativeScript.
Talk by Sebastian Witalec in Workshops (1 hour, 30 minutes)

Are you an Angular developer who always wanted to build an iOS or Android app? Good news! NativeScript is a free and open-source runtime for building native apps with skills you already have – Angular, TypeScript, CSS, and npm. The best part? NativeScript renders truly native UIs – giving your users the best performance and UX their devices can offer. In this workshop you’ll learn how NativeScript works and how to leverage it to build your next mobile app. Then, you’ll dive in and use NativeScript to build an iOS and Android app from scratch. If haven’t yet learned Angular v2+, you’ll learn fundamental concepts while we go along. In this workshop you will bring your mobile device and laptop, with the software being discussed installed, and have the unique opportunity to learn hands-on, following along with an instructor step-by-step.

In-depth hands-on experience with WebAssembly.
Talk by Boyan Mihaylov in Workshops (1 hour, 30 minutes)

This workshop will give you better understanding of how WebAssembly works in reality. We are going to talk about the Web and how WebAssembly is involved. We will focus on loading WebAssembly with JavaScript, communication between WebAssembly and JavaScript, security, performance, memory management. As WebAssembly is a compilation target, we will use C / C++ as a source. You don't need to have any prior experience in C or C++, though it would be useful. Knowledge in C# or Java would help as well. We are going to explore the compilation process in-depth using Emscripten and its API. At the end of the workshop you will have broader knowledge of how WebAssembly works, you will be able to compile to WebAssembly and load wasm modules in your web app. Prerequisites: Your own laptop with Emscripten installed as described on the official site

Designing for Wicked Problems
Talk by Dave Hogue in Workshops (1 hour, 30 minutes)

A wicked problem has no best solution and is difficult or impossible to solve comprehensively because of contradictory needs, requirements, or outcomes. This is a hands-on workshop where we will focus on crafting designs and making design and product decisions when possible solutions are in conflict or where there is no optimal solution. We will introduce some methods to help identify, define, and frame the wicked problems and the challenges they present. We will discuss some real examples, then break into workgroups and participate in hands-on collaborative exercises. Attendees are invited to bring their own wicked problems for use in the workshop exercises and for collective discussion.

Design Thinking
Talk by Merve Postalcioglu in Workshops (1 hour, 30 minutes)

Design Thinking Do you want to find a way through innovation? Design Thinking is the way that is used by the most innovative companies nowadays. Whatever your occupation is, design thinking is your team’s wonderful tool to be more creative. Design Thinking stresses the importance of cultivating empathy for end users, interpreting and framing problems they experience, creative solution generation, and continuous prototyping and testing. On this workshop, you’ll develop an understanding about the philosophy of Design Thinking. You will learn and practice about the process as well as methods and some tools to analyze user needs, generating ideas and prototyping. You will also get the chance to apply these methods as groups by solving a challenge during the workshop. You will explore how human-centered design can help develop innovative solutions for the complex challenges you face. Participants do not need to have any background with design.

Saturday 14th April 2018

General Feedback about the event
Talk by Bogomil Shopov in Musala Room (45 minutes)

Good? bad? All go here. Please be honest and help us improve.

Alexa Voice Service Under the Hood
Talk by Rafal Kuklinski in Vitosha Room (45 minutes)

Alexa Voice Service Under the Hood

How to hack a node app?
Talk by Asim Hussain in Musala Room (45 minutes)

Thought hacking was hard? It’s not, it’s easy and I’m going to show you how! In this episode of CSI Sofia we’ll investigate a series of hacking stories and break them down step-by-step to see exactly how they did it. By the end you’ll walk away a little bit more scared and a lot more prepared with some great practices you can apply immediately to your own applications.

Game principles in design
Talk by Ina Georgieva in Vihren room (45 minutes)

Man…is only fully a human being when he plays” - Friedrich Schiller. Game is a constant part of human nature and can be seen in almost every facet of civilisation: war, religion, politics, sports and arts. It is an activity executed within certain limits of time and place, having its aim in itself and accompanied by a feeling of tension, joy and the consciousness that it is different from “ordinary life”.The play-mood is a social impulse that conveys meaning to certain actions and is a source of intrinsic motivation for the player. We will analyse the anatomy of a play and will discuss how to smartly use game principles in products in order to keep and guide users interest.

Blockchain Cryptography for Developers
Talk by Svetlin Nakov in Panorama Room (45 minutes)

Elliptic curve cryptography (ECC), secp256k1, private keys, public keys, addresses, ECDSA, hashing algorithms, digital signatures.

Sharing Code Between Web and Native Apps
Talk by Sebastian Witalec in Vitosha Room (45 minutes)

NativeScript has opened up a whole new world to Angular developers: the ability to share code directly between your web and native iOS/Android applications. Which is awesome! But, just because you can share code across multiple platforms, doesn’t mean that you necessarily should. In this talk we’ll first take a look at what NativeScript makes possible from a code sharing perspective. We’ll build a few Angular components and use them both in the browser and on mobile devices. Then we’ll take a step back and look at the same code from a pragmatic, maintenance-oriented perspective. Come for practical tips & tricks on sharing code across multiple development environments.

Building scalable web apps for patients
Talk by Krasimir Tsonev in Musala Room (45 minutes)

Digital healthcare was and it is still an important part of the healthcare worldwide. Last couple of years many companies invested in developing solutions that enhance the efficiency of healthcare delivery and make medicines more personalized and precise. Come to this presentation to learn what it means to build scalable web apps for patients. We will talk about JavaScript/React. Its ecosystem and how it helps to deliver sustainable software.

Understanding the Job to Design the Service.
Talk by Florence Okoye in Vihren room (45 minutes)

What does it mean for design to be intersectional, for development to be inclusive? What does it mean to be a designer in an era of rapidly changing complexity? Combining insights from the jam methodology, user centred design and jobs to be done framework, this talk will explore how we can incorporate uncertainty to create adaptive personas where the objective and the personal meet.

Building non-fungible tokens with Ethereum ERC-721 – overview
Talk by Yasen Yankov in Panorama Room (45 minutes)

What is a crypto collectable (non - fungible asset on Ethereum). - What are the use casese and possible products around NFTs. - What is ERC721 – standard for building non-fungible tokens over Ethereum - Overview on ERC721 and building a simple non-fungible token - Building a simple smart contract on transferring non – fungible tokens - Where and how can we earn or buy crypto collectables / assets.

Simplicity is not Simple.
Talk by Dave Hogue in Vitosha Room (45 minutes)

Products may be or become complex for many reasons, and teams are often asked to make them "simpler and better." How do we identify when and why something is complex, and how can we make it simpler? We'll talk about methods to make products and experiences simpler, some of the considerations and decisions we may face when tackling complexity, and look at some examples of products that made themselves simpler without sacrificing features and functionality.

How technology helps therapists connect and work remotely with their patients
Talk by Neven Boyanov in Musala Room (45 minutes)

What Firebase, wearable devices and WebRTC have to do with the medicine? Often after a surgery patients have really hard time finding the rehabilitation services that they need. Although it sounds like a healthcare system problem it is sometimes caused by problems that could be overcome by technology. Traditionally the healthcare industry is slow to adopt modern technology but the rehabilitation and tele-rehabilitation in particular give us an opportunity to innovate a bit more aggressively. For the past couple years we’ve been developing a solution in the fields of telemedicine that utilizes a real-time database such as Google Firebase, uses smart wearable devices such as smart bracelets and watches to collect valuable data, real-time audio-video communication such as WebRTC to connect people over the Internet. In this lecture we will discuss some of those technologies as well as some of the problems specific for the industry.

Building a global internet of things network together.
Talk by Julian Sapundjiev in Vihren room (45 minutes)

The Things Network is building a network for the Internet of Things by creating abundant data connectivity, so applications and businesses can flourish. The technology we use is called LoRaWAN and it allows for things to talk to the internet without 3G or WiFi. So no WiFi codes and no mobile subscriptions. It features low battery usage, long range and low bandwidth.

Bulding Decentralized Apps
Talk by Emil Stoyanov in Panorama Room (45 minutes)

While creating a decentralized app is certainly fun, there are some peculiar details which you need to have in mind when considering the architecture of your project. In the form of an open discussion Emil Stoyanov will share his experience with building decentralized applications and will go through the process of creating Dapps based on Ethereum blockchain and decentralized storage technologies like IPFS. The discussion involves the basic principles of operation of a blockchain and how it intergrates with the existing web technologies, but does not require any prior knowledge about how Ethereum or other decentralized solutions work.

The art of noise (keep talking)
Talk by Léonie Watson in Vitosha Room (45 minutes)

Voice interaction is now commonplace: we converse with the digital assistants on our phones and our connected home devices, and the experience is improving all the time. But how do we design experiences for voice interaction? What can we learn from the experiences of using first generation voice input/output technologies like screen readers and speech recognition tools? Full of practical ideas and interesting possibilities, this talk explores the past, present, and future of voice interaction design; and considers how to create voice experiences that really work.

React Native App: Expectations vs Reality
Talk by Kaloyan Kosev in Musala Room (45 minutes)

I had a chance to be part of a team that started developing a decent size React Native mobile app from scratch. As a developer with a solid React background, I had some expectations at first. During my initial research, everything sounded terrific: performance stats, ease of development, learn-once-use-everywhere, debugging tools, etc. But is everything terrific really? I'm excited to share my journey about how my expectations met the reality. I'll give my personal opinion about the matureness of the technology, for which use-cases it fits well and for which it doesn't. I'll also try to address the most popular misconceptions about React Native, which front-end developers usually have before they have the chance to actually built something.

Get your ETL flow under Control using 3sigma limits.
Talk by Pavel Prudky in Vihren room (45 minutes)

I would like to demonstrate how to use this simple statistical rule to capture outliers represented as invalid file loads in your etl process and pass them as documents into elasticsearch.setup will consist of Sql server hosting your etl Logging database, scheduled, stored procedure calculating The empirical rule and raising events into The windows event Log ,winlogbeat passing these events to elasticsearch and also kibana will be used for visualization. During The presentation, I would like to show how to get this setup running on your local machine to try out and talk further about The pros / cons of this solution.

WebAssembly brings the Web to a new era.
Talk by Boyan Mihaylov in Panorama Room (45 minutes)

JavaScript has become the de-facto programming language for the Web. It allows developers to build from traditional single-page applications to more specialized ones, for example, video and image manipulation. Although possible, applications like CAD, games, and video are hard and sometimes weird to write in JavaScript. Moreover, such applications often need to be rewritten from the scratch from other statically typed languages, as the code cannot be reused directly on the Web. WebAssembly is a low-level binary format running the browser. It allows developers to create highly efficient applications, where performance is close to native. WebAssembly is a new compilation target for the Web, allowing us to compile from C/C++ and other statically typed languages. Furthermore, it creates a standardized base for reusing code between Web and native. In this talk we will examine WebAssembly and discuss how it is going to change the Web.

The next evolution of the Web
Talk by Bilyana Vacheva in Vitosha Room (45 minutes)

This is a futuristic talk! I will talk about the next evolution of the web - immersive virtual reality websites. I will share our vision on how the browsers have to change in order to accommodate the needs of the new platform and also give valuable insight from the experiments we've done in the field of VR UX.

Machine Learning in the browser with deeplearn.js
Talk by Lian Li in Musala Room (45 minutes)

Even if you've never done anything with machine learning, you have probably already heard that it's very powerful, adaptive and will change our way of thinking about computing forever. But how can you, a web developer, who's never been interested much in statistics benefit from the ML hype? In this talk I want to give you the tools to build a small self-learning application that runs completely in the browser.

Data Quality by Design
Talk by Roger Robson in Vihren room (45 minutes)

How do you define Data Quality? I certainly had trouble when I faced that same question for the first time. Twelve months later, I feel I have a grip on it, and as we prepare to roll out a plan to address it across our organization, I’d like to share with you a way of looking at, analyzing, planning and implementing a plan for data quality improvements.

Beyond Documentation with OpenAPI.
Talk by Boyan Yordanov in Panorama Room (45 minutes)

Imagine a world where the mobile development team is not constantly surprised by changing endpoints, where frontend developers don’t abuse your carefully crafted APIs and we don’t have to go back again and again to fix or change stuff. In this imaginary land we are able to leave the guesswork out by using API definitions to produce even better designs and automate parts of the process. Together we will explore OpenAPI as a standard way to describe APIs and see how it can help us get there.

There is a lot of buzz around the progressive framework named VueJS. But why is it truly special and interesting?
Talk by Roman Kuba in Vitosha Room (45 minutes)

We’ll take a jump into what Vue does, and what’s its special little features and on this path we’re going to explore what Vue can do for us on parts that are maybe not obvious. The reactive data system that’s running under the hood is often overlooked, but when used wisely enables users to do really impressive things on the way. Come with me on that journey and maybe Vue sparks your interest. What this means is, we we'll walk through the progressive part of Vue and see how easy it is to get started and how complex it can become. From dropping it into the browser to leveraging webpack with Single File Components. Beyond that we will take a look at the reactive system that's in depth of Vue, why computed properties are so awesome and what we can build with Vue. We will build a rough patch of a State Managment Library (That will eventually be Vuex), components that fetch data automatically, and hopefully more.

Modern practices for securing your web applications.
Talk by Marian Marinov in Musala Room (45 minutes)

Marian will present practices for securing your web apps and static content by utilizing latest http security headers and dns records.

WordPress REST API when you're not WordPress developer.
Talk by Milana Cap in Vihren room (45 minutes)

WordPress REST API has many use cases. We'll take a peek at possibilities to interact with WordPress from the outside.

The Big "Why Equal doesn't Equal" Quiz
Talk by Juliette Reinders Folmer in Panorama Room (45 minutes)

So you think you know PHP ? But do you really ? We all compare and test data on nearly every other line in our code, be it input validation, an if-statement, a switch or determining what to display and how. So of course we are all experts on how to do these tests and comparisons…. Or are we? No matter whether you are a beginner or an expert, come and join in the fun for the Big “Why equal doesn’t equal” Quiz, test your knowledge and learn about defensive programming and the quirks of a loose type programming language along the way.

Testing against Time in JavaScript Applications.
Talk by Jessica Jordan in Vitosha Room (45 minutes)

As the applications we write tests against grow more complex we might stumble into testing errors stemming from asynchronous and time-dependent behaviour. This talk will characterize several roadblocks in testing which are affected by time. With an example Ember.js application, we will explore how Ember's rich testing API, newest JavaScript features and community libraries, will help us writing legible and reliable tests and how we can make those tests turn green even as time passes by.

Speeding up and automating your development routine with Docker.
Talk by Andrey Hristov in Musala Room (45 minutes)

Containerisation is taking over the world. You will how Docker containers are different from virtual machines and how you can use them to make your life much easier when writing web (and not only web) applications.

Practical code reviews
Talk by Ilko Kacharov in Vihren room (45 minutes)

Code quality / style / standards Error detection Sharing know-how with the team Vulnerability exposure Iterations and passes Review vs running the code Goals, checklists and metrics Code review tools

Glagol DSL experimental language.
Talk by Yoan-Alexander Grigorov in Panorama Room (45 minutes)

Glagol DSL is an experimental domain specific language with the goal to help developers engineer microservices using the Domain-Driven Design concepts out-of-the-box. To achieve this, Glagol DSL incorporates object-oriented structures that are much closer to the concepts of Model-Driven Design (a set of patterns from Domain-Driven Design) than the usual object-oriented languages. Additionally, Glagol DSL also supports basic web (api) framework capabilities like routing, request handling and controllers. Glagol DSL includes grammatical declarations for Entities, Value Objects, Repositories and Controllers. In general, all of those are embedded into the language’s syntax and their usage implies follow-up rules based on the concept behind each of them.

Remote Work - Is It For You?
Talk by Brian King, Ines Avdić-Zekić in Vitosha Room (45 minutes)

With technology no longer a limiting factor and companies increasingly hiring remote workers, the number of people working outside offices is rapidly increasing. Bring your experiences and ideas to this discussion to explore the present and future of remote work.

How to build your own anycast service (and why)
Talk by Marian Marinov in Musala Room (45 minutes)

In this talk Marian will share with you what is anycast, what you need to know in order to build your own anycast setup and what services can benefit from it. Finally he will show you how you can cheaply setup your own anycast.

Working the right way by knowing all the wrong ways.
Talk by Boyan Djumakov in Vihren room (45 minutes)

Software development is a strange mixture of work and art. We do not only write code, but we make art as writers create their masterpieces. Your habits reflect on your daily work and shape how you approach new tasks. The main problem of bad habits, aside of wasting your time and lowering your motivation, is that rather often you don’t even know about them. I will talk about bad habits by sharing with you all of the bad practices that I remember from my past and current projects. I will talk about what helps me write better, what motivates me and what prevents me from doing so. I will tell you how I started with Delphi, PHP and JAVA, how I hated JavaScript and how I love it now. We will even briefly talk about DevOPS and how I had to develop a torrent client in Python. I’ll share how I manage to learn new things, despite my uncanny laziness for reading.

Storing Data in MongoDB
Talk by Derick Rethans in Panorama Room (45 minutes)

Although MongoDB is a non-relational database, it is still very important that you store your data in an optimal way. This presentation teaches you the basics of MongoDB and its data model, how to design your data schema according to your application's needs, and how to keep your data clean. Designing for a modern non-relational database such as MongoDB requires a different mind set when designing your schema. Besides schema design techniques, we'll also have a quick look at indexes, and way to find out why queries are potentially not as fast as they could be.