HackConf is Bulgaria's premier software development conference, happening in Sofia.
Organized “by developers, for developers”, it covers a wide range of software development topics, regardless of the tech stack.
HackConf 2019 will include a full day of workshops on 11th of October, and two parallel tracks of talks during both conference days - 12th and 13th of October.
I’ve tried dozens of productivity techniques - out of sheer necessity. I’m working on 4 major projects at a time, not to count a blog, a series of science events, and a course with 600 students! I’ll share the methods, routines, and tools that worked. No fluff, just actionable takeaways.
LEGO® SERIOUS PLAY® method is useful for fostering innovations, making strategic decisions, building teams and creating products. It is a unique method as it facilitates engagement as well as hearing, taking the opinion of each and every member of the group into account.
We will analyze the performance of a provided system, then separate pieces of code into microservices.
We will then introduce a flexible technology for microservice orchestration, configure it and hook the microservices in. Finally, we will again analyze the performance.
This workshop is for advanced developers and we will require some software to be downloaded and installed before the workshop, there will be no time to do this during the workshop.
We will implement Redux and make it work with React from the ground up. We will also implement some redux forms and tools after that. We will implement a shared state.
We will create the basic functionality of redux forms and try to understand some of the decisions behind the implementation. We will also implement a different tool for working with forms that will be very similar to the existing lib called "Formik".
Are you ready for production? Are you sure? Is your application prefetchable? Is it readable for search engine robots? Will it fit into CDN? Do you want to make it even faster? Meet the Server-Side Rendering. Learn how to implement it in your application and about best practices.
Thank you for your interest in Git! Git is awesome. Come and understand why. Git is widely used for distributed collaboration among programmers to track their changes and to share between them. Come and understand how.
This workshop will teach the basics of Python: functions, common data types, operations with them; control flow - if conditions, for and while loops; running the tests in Python! Then comes Selenium - locating element, waiting for them to appear, reading text and attributes from the HTML elements!
Finally, we combine everything into a small program!
- For each module, there are links and instructions for preparation. It is best to read all of these before the workshop;
- Instructor will explain the theory from the preparation section and focus on writing programs to solidify the knowledge;
- If you don’t complete the tasks on time for the given module you lose 1 life;
- When all of your 3 lives are lost it is GAME OVER!
Event loop demystified with practical examples. If you ever tried understanding JS’ concurrency model and failed, now is the time to get things cleared out!
This workshop will focus on the steps needed to optimize existing code, so that performance can be increased. It will provide some internal details of how Python works, so that simple rewriting of the code can influence on the speed/memory parameters during runtime;
It will give a way to measure performance of programs so that different changes can be compared;
It will remind that using effective mathematical algorithms is important ingredient for the recipe for optimizing a program. These techniques can be applied to identify bottlenecks in the execution of the program.
Deep Reinforcement Learning (DRL) is one of the most recent and promising fields in AI.
In this workshop, we will implement a DRL agent that learns to play ATARI games. We will introduce key concepts from DRL as well as some Python packages such as Chainer and OpenAI Gym.
Applying for a new job? Trying to convince management your project needs regular refactoring? About to found your own start-up?
In cases like these sales skills help a lot for achieving success. Learn and experiment with successful sales approaches - mapped to real IT professional’s life scenarios.
In this workshop you will learn how to develop simple SaaS micro service Java application with Angular frontend, how to test it and deliver it to your clients using continuous integration and continuous delivery. Using Kubernetes, we will scale and manage our SaaS application.
Being an advocate for remote work and working to gather remote teams worldwide Venera started coaching people how to work Remote/Freelance/Contractor roles.
She is going to talk about freelance platforms, how to make an online presence that helps you be noticed and a portfolio that works, how to get a remote job and what you need to know about contracts, security while being remote and getting paid on time.
React Native is a framework for building native applications using React. You will see how React Native differs from React on the web, get an overview of fundamental building blocks of a React Native app, and use this new-found knowledge to build your very first app!
Unit tests are typically a developer's responsibility. The main metric associated with them is test coverage and it's measured in percentage. So getting to 100% should mean quality is ensured, right? Wrong! This workshop will explain the basic concepts behind writing effective unit tests, what test coverage really means and why we need it, and how to enhance our tests with mocks and stubs.
How to isolate one module from another during testing? And how to test functions that depend on date, time or 3rd party services? By mocking we can use “fake” objects to make your tests faster and simpler. We will take a look at the build-in mock module, Freezegun and Mocket.
Declarative deployment to Kubernetes with Weave Flux
1. A short introduction to Docker and Kubernetes
2. Explaining how Weave Flux works practically
1. Setting up a local development environment for all participants - access to the cluster + GitHub repository
2. Have each participant installing flux
3. Deploy example applications with flux
4. Deleting applications
Workshop Part 2:
Monitoring Kubernetes with Prometheus and Kubernetes Dashboard
1. Explaining Prometheus/Kubernetes Dashboard
2. Introducing helm charts
3. Install Prometheus + Kubernetes dashboard
4. Showing metrics and Grafana dashboards
5. Showing Kubernetes dashboards, how to see logs and so on
Get an in-depth overview of the end to end (E2E) testing techniques of Single Page Applications.
In this workshop you will learn how to set up a test environment, remote environment for the Continuous Integration, report your test results in a nice and readable form and much more.
Learn more about things like Jasmine, Protractor, Selenium, TypeScript, Angular and more...
Virtual reality is steadily transitioning from an enthusiast-only technology to a mainstream ecosystem. Besides gaming and entertainment, multiple business verticals already see huge value in applying VR in their workflow. Building apps for VR is incredible fun but requires new skills and knowledge.
Interested in speaking at a conference but don’t know where to start? Your talk has been accepted but you’re nervous about being on stage? Don’t worry—I’ll get you sorted. In this workshop, we’ll work through things like idea generation, the CFP process, slide style, stage presence, and more!
WHAT IS IT ABOUT?
There are so many programming languages out there, and new ones are popping up almost every day. Which one to choose? Where to start? To stay ahead of the game by broadening your skillset, learning a new language is important for your professional growth. Some of the developers claim that Golang is a neat combination of the best features of the most popular languages.
You will have the chance to find this out yourself at this workshop. Join us at the Golang 101 workshop. We’ll get familiar with Go - a modern language that makes it easy to build simple, reliable, and efficient software. We’ll build a real-world application and learn the basics of programming in Go.
Golang is also known as Google Go, which is the programming language created by (as you may have already guessed) Google. Golang was initially developed at Google in the year 2007.
YOU’LL NEED TO HAVE: A laptop and a charger Go installed (follow https://golang.org/doc/install). If you’re having issues, it’s ok, you can come before the workshop and we’ll help you.
WHAT WILL I LEARN DURING THE WORKSHOP?
You will be introduced to Golang and will learn the basics of this programming language together with experienced professionals from the Uber Engineering Sofia team. Moreover, you will meet like-minded people from the tech field.
WHO IS IT FOR?
The workshop is for people who are passionate about coding and have some programming experience but are new to Golang.
The workshop is most appropriate for Beginner level of cloud and AWS experience. We are going to do an overview of the AWS services in use.
You'll create a simple serverless web application that enables users to request unicorn rides. The application will present users with an HTML based user interface for indicating the location where they would like to be picked up and will interface on the backend with a RESTful web service to submit the request and dispatch a nearby unicorn. The application will also provide facilities for users to register with the service and log in before requesting rides.
Bring your ticket on a mobile device or print it
I guess many of you are young enough to have never heard of the "Groundhog Day" movie (released way back in 1993), which serves as the inspiration for this talk's title. Without ruining the great movie for you I'll tell you it's about a man whose life is stuck in a loop, and unless he changes something his life is not going anywhere.
Does this story remind you of something else? A lot of software projects are also stuck in a loop - starting strong, quickly drowning in complexity, eventually discarded and replaced by projects which ultimately suffer a similar fate. You've seen this happen many times, right?
In this talk we'll discuss what exactly is wrong, how did we end up in this mess, and what should change to break that vicious cycle. And maybe we'll have a bit of fun while doing so!
Tech and tech talent are becoming commoditized. This is happening within organizations and within teams. Although tech hiring is still tight, globalization, automation, AI, Cloud, skill shift, and other tectonic movements are changing the tide. What used to be irreplaceable tech and tech talent can now be bought on the open market and substituted for what is already in place. For software engineers, this means our tech skills are increasingly replaceable, which means we are increasingly replaceable. It may be hard to believe when software engineers are in high demand and our wages are skyrocketing, but the writing is on the wall: Software engineers need much more than just tech skills to survive and add real value to today’s teams and organizations. Come find out what skills you should be learning and practising to stand out in the software engineering crowd, be irreplaceable and invaluable to organizations and teams, and succeed in life.
Architecture and solution design can be challenging. In this talk, I will demonstrate how architecting a solution can be as natural as driving a car, implementing similar concerns and logic to your design can make you a better engineer and your services more efficient.Driver license is not required.
Command & Control is still the predominant leadership style in the software industry, except maybe in the most successful super-growth organisations. The talk explores why is there a trend and what we can learn from the successes of existing and past Unicorns when it comes to building and leading a high quality engineering team. I claim leaders should “serve” instead of “command” - act as enabler to all the smart people in their teams and exploit the power of the “subject matter experts” by empowering them with making decisions and owning the delivery. My engineers and managers do not work for me. I work for them - they are the “boss”. That works great for me, for my engineering team and for the organisation. The talk aims at sharing how and why that works, what are the problems that it imposes and how to mitigate or solve them.
In object-oriented computer programming, SOLID is a mnemonic acronym for five design principles intended to make software designs more understandable, flexible and maintainable. “Single purpose” sounds self explanatory and developers usually assume they understand it and move on towards the other principles. In this talk I am going to take them back few steps and explain what stands behind this principle and how to apply it to multiple levels of the application architecture.
This interactive talk will give you some valuable technical and soft skills to take with you on your real-life professional journey. Based on a mix of personal experience, agile methodology, and software design principles, this story has several possible endings. Audience vote decides.
The presence and adoption of functional programming concepts in mainstream languages has continuously become more prevalent within the last few years. This leads one to believe, that the things this paradigm has to provide are apparently, in some way, beneficial. Now two questions arise. To what extent is it beneficial and how do these things actually make a difference in my production application? In this talk I’d like to travel across the planes of functional programming and show you how this paradigm helped us, what concepts made a difference and how it may generally, probably, be able to help others.
Here is the problem - we have 5,000,000 .jpg files, many of which are the same. We have to: - Find all duplicated images - Find them even if they were edited in Photoshop - Find them even if the images are different (from different cameras) but the objects on the photos are the same. What is Image Fingerprinting and how to do Image Fingerprinting with Keypoint Matching? Come at #hackconf this October 11-13 and learn from Vassil Lunchev.
Do you know what “(new Date()).getYear()” will return in Javascript? What does the expression “True is False == False” evaluate to in Python? Is 10 * (1 / 10.0) == 1 in C++? Come and see - the results might shock you! These 3 weird tricks helped Alexander become a better programmer. Enlarge your knowledge!
Working with both startups and enterprises, over the years I noticed that many of the companies have challenges setting up strong release practices. That results with risky, error-prone releases followed up with a lot of bugs which cost them a lot of resources.
With this talk, I am aiming to inspire people to step back from the day to day operations and think about how setting up a fully automated process is going to benefit the companies they are working with and at the same time get their weekends back. I will talk about optimizing the release process on different levels in the organization, as well as leveling up the quality of the technology. I will also introduce some tools and techniques to the audience that helped us create a steady pipeline.
The talk is perfect for tech leads, CTOs, or software engineers who are looking forward to bringing improvement in their organizations.
How therapists debug people? How can I fix and patch myself? How do I design the version of Me2.0? These are valid questions and I will address them in my talk. I am psychotherapist who works mostly with clients from the IT sector and I have a few things to share about mental health in the field.
What you’re about to learn is how ECMAScript standards are built, who is responsible for that, what are the exact features and what is the way to propose an extension? We will also go through the new features which ECMAScript 2018(ES9) and ECMAScript 2019(ES10) are shipping and what further improvements can be expected in ECMAScript 2020(ES11). We won’t stop at the technical overview but give life to the talk with some practical examples of how the standards differ in real life!
So you built your product, and scaled it to a point where you’re starting to collect a lot of data and outgrowing your relational database. How do you scale your data storage systems to handle the volume and load? During my talk on “Scaling out - from First Principles” at HackConf 2018, this was one of the main follow-up questions, so this talk will cover in more detail a set of different approaches to scaling, depending on the requirements, and from first principles again.
Bring your ticket on a mobile device or print it
In our lecture, we will cover the following material:
- Availability Heuristic and Risk Perception
- Performance optimizations
- What kind of performance optimizations exists? How/When to apply them?
- Program Profiling techniques and tools, such as RunSnake and SnakeViz.
- Actual Code example – show the program bottlenecks, create a profiling file and explain how to increase the performance.
Where are your credentials and secrets stored? In .env files or in environment variables, or even worse in config files? Are your primary AWS keys shared amongst developers? Do you still have SSH keys from former employees on your servers?
Caching can be your best friend or your worst best-friend. A poor cache implementation can mean the difference between experiencing blazing fast performance or unexplained random slowness, or both!
It can even result in random stale (out of date) content which you can’t explain. In this presentation, we will demo and compare different caching methodologies, and their perceived real-world uses. We will discuss Donut cache, Memory cache, Redis, Varnish, CDNs, and many more. We will dive into demos of real-world
implementations which can cause unpredictable problems. Some of these are horrible, and some are face-palm. At the end of this presentation, you will be aware of the different trade-offs with each caching methodology, and which might best for your situation.
Deep learning has enabled unprecedented achievements in computer vision, natural language processing and reinforcement learning. In this talk, however, we will focus on its limitations and outline a few state of the art problems which we need to solve before we truly advance the capabilities of AI.
Is an image really worth a thousand words? In software engineering, it isn’t. In this talk, I’ll explore the UNIX philosophy and modern development workflows to show you how practical, timeless and elegant plain-text tools are, and teach you how to use them efficiently to leverage productivity.
Flexible working and distributed teams are key to how we work in technology, and many companies are embracing the benefits. However, it’s not an easy task to help teams collaborate effectively across time zones.
I’ll share my personal experiences and case studies about leading distributed teams.
A lot of people talk about productivity. But this is one of those terms where everyone uses, but nobody clearly understands.
- I’m going to share my process to be active and deliver quality work.
- Define what is “productivity,” “effectiveness” and “process”.
- How to split and define tasks.
- What to do when you stuck at a problem.
- How to improve your tooling.
- How to deal with non-coding activities like meetings, emails.
The browsers can actually take control of physical devices in the real world like lightbulbs, robots, printers, NFC tags, toys, and even drones by providing new web standard hardware connectivity APIs such as WebBluetooth, WebUSB, WebNFC and etc.
On the other hand, Progressive web apps open a new era to build a web application that works offline and resemble a native application. Hence, every day we are getting closer to run web apps only on browsers that don’t need to be installed from any app store and it will take control of hardware around us.
In this session, I am going through some of the web capabilities to connect devices into a progressive web app and show how the web could go beyond the browsers and take control of our devices around us.
Machine Learning / Deep Learning is where all the hype is. From automation to self-driving cars, there are a lot of applications. To be effective in it, you need to combine various skills – engineering, statistics and programming.
This talk will aim to do three things: (1) sketch the lay of the land in the world of ML, (2) give an overview of the most popular tools and (3) sketch the next steps if you're considering specializing in it.
By the end of it, you should walk away with a basic understanding of what machine learning is and how to start learning and applying it.
CTO @Receipt Bank
Stefan has been involved in programming since he remembered. He loves Ruby, Vim, automated tests, bowls, Apple products and all kinds of exotic programming languages. During his most busy time, he programs in Rails, but when he's free - occasionally teaches at FMI of Sofia University, writes a lot of code, which later deletes it, and apart from that, he also tries not to kill himself with his mountain bike. He doesn't like PHP and he is ambivalent to Java.
VP of Engineering @Toptal
Believe it or not, Bozhidar has (fun) interests outside computers and IT as well! We won't, however, bore you with those here.
The Groundhog Development Method
I guess many of you are young enough to have never heard of the "Groundhog Day" movie (released way back in 1993), which serves as the inspiration for this talk's title. Without ruining the great movie for you I'll tell you it's about a man whose life is stuck in a loop, and unless he changes something his life is not going anywhere.
Does this story remind you of something else? A lot of software projects are also stuck in a loop - starting strong, quickly drowning in complexity, eventually discarded and replaced by projects which ultimately suffer similar fate. You've seen this happen many times, right? In this talk we'll discuss what exactly is wrong, how did we end up in this mess, and what should change to break that vicious cycle. And maybe we'll have a bit of fun while doing so!
Principal Blockchain Architect @CognitionFoundry
Chief System Architect @SiteGround
Marian is a system administrator by heart. He is working with Linux for almost 20 years. Currently he is Head System Architect of Siteground.com, CEO of 1H Ltd. and CTO of Kyup.com. He is a big fan of FOSS and regularly speaks at different FOSS conferences around the world. Marian also helps with the organization of OpenFest - Bulgaria's biggest FOSS conferences. In his spare time he teaches Linux system administration and Network security courses in Sofia University and SoftUni.
Senior Software Engineer @Werkspot
Developer @Product Hunt
Web developer with 15+ years of experience, currently is head of engineering at Product Hunt (by Angel List). Lately, he is juggling between Ruby, Javascript projects, with the belief that it’s equally important to work both on the frontend and on the backend. Organizer of React.NotAConf conference and React.Sofia meetup.
Productivity for Developers
A lot of people talk about productivity. But this is one of those terms where everyone uses, but nobody clearly understands. Rado Stankov is going to share his process to be active and deliver quality work.
- Define what is “productivity,” “effectiveness” and “process”.
- How to split and define tasks.
- What to do when you stuck at a problem.
- How to improve your tooling.
- How to deal with non-coding activities like meetings, emails.
Software Architect @SBTech
I don’t take myself too seriously. I am a tech enthusiast. Most of my sentient life I have tinkered with tech. In IT I’ve done almost every job imaginable. I was doing cables, PC assemblies, IT support, domain controllers, networks, ISP, graphic design, software development… And I am equally bad at everything, meaning I have a lot of hands-on experience to share :)
SOLID principles - {part 1 of 5} - "S" the most misunderstood principle
In object-oriented computer programming, SOLID is a mnemonic acronym for five design principles intended to make software designs more understandable, flexible and maintainable. “Single purpose” sounds self explanatory and developers usually assume they understand it and move on towards the other principles.
In his talk Martin Chaov is going to take them back few steps and explain what stands behind this principle and how to apply it to multiple levels of the application architecture.
Technical Director @Radley Yeldar
Anthony is the Technical Director at Radley Yeldar (London, UK). He writes tech articles, and is a regular presenter at conferences & meetups. He loves automation & development processes, experienced in scaling high performing teams across multiple countries, a Scrum certified Agile enthusiast, and a vocal proponent of Behaviour Driven Development. Originally from Sydney, Australia, he is now based in London.
Cache me outside - Caching Methodologies and Architectures
Caching can be your best-friend or your worst best-friend. A poor cache implementation can mean the difference between experiencing blazing fast performance or unexplained random slowness, or both! It can even result in random stale (out of date) content which you can’t explain.
In this presentation we will demo and compare different caching methodologies, and their perceived real world uses. We will discuss Donut cache, Memory cache, Redis, Varnish, CDNs, and many more. We will dive into demos of real world implementations which can cause unpredictable problems. Some of these are horrible, and some are face-palm.
At the end of this presentation you will be aware of the different trade-offs with each caching methodology, and which might best for your situation.
Integration Engineer @Financial Times
Euan is part of the Operations & Reliability team at the Financial Times, managing incidents across the globe. Before that, he lead a distributed team responsible for Go microservices, Docker containers in Kubernetes, and the backend APIs powering the website.
Notes from My Travels: Building Effective Teams When You're in Different Places
More companies are embracing flexible working and distributed teams - whether that’s individuals working remotely, or fully distributed companies with no central hub. This can have great benefits, but the path to success isn’t always smooth.
At the FT, we collaborate daily across time zones, from New York to Manila. How do we help our teams remain effective, avoid “us-and-them”, and feel part of a greater whole? Having fixed production issues while up a mountain, I’ll cover:
* effective communication across locations
* what we learned from other companies
* advice on leading distributed teams
CTO @ExploreAdeva
Full Stack Python Developer @HedgeServ
Rositsa is a solid Mid-level Python Developer. She joined HedgeServ in April 2017. Her main responsibility is in the creation and maintenance of applications used by both internal and external clients. This includes partnering with other developers, testers, application support engineers, and infrastructure automation engineers to ensure a smooth development and operational pipeline. Rositsa takes part of the interview process in HedgeServ and is a skilled engineer that knows how to execute and innovate in a modern and dynamic environment. She is also a Python lecturer in Hack Bulgaria Academy.
Performance Profiling Techniques to Make Your Code Awesome
In our lecture we will cover the following material:
- Availability Heuristic and Risk Perception
- Performance optimizations – What kind of performance optimizations exist? How/When to apply them?
- Program Profiling techniques and tools, such as RunSnake and SnakeViz.
- Actual Code example – show the program bottlenecks, create a profiling file and explain how to increase the performance.
Software Engineer @REWE Digital
Robert is a software engineer currently working at REWE Digital in Cologne and spends a lot of his time writing functional microservices in Clojure and Scala. He concurrently seeks refuge from the imperative in the world of purely functional programming, and from time to time likes to pester unwilling individuals with it.
Founder and Principal Architect @Object Systems International
Matt Landheim is the founder and principal architect of Object Systems International, a software development company founded in 1998 with 115 employees in Salt Lake City, Utah, and Sofia, Bulgaria. He's lived in Bulgaria, loves Bulgaria, and speaks Bulgarian. He currently resides in the Salt Lake City, Utah, area with his wife and four kids.
Software Developer
Majid Hajian is a software developer has developed and architected complex web applications since 2007 after he graduated as a software engineer. He loves sharing his knowledge with the community. Majid is the author of “Progressive web app with Angular” book published by Apress and “Progressive Web Apps” video tutorial published by PacktPub and Udemy. He is a/an (co)organizer of a few main meetups and conferences in Nordic countries for web and mobile platform.
Researcher in Robotics & Artificial Intelligence
Dr. Svetlin Penkov works at the intersection of artificial intelligence and robotics and is interested in enabling robots to learn structured models (computer programs) from raw data. He did his PhD in AI & Robotics at the University of Edinburgh and currently is a Research Scientist & Tech Lead at FiveAI, the biggest autonomous vehicles start up in the UK, where his team works on learning models from data that capture how vehicles and pedestrians behave in dense city traffic. He has been actively involved in the entire process of bringing state of the art research into production code on the vehicle.
Psychoanalyst And Online Counselor
Dr. Mila Petkova is counselor and psychoanalyst. Her mission is to help her clients achieve emotional balance and find their way to become their version 2.0. In 2016, after a decade working in the corporate field she defends her PhD thesis in Madrid and opens her online practice where she helps people from four continents overcome anxiety, burnout, loss, body image issues and existential crises.
Software Engineer
Lucas is always trying to find better and more efficient ways to solve problems: his motto is "strive to be lazy".
A Thousand Words: How I'm still not using GUIs in 2019
Is an image really worth a thousand words? In software engineering, it isn’t.
In this talk, I will explore the UNIX philosophy and modern development workflows to show you how practical, timeless and elegant plain-text tools are, and teach you how to use them efficiently to leverage productivity.
Production Engineer @SIMILARWEB
Ayelet is a passionate problem solver with 15 years of experience in different companies from big enterprises to small startups. Focusing on architecture and engineering leadership which provided her with the opportunities to design and implement a variety of architectures with different constraints, tackling problems of scale, reliability and data integrality. Ayelet is also an active member in the tech industry, she is a mentor, lecturer, and leading ״Women in Hi-Tech״ community's content and mentoring program.
CEO & co-founder @Homeheed
At Homeheed, Vassil works on a computer vision algorithm to distinguishing between available and fake apartment listings. Previously he worked on:
- Leanplum: anything from big data pipelines to (machine) learning the optimal time to send an email
- SoundCloud: an automatic music genre classification system
Image Fingerprinting with Keypoints
Here is the problem - we have 5,000,000 .jpg files, many of which are the same. We have to:
- Find all duplicated images
- Find them even if they were edited in Photoshop
- Find them even if the images are different (from different cameras) but the objects on the photos are the same.
What is Image Fingerprinting and how to do Image Fingerprinting with Keypoint Matching? Come at #hackconf this October 11-13 and learn from Vassil Lunchev.
CEO/Team Lead @Code4Hire
Vranac has been in this industry for a long time. He had good fortune to work with a lot of talented people, and had a chance to see some brilliant code, and some of the worst ever written. He gets paid for writing code that performs exceptionally. He runs Code4Hire, a small outfit dedicated to solving tough problems.
Senior Software Engineer @Skyscanner
Alexander (a.k.a. espr1t) has been programming for 10000 years now – in the beginning as a participant in programming competitions (he has won a few of those), and now as a professional developer. His work experience includes companies like Facebook and Google and he's currently a senior engineer at Skyscanner. As he likes saying, without IT he's just espr.
WTF, Languages!?
Do you know what “(new Date()).getYear()” will return in Javascript? What does the expression “True is False == False” evaluate to in Python? Is 10 * (1 / 10.0) == 1 in C++? Come and see - the results might shock you! These 3 weird tricks helped Alexander become a better programmer. Enlarge your knowledge!
Technology Director @HedgeServ
Tim Driscoll has been programming at HedgeServ for the last 12 years. During his tenure, he has benefited from working with many smart engineers, product owners and leaders.
Now he strives to give back by sharing what he has learned. When he is not coding, Tim enjoys running and a good beer (usually not at the same time).
Site Engineering Lead @Uber
Alex Popov has 20 years of experience in Software Engineering. He has been leading engineering teams in the US, UK and Bulgaria in 3 Unicorns during the last 7 years. At the moment Alex leads the engineering site of Uber in Bulgaria.
His charters are involved with the generation of financial documents and the data analytics products powering Business Intelligence. The Tax & Compliance products owned by his teams generated the data and rendered more than 8 billion financial documents and the taxes and surcharges data for transactions of more than 10 Billion USD in 2018. His Finance Intelligence teams are powering the revenue prediction and cost analytics products in a pre-IPO environment. Before Uber, Alex spent close to 8 years in the travel industry.
He led teams in the UK and later co-founded and led the engineering site of Skyscanner in Sofia after a similar role with Kayak in Boston, MA. Alex is actively working with startups, VCs and NGOs in Bulgaria and is a passionate supporter of the maturing startup scene in the country.
The Useless Leader is the Best Leader!
Command & Control orgs are a failure - they depend on multiple “single points of failure” called managers. Servant leadership works better - actual experts make the decisions. A leader is an enabler and if she does her job well… becomes redundant. The talk explores why is that great for everyone.
Tech Lead @Heap
Over the last few years, Ivan has been building distributed systems and leading distributed teams at early stage startups. Prior to that, he has researched recommendation algorithms at SoundCloud, interned at Google (twice) and Facebook. He is also a bronze medalist from the International Olympiad in Informatics.
Senior Software Consultant @Accedia
Martin is a Senior Software Consultant at Accedia. Although his career took off with some Python projects, he currently finds JavaScript tech quite fascinating and works with a various set of technologies in the Angular/React world.
ES9, ES10, and Beyond. ECMAScript Release Roadmap.
What you’re about to learn is how ECMAScript standards are built, who is responsible for that, what are the exact features and what is the way to propose an extension? We will also go through the new features which ECMAScript 2018(ES9) and ECMAScript 2019(ES10) are shipping and what further improvements can be expected in ECMAScript 2020(ES11). We won’t stop at the technical overview but give life to the talk with some practical examples of how the standards differ in real life!
Senior Software Development Engineer @Akamai Technologies
Senior Software Development Engineer at Akamai Technologies.
Enthusiast of web technologies especially Single Page Apps, Progressive Web Apps, microservices, and Internet of Things. Author of articles about JavaScript, NodeJS, and Angular. Open Source contributor - creator of @ng-toolkit opensource project - set of tools for expanding existing Angular applications.
Workshop 1: Angular Universal - be more SEO/CDN/User-friendly with server-side rendering
Are you ready for production? Are you sure? Is your application prefetchable? Is it readable for search engine robots? Will it fit into CDN? Do you want to make it even faster? Meet the Server-Side Rendering. Learn how to implement it in your application and about best practices.
Workshop 2: E2E testing of the Single Page Applications
Get an in-depth overview of the end to end (E2E) testing techniques of Single Page Applications.
In this workshop you will learn how to set up a test environment, remote environment for the Continuous Integration, report your test results in a nice and readable form and much more.
Learn more about things like Jasmine, Protractor, Selenium, TypeScript, Angular and more...
Digital Marketing Strategist, Trainer & Public Speaker
Vassilena is a marketing consultant, trainer, and speaker. She has more than 10 years of experience in digital communications. Her expertise covers marketing strategy, content marketing, growth, and measurement. She has worked with companies in different industries, mainly in the consumer electronics, e-commerce, and SaaS fields.
In her spare time, she organizes popular science events with Ratio, teaches content marketing and growth at SoftUni, and authors a blog on digital strategy and growth.
Vassilena holds an MA in International Communications from Leeds Beckett University, as well as a number of certifications, including Google Analytics and Google AdWords Individual Qualification, Hubspot Inbound certification, Growth Tribe Academy’s 6-week growth marketing course in Amsterdam.
The 10 productivity commandments
I’ve tried dozens of productivity techniques - out of sheer necessity. I’m working on 4 major projects at a time, not to count a blog, a series of science events, and a course with 600 students! I’ll share the methods, routines, and tools that worked. No fluff, just actionable takeaways.
VP Innovation, Strategic Clients & Business Development @Musala Soft
Iancho has been in the software industry for 20 years and considers himself to be an IT professional with business affinity, or the other way around. He has gone through many operational roles – software engineer, business analyst, software architect, project and program manager, CTO, Business-IT Consultant. For more than 15 years he has also been dealing with sales, marketing and key account management. In his current role as VP at Musala Soft Iancho covers both business and operational responsibilities - which includes leading the Business Development team that drives sales and new clients acquisition.
Sales Skills for IT People
Applying for a new job? Trying to convince management your project needs regular refactoring? About to found your own start-up?
In cases like these sales skills help a lot for achieving success. Learn and experiment with successful sales approaches - mapped to real IT professional’s life scenarios.
Developer Relations @Datadog
Daniel Maher is a Developer Advocate at Datadog, where he enjoys measuring things, and talking about measuring things.
Public Speaking for Technologists
Interested in speaking at a conference but don’t know where to start? Your talk has been accepted but you’re nervous about being on stage? Don’t worry—I’ll get you sorted. In this workshop, we’ll work through things like idea generation, the CFP process, slide style, stage presence, and more!
Certified Facilitator in the LEGO® SERIOUS PLAY® Method
Ieva has over 10 years’ experience in marketing. For the past two years, she has run her own marketing agency Marketingfans. Ieva has discovered that companies often struggle to find the right creative and strategic solutions. So she started to look for ideas how to help her customers and discovered the LEGO® SERIOUS PLAY® method. This method is useful for fostering innovations, making strategic decisions, building teams and creating products. The LEGO® SERIOUS PLAY® is a unique method as it facilitates engagement as well as hearing, taking the opinion of each and every member of the group into account.
LEGO® SERIOUS PLAY® - different approach to your everyday challenges
LEGO® SERIOUS PLAY® method is useful for fostering innovations, making strategic decisions, building teams and creating products. It is a unique method as it facilitates engagement as well as hearing, taking the opinion of each and every member of the group into account.
Python/Django/Web developer
Programming since 2003, in love with Python since 2009. Big fan of Python for its simplicity to use, power and flexibility. Working as a software engineer at Lifesum, a digital health company based in Stockholm, Sweden. Writes about Django & Python at http://www.ilian.io/. Spends his free time snorkelling, fishing, travelling and with his cute baby girl )
Mocking in Python
How to isolate one module from another during testing? And how to test functions that depend on date, time or 3rd party services? By mocking we can use “fake” objects to make your tests faster and simpler. We will take a look at the build-in mock module, Freezegun and Mocket.
Senior QA engineer & Project Lead @ Kiwi TCMS
Alex is a Senior QA engineer and Python developer with more than 10 years of experience. He is also the project lead of Kiwi TCMS - an open source test case management system, the currentmaintainer of pylint-django and a contributor to pylint. He loves everything open source, cooking and motorcycles.
Learn Python & Selenium the fast way
This workshop will teach the basics of Python: functions, common data types, operations with them; control flow - if conditions, for and while loops; running the tests in Python! Then comes Selenium - locating element, waiting for them to appear, reading text and attributes from the HTML elements!
Finally, we combine everything into a small program!
- For each module, there are links and instructions for preparation. It is best to read all of these before the workshop;
- An instructor will explain the theory from the preparation section and focus on writing programs to solidify the knowledge;
- If you don’t complete the tasks on time for the given module you lose 1 life;
- When all of your 3 lives are lost it is GAME OVER!
Business Process Outsourcing and Talent Acquisition Consultant
Venera Sokolova has been working as a freelance HR/Recruiter and Operations for the past 6+ years in the field of IT. She have helped IT professionals find their remote dream job or figure out the next step in their career development. Being an advocate for remote work and working to gather remote teams worldwide Venera started coaching people how to work Remote/Freelance/Contractor roles. She is going to talk about freelance platforms, how to make an online presence that help you be noticed and a portfolio that works, how to get a remote job and what you need to know about contracts, security while being remote and getting paid on time
Remote IT Work Career Workshop
Being an advocate for remote work and working to gather remote teams worldwide Venera started coaching people how to work Remote/Freelance/Contractor roles.
She is going to talk about freelance platforms, how to make an online presence that helps you be noticed and a portfolio that works, how to get a remote job and what you need to know about contracts, security while being remote and getting paid on time.
Director Software Engineering @Progress
Georgi is a technical professional and people manager with over 15 years of experience in multiple software technologies. Ten years ago, he joined Telerik, later acquired by Progress, and he has set up and led multiple products and teams since. His latest endeavor is building a product that unveils the AR/VR value for line of business applications.
Building your first Virtual Reality App
Virtual reality is steadily transitioning from an enthusiast-only technology to a mainstream ecosystem. Besides gaming and entertainment, multiple business verticals already see huge value in applying VR in their workflow. Building apps for VR is incredible fun but requires new skills and knowledge.
Principal Software Engineer @Progress
Panayot has 15 years of experience focused on UI. For 9 years in Progress, he has been working on the XAML stack and the NativeScript framework. Today he is pushing forward AR/VR technologies as he is a big believer in those, along with AI/ML for being the foundation of the next generation line of business application experiences.
Building your first Virtual Reality App
Virtual reality is steadily transitioning from an enthusiast-only technology to a mainstream ecosystem. Besides gaming and entertainment, multiple business verticals already see huge value in applying VR in their workflow. Building apps for VR is incredible fun but requires new skills and knowledge.
Senior Software Engineer @Progress
Deyan is an Architect, Senior Software Developer and Mathematics enthusiast. He joined Telerik 6 years ago and for that time he participated in the development of several different projects - Document Processing Libraries, RadPdfViewer and RadSpreadProcessing WPF controls and most recently in Telerik's AR/VR. He is passionate on 3D technologies and loves solving challenging problems.
Building your first Virtual Reality App
Virtual reality is steadily transitioning from an enthusiast-only technology to a mainstream ecosystem. Besides gaming and entertainment, multiple business verticals already see huge value in applying VR in their workflow. Building apps for VR is incredible fun but requires new skills and knowledge.
Senior Software Engineer @Progress
Hristo is an avid last-gen technology enthusiast and VR/AR developer. He’s been creating 3D-graphics applications for over a decade now, with experience in scientific research in the field of image processing, game development, ship simulators and all kinds of VR & AR projects. He’s done stuff for Oculus Rift/Go/Quest, HTC Vive, Microsoft Hololens and also mobile apps for iOS & Android, utilizing ARKit, ARCore and Vuforia.
Building your first Virtual Reality App
Virtual reality is steadily transitioning from an enthusiast-only technology to a mainstream ecosystem. Besides gaming and entertainment, multiple business verticals already see huge value in applying VR in their workflow. Building apps for VR is incredible fun but requires new skills and knowledge.
Software Developer @Auxcode & Part of the core team of KiwiTCMS
Ivo is a software developer at Auxcode, part of the core team of KiwiTCMS - the open source test case management system, and a participant and contributor to the Vratsa Software Community. He is still in school and loves drawing, the Lord of the Rings and black metal.
Git from Scratch
Thank you for your interest in Git! Git is awesome. Come and understand why. Git is widely used for distributed collaboration among programmers to track their changes and to share between them. Come and understand how.
Researcher in Robotics & Artificial Intelligence
Dr. Svetlin Penkov works at the intersection of artificial intelligence and robotics. He is interested learning programs from large amounts of data, which was the topic of his PhD at the University of Edinburgh. For the past 2 years, he has also been working as a Research Scientist & Tech Lead at FiveAI, the biggest autonomous vehicles start up in the UK, where his team works on learning models from data that capture how vehicles and pedestrians behave in dense city traffic. He has been actively involved in the entire process of bringing state of the art research into production code on the vehicle.
Playing ATARI Games with Deep Reinforcement Learning
Deep Reinforcement Learning (DRL) is one of the most recent and promising fields in AI.
In this workshop, we will implement a DRL agent that learns to play ATARI games. We will introduce key concepts from DRL as well as some Python packages such as Chainer and OpenAI Gym.
Senior Software Engineer @Formidable London
Kadi is a Senior Software Engineer at Formidable London, working primarily with React, React Native, Node.js and GraphQL. She is an active member and contributor in the JavaScript Open Source community, and enjoys keeping up to date with the cutting edge tech in the JavaScript space.
React Native Workshop
React Native is a framework for building native applications using React. You will see how React Native differs from React on the web, get an overview of fundamental building blocks of a React Native app, and use this new-found knowledge to build your very first app!
Software Architect @SBTech
I don’t take myself too seriously. I am a tech enthusiast. Most of my sentient life I have tinkered with tech. In IT I’ve done almost every job imaginable. I was doing cables, PC assemblies, IT support, domain controllers, networks, ISP, graphic design, software development… And I am equally bad at everything, meaning I have a lot of hands-on experience to share :)
Crash course in JS Event loop
Event loop demystified with practical examples. If you ever tried understanding JS’ concurrency model and failed, now is the time to get things cleared out!
Senior Software Engineer @Experian
Bogomil is a software engineer that is passionate about using Python for all kinds of programs – mainly due to clean syntax, portability, flexibility and ease to monkey-patching. Some of his projects include web site scraping, data processing and OS monitoring tools. He also believes that Python is THE programming language of the future and everybody should be familiar with it.
Python speedup using code optimizations
The workshop is organized by Experian Bulgaria
This workshop will focus on the steps needed to optimize existing code, so that performance can be increased. It will provide some internal details of how Python works, so that simple rewriting of the code can influence on the speed/memory parameters during runtime;
It will give a way to measure the performance of programs so that different changes can be compared;
It will remind that using effective mathematical algorithms is important ingredient for the recipe for optimizing a program. These techniques can be applied to identify bottlenecks in the execution of the program.
Software Developer @SumUp
Svetlozar is a software engineer with over 15 years of experience in different technologies and languages. He's also got extensive experience teaching as a lector in a leading tech training company. Svetlozar believes that system architecture is steadily becoming even more important than software architecture and is working hard on making developers aware of this paradigm shift. Currently he's the Platform Lead at SumUp and he's driving the company's next payment platform evolution.
Writing effective unit tests in Java
Solution Architect & Service Delivery Manager @it-economics Bulgaria
Timo is an experienced Solution Architect and Service Delivery Manager at it-economics Bulgaria. He is interested in a variation of topics such as SCRUM, Java, Agile Development, Business Process Management, Gamification and many more. He enjoys attending meetups on topics such as All things agile, Management 3.0, Innovative Organizations, Failure Stories, Behavioral Design and Creative Storytelling. At the same time, Timo likes photography and he is a big Netflix fan.
Building a high-performance, distributed and scalable microservice orchestration
The workshop is organized by it-economics Bulgaria
We will analyze the performance of a provided system, then separate pieces of code into microservices.
We will then introduce a flexible technology for microservice orchestration, configure it and hook the microservices in. Finally, we will again analyze the performance.
This workshop is for advanced developers and we will require some software to be downloaded and installed before the workshop, there will be no time to do this during the workshop.
Software Developer @HackSoft
Kamen Kotsev is a software developer at HackSoft. He's been working with Django, Python, React and Scala trough the last couple of years. He's keen on functional programming, good visual design and he has an eye for CSS.
Behind the scenes of React Redux
We will implement Redux and make it work with React from the ground up. We will also implement some redux forms and tools after that. We will implement a shared state.
We will create the basic functionality of redux forms and try to understand some of the decisions behind the implementation. We will also implement a different tool for working with forms that will be very similar to the existing lib called "Formik".
DevOps Tech Lead @SBTech
Mihail Velikov started working at SBTech in 2018 as a DevOps Tech Lead and he has already become a Team Leader of our DevOps team.
He is an integral part of the developing of a complex multi-tier product, involving client and server-side software, web application and web services using Docker, Kubernetes, Helm Jenkins, etc.
Currently he is working on containers orchestration with Kubernetes.
Declarative deployment and monitoring Kubernetes
Workshop Part 1:
Declarative deployment to Kubernetes with Weave Flux
1. A short introduction to Docker and Kubernetes
2. Explaining how Weave Flux works practically
1. Setting up a local development environment for all participants - access to the cluster + GitHub repository
2. Have each participant installing flux
3. Deploy example applications with flux
4. Deleting applications
Workshop Part 2:
Monitoring Kubernetes with Prometheus and Kubernetes Dashboard
1. Explaining Prometheus/Kubernetes Dashboard
2. Introducing helm charts
3. Install Prometheus + Kubernetes dashboard
4. Showing metrics and Grafana dashboards
5. Showing Kubernetes dashboards, how to see logs and so on
Director @Women Who Code Sofia
Reny is a director for Women Who Code Sofia, senior QA engineer at VMware and mentor at CoderDojo Bulgaria. She loves interacting with people and has an impressive collection of colorful scarves!
Git from Scratch
Thank you for your interest in Git! Git is awesome. Come and understand why. Git is widely used for distributed collaboration among programmers to track their changes and to share between them. Come and understand how.
Sr. Software Engineer @Uber
Evgeni has a passion for understanding complex systems and problems in order to simplifying them. A firm believer that pushing yourself to teach others about something is the best possible way to truly understand it in all its depth. He has been part of the awesome teams behind several elective courses at FMI on Python, Perl and JavaScript, as well as the first NodeJS course in Hack Bulgaria. Navigating the curious world of taxes and microservice oriented architectures as part of Uber's engineering team in Sofia for the past 4 years.
Golang 101
WHAT IS IT ABOUT?
There are so many programming languages out there, and new ones are popping up almost every day. Which one to choose? Where to start? To stay ahead of the game by broadening your skillset, learning a new language is important for your professional growth. Some of the developers claim that Golang is a neat combination of the best features of the most popular languages.
You will have the chance to find this out yourself at this workshop. Join us at the Golang 101 workshop. We’ll get familiar with Go - a modern language that makes it easy to build simple, reliable, and efficient software. We’ll build a real-world application and learn the basics of programming in Go.
Golang is also known as Google Go, which is the programming language created by (as you may have already guessed) Google. Golang was initially developed at Google in the year 2007.
YOU’LL NEED TO HAVE: A laptop and a charger Go installed (follow https://golang.org/doc/install). If you’re having issues, it’s ok, you can come before the workshop and we’ll help you.
WHAT WILL I LEARN DURING THE WORKSHOP?
You will be introduced to Golang and will learn the basics of this programming language together with experienced professionals from the Uber Engineering Sofia team. Moreover, you will meet like-minded people from the tech field.
WHO IS IT FOR?
The workshop is for people who are passionate about coding and have some programming experience but are new to Golang.
Developer @VMware Bulgaria
Kris works in the Cloud Management team at VMware Bulgaria and is part of the engineering team responsible for the implementation of core provisioning of cloud agnostic virtual machines in Cloud Assembly. He is passionate in every aspect of the SaaS development, including Java service development, Pipelines and infrastructure.
The workshop is organized by VMware Bulgaria
In this workshop, you will learn how to develop simple SaaS micro service Java application with Angular frontend, how to test it and deliver it to your clients using continuous integration and continuous delivery. Using Kubernetes, we will scale and manage our SaaS application.
Developer @VMware Bulgaria
Sim has intense interest in UI development stack, besides that she is passionate about application delivery and infrastructure. As part of CMBU VMware Bulgaria she is currently working on delivering cutting edge on-premise management solutions.
The workshop is organized by VMware Bulgaria
In this workshop, you will learn how to develop simple SaaS micro service Java application with Angular frontend, how to test it and deliver it to your clients using continuous integration and continuous delivery. Using Kubernetes, we will scale and manage our SaaS application.
Software Engineer @Docker Inc. & a core contributor to Kiwi TCMS
Anton is a Software Engineer at Docker Inc. and a core contributor to Kiwi TCMS - the leading open-source test case management system. He loves to learn new things and share his experience with others.
Learn Python & Selenium the fast way
This workshop will teach the basics of Python: functions, common data types, operations with them; control flow - if conditions, for and while loops; running the tests in Python! Then comes Selenium - locating element, waiting for them to appear, reading text and attributes from the HTML elements!
Finally, we combine everything into a small program!
- For each module, there are links and instructions for preparation. It is best to read all of these before the workshop;
- An instructor will explain the theory from the preparation section and focus on writing programs to solidify the knowledge;
- If you don’t complete the tasks on time for the given module you lose 1 life;
- When all of your 3 lives are lost it is GAME OVER!
DevOps & Cloud Manager @MentorMate
Daniel Rankov has been doing cloud environments architecture and implementation based on Amazon Web Services (AWS) for the past 3 years.
He has certification in all the Associate levels, AWS Certified Solutions Architect – Professional, AWS Certified DevOps Engineer – Professional, AWS Certified Security – Specialty and AWS Certified Advanced Networking – Specialty.
Daniel is very passionate about public cloud and AWS as well as DevOps culture and practices.
He is also a co-organiser of AWS User Group Bulgaria and Sofia HashiCorp User Group.
Build a Serverless Web Application with AWS
The workshop is most appropriate for Beginner level of cloud and AWS experience. We are going to do an overview of the AWS services in use.
You'll create a simple serverless web application that enables users to request unicorn rides. The application will present users with an HTML based user interface for indicating the location where they would like to be picked up and will interface on the backend with a RESTful web service to submit the request and dispatch a nearby unicorn. The application will also provide facilities for users to register with the service and log in before requesting rides.
The fourth edition of HackConf took place on 15th-16th of September at Sofia Tech Park. For the first time, the conference was held entirely in English! Attendees from 17 nationalities participated in the event.
All materials from HackConf 2018 can be found here and all videos from the talks on our YouTube channel. 2018.hackconf.bg
HackConf 2017 was the third edition of the conference. The event was entitled “ How to write better software”. More than 1200 people were part of the HackConf 2017 where 16 top lecturers presented their talks.
All presentations and video materials can be found on HackConf 2017's YouTube playlist. 2017.hackconf.bg
HackConf 2016 was the second edition of the IT conference. The event was held under the motto: “How to become better programmers and IT specialists?”
During the 2-days event, we saw and heard 16 talks by 17 speakers. Some of the awesome topics were: "How to learn to program for 10+ years", "The code is a minefield", "The good programmer: а matter of perspective", "Security in today’s world". You can watch all presentations on: HackConf 2016's YouTube playlist. 2016.hackconf.bg
HackConf2015 was the first HackBulgaria’s IT educational and motivational conference. The main purpose of the conference was to motivate and give attendees appropriate direction for their development in the sector.
During the 2-days event we saw and heard 18 talks by 19 speakers on topics like: "Indie Game Development", "How to successfully accelerate our idea", "The books every programmer has to read". You can watch all the presentations on HackConf 2015's YouTube channel.
The tickets are on sale! Your ticket gets you:
✔️ 2 days with 2 tracks of high-class software development talks in English
✔️ 1 day with hands-on workshops and amazing instructors