A Blueprint for Debugging Poor Mental Health in the Tech Industry
The UK tech industry has up to five times more incidences of poor mental health amongst its staff than the UK average. This session explores why this could be, what the hotfix is, and who exactly should be on the solution development team.
We are more than just a human interface and normal operation is not a simple concept. Each and every one of us has our part to play in the user flow of debugging this issue.
It is not a quick fix. It is not an easy fix. It is, however, an issue which needs to be brought to the forefront so that our staff are empowered with the toolkit to help themselves and others before this epidemic gets out of control.
If we do this, then everyone is a winner. Well staff, mean well organisations.
This is our call to action.
A Stranger in a Strange Land: Data Science Onboarding In Practice
With Data Science being the current hotness, it’s appearing in job specs and linkedin posts more than ever. However, for an organisation attempting to invest in Data Science capabilities, how do you introduce, accomodate, and indeed, welcome these new skills into your production data workflows, and what tools can be leveraged in data exploration to understand the inevitable data cruft, technical debt, and documentation atrophy that comes from any large production service over time?
In this talk we’ll walk through some of the practices I’ve arrived at as someone who joined an organisation with no previous Data Science capability, and what tools I recommend to new hires (and intrigued colleagues) to understand complex production datastructures.
A Year on the Go
Much of the modern use of Go centres around backend infrastructure for websites, but it is touted as a modern systems programming language. This session will talk about the speakers experience of coming to Go from a C background and working with it in an environment where previously C or C++ might have been used. It’s intended to provide the audience with an overview of the advantages and disadvantages experienced while developing with Go instead of C, without going into full scale advocacy about either or veering off into alternative languages.
Advice and anecdotes about becoming a senior software engineer.
I’ll be talking about what it takes to get to senior, what it takes to succeed when you’re there and some common misconceptions along the way.
Build vs Buy- AI in production
AI is becoming more and more accessible, providing everyone with the capability to integrate intelligent decision making into their apps. AI services have made machine learning available on-demand, from language classification to object detection, raising the question-is it best to design your own model to solve a problem or pay for a service to do it for you?
This talk will cover the key differences between build-your-own ML models and pay-as-you-go AI services, how to identify which offers the best solution to your problem, and how you can get started.
Building and marketing an open source serverless product from scratch with 0 budget
Let me take you on an 8 month journey that started at re:Invent 2019 where I had the inspiration to build a serverless product that if you fast forward to today has been featured in multiple serverless newsletters, been spoken about by AWS heroes, used to enable organisational goals and blogged about by AWS themselves.
In this presentation I will: - Tell you the origin story of CDK Patterns - Talk about using the product mindset to build an MVP - Show you how I marketed the product with a £0 budget - Give you the advice I wish I had when I started
Buildpacks - The future of containers?
Cloud-native buildpacks provide organizations with a way to build consistent, more secure, and more efficient docker images. The session will be a deep dive into Cloud-native buildpacks, and how they work when compared to traditional Dockerfiles. The session will also explore the benefits and tradeoffs when transitioning to build packs and how they solve some of the industries most challenging problems.
How to use caching to bridge the gap between end-to-end testing and continuous integration, in order to create Behaviour-Driven Tests that are fast to run, intuitive to develop and will stand the test of time.
Changing Airplanes Mid-Air - The Cloud-Native Way
Flying is one thing. Trying to justify to 100 people why you should change planes mid-air is another. Actually ferrying people between 2 planes while in-flight is near impossible, but we made it work. This is a series of short stories that talk about the process we undertook to transition to Kubernetes, shifting our continuous integration and release process to Azure DevOps and the future for our Systems Architecture. We will discuss the real examples of how we accomplished retro-fitting our legacy systems, some of the teething problems with a new container orchestration workflow and championing the great benefits of the Cloud-Native approach, that we’ve attained since beginning this process a little over 12 months ago. We will also talk about organisational and communication problems that result with big ticket changes and keeping the passengers happy and calm when the engine is on fire.
Coding for a Live-streaming platform
Live-streaming platforms like Twitch, Mixer, YouTube, etc. have been gaining popularity in recent years, especially during lockdown. What are developers roles within this growing industry?
My talk will focus on some of the unique coding challenges a live-streaming platform can offer developers, such as informational alerts, viewer and audience interactions, games development, etc. The second half will go into some coding examples, covering web development, IoT integrations, and more!
This talk should enlighten developers of any skill level on how they could leverage their existing skill set and adapt it to challenges unique to live-streaming platforms.
Continuous Application Security
I will be talking about what Continuous Application Security (CAS) is and the benefits that it has over the traditional approach to application security that are over reliant on manual processes and lengthy scans.
CAS breaks down scanning processes into specific checks that run continuously and accurately during the development process. It also enables timely response to new attacks and vulnerabilities that emerge in both custom code and third party components. It helps development and security work together effectively, enabling them to create, deploy, and operate applications faster and more securely.
Key takeaways: - What Continuous Application Security is - Overview of IAST & RASP - How it fits into a DevSecOps pipeline - The benefits of CAS over SAST & DAST
Disclaimer that my employer’s product is in this area so I will be using it to visualise some of the points I will be making, but it won’t be a sales pitch!
Creating Your Own Domain Specific Language For Fun And Profit
Language is that which brings us together, but it can often be that which divides us as well. Human language is often inexact, which can lead to serious issues when it is used to try and define complex business requirements. Studies have shown that issues from misunderstanding requirements are often the most costly to fix and can even undermine entire projects. How can we prevent this from happening to us?
In this presentation I will talk about how I was faced with an extremely complex business scenario ten years ago in a customer-facing insurance website; a set of intricate requirements about insurance coverages for property and auto policies that had to account for differing laws across all 50 US states as well as different types of policy and policyholder. Historically this had accounted for almost 75% of all defects within this application. To solve this we decided to use a Domain Specific Language (DSL). Working together with the business we created an unambiguous language for the requirements that was specific enough for us to automate the process of turning it into rules-format code that we could use within our application. As a result we were able to reduce the number of defects caused by this area to almost 0%.
That was ten years ago. How would we solve this problem today? What new tools are available to help bridge the gap between desire and results? In this talk I will try to answer those questions. I’ll also talk about how to develop a business case for using a DSL and collaboration techniques to help create the common language. Hopefully you will leave this talk with some powerful new tools for the next time you find yourself spending more time explaining what you want than building it.
Developer’s Intro to AR: Build your First App in 1 Week!
Are you a developer who’s never explored Augmented Reality? Scared of game engines? Just wanna impress your mates during lockdown? Join me on a journey to create your first AR mobile app in just 1 week!
AR is one of the biggest technology trends right now, and it’s only going to get bigger as AR-ready smartphones become more globally accessible. It can be used to solve real-world problems by merging the real and digital world, via a digital overlay of graphics and interactive features.
You may think AR is only used in Snapchat filters - Valuable solutions can be seen across many industries such as Healthcare, Manufacturing, Education, Tourism and Retail. For example, IKEA’s Place app uses AR to let customers see how their furniture could look and fit into their own homes.
In this talk, you’ll learn the brief theory behind AR, how you can setup a base project in Unity and further technologies to get you started - Giving you the core knowledge needed to let your immersive imagination run free!
Developing for Developers
As frontend developers, typically when we build sites and apps, the user we are concerned with is the end user, looking at our product in their web browser or via an app. But what if this isn’t the case?
When building a component library, as well as considering end users, we must now also consider the needs and the experience of other developers, those who will be using our components in their own development work.
What effect does this have on how we work as creators? How do we ensure a good user experience for both developers and end users? Where do design, product and other teams fit into this flow?
We’ll look at these questions and more along with some potential answers and real world examples.
DynamoDB for the Rest of Us
An introduction to Amazons DynamoDB - one of the fastest growing databases in the world. Dynamo is notoriously hard to grasp - but this talk should make life much easier for anyone to get started with this awesome database.
Efteling in One Day
Efteling is a European theme park in Holland originally opened in 1952, inhabited by roller coasters, fairytale creatures, medieval knights and a mysterious court jester. The question - is it possible to visit every attraction in a single day, or do we need to book a second?
This practical implementation of the Travelling Salesman Problem, a classic Computer Science problem, will demonstrate different methods of calculating the time required to visit every single attraction at the Efteling theme park. Or is this question just too big for one computer to handle?
Games Design & Rapid Prototyping - Turning a week of dev time into a demoable game
During our time in Northern Ireland Screen’s Pixel Mill games accelerator, we engaged in a rapid prototyping scheme that saw several local game studios make 6 game prototypes each in 6 weeks. My studio secured NI Screen and UK Games Fund funding for further development of one of our prototypes and learned so much from the experience that we continued making at least one prototype per quarter to keep our slate of games current.
I’ll share everything we learned in those six weeks and beyond - rapid prototyping methodology, scoping and designing appealing game mechanics swiftly, testing market viability, and how to leverage your rapid prototype to its maximum potential once it’s complete. I’ll discuss how rapid prototyping helped us build publisher confidence and how we presented our prototype to publishers to open early conversations.
If you’re interested in making games, are a games student or new indie dev who needs to test multiple ideas reliably but quickly, or you’ve been tinkering with a great game idea for a while without producing something demoable, this talk is perfect for you.
Gone are the days of exact matches (SQL joins)
When in a project, we have a requirement to find matches of two columns and exact joins are not doing well, then we have to use less exact match using fuzzy matches logic. Through this session, I am going to introduce few techniques like cosine similarity, Levenshtein distance etc. There will a brief discussion on SQL Joins followed by introduction to fuzzy matches.
Helm: Making Kubernetes Easy
This talk is an introduction to Helm; a Kubernetes abstraction tool. At a high level, it will cover: - What Kubernetes is - Why someone would use Kubernetes - Common problems with installing Kubernetes resources - What Helm is - How Helm solves common Kubernetes problems
When I was six years old, my folks bought me a Bontempi toy keyboard for my birthday. I mashed those keys every day until it broke, and beyond. My parents were scarred for life, but a love of The Synth was planted in me that remains to this day.
Synthesizers are a cornerstone of modern music. Evolving from room-sized analog monsters to cutting-edge boxes, they’ve captured our imagination for more than half a century.
Did you know there’s one inside your browser?
A finite state machine is a mathematical model of how a particular piece of state can and should change. They can be used when planning and implementing software systems and this talk will discuss their uses when building a User Interface.
Intro to Azure Functions and Demystifying REST APIs
Chances are if you’ve been on the web, you’ve heard of API’s. They’re a neat way of passing data between applications, and nearly every major web service has one. Services like Twitter, Youtube and Spotify sharing their data has paved the way for people to build literally limitless interesting applications!
Most are quite simple, but RESTful design makes APIs even easier to interact with. If you haven’t interacted or built one before, it can be a little intimidating knowing where to start. No fear! In this talk, I’ll demystify HTTP Verbs, what makes an API RESTful, and how to build one using Azure Functions.
Keras with TensorFlow
Using a sequential model from the Keras API.
Looking at 2 examples, the first being a small example file dealing with the basics of a flat model and a prediction made from a 1 layer input after it has been trained.
The second being a demo of a rock-paper-scissors game that takes 4 input labels to train a model for an ai to decide on a winning move based on your hand gesture image.
Kubera- Ai core new gen Rpa platform
Will talk about the existing RPA solution s and their pitfalls. How a dedicated workflow targeted at a specific sector can overcome most problems in RPA implementations.
Machine Learning crash-course
There is a misguided conception that we all need to be rocket scientists to use machine learning in production - to this I say balderdash! … Machine learning is an engineering skill that developers need to add to their bag of tricks, and the journey doesn’t have to be painful.
The aim of this session is to give a solid crash-course in “just enough” Machine Learning that attendees can apply the skills learned in a practical manner, in code, immediately.
So, leave your calculus and trigonometry at the door, and learn how to predict the future in 45 minutes, no math required :)
Mental models for the win
There has been a lot written about skills and performance, be it grit, or open mindset, but a lot of it does not stick. What doe the actual science says about that? Can I become an expert in 10000 hours? Well I guess we only have 30 minutes …
Micro Frontends, are they the future of web application development?
Gone are the days of single page websites. From e-commerce and holiday letting sites to social networking platforms, large scale and complex web applications are all around us nowadays.
As such, each application has a duty to scale up to handle growing user needs and therefore have a multitude of teams working on these products. Micro Frontend architectures can help these teams quickly build and deliver complex web solutions, however these can bring their own challenges.
Webpack Module Federation aims to remove these challenges and bring Micro Frontend architecture into the modern world of web application development. Let’s take a journey through the history of single page applications, from a script tag on a page to bundled applications and now Micro Frontends. Are they the future?
My Summer with Igor: How to become a physicist in just four traumatic weeks
In 2017 I bumbled my way into publishing physics research in Serbia. With terrible undergraduate Python code, I analysed lattice QCD supercomputer simulations Japan and discovered that we may have a fundamental misunderstanding about the forces which hold protons and neutrons together.
I hope to teach the audience how to move the Eastern Europe for summer, live in a dormitory in a school for train conductors on £2 a day and conduct particle physics research. I hope they will leave with a basic understanding of a surprisingly fundamental open question in lattice QCD and a lot of sympathy for me.
Next level of test automation with model-based testing
In the context of a large software testing company with offices in Turkey and the UK, we have used the model-based testing approach since 2018 to take our test automation efforts to the next level. We used model-based testing for automated design of test cases and also for automated test execution. For this purpose, we have chosen a popular open-source model-based testing tool, called GraphWalker, and by systematic design of test models (state charts) using GraphWalker, we have observed numerous benefits in improving our test-case design practices, and have shifted our test-design practices from ad-hoc to systematic approaches. The model-based testing approach has also provided other benefits in terms of improved test coverage (number of paths tested) and also the fault detection effectiveness of our tests (our tests now have higher ability to find defects). Furthermore, we have integrated GraphWalker to Selenium and we can now automate the execution of the tests generated automatically from models. We have applied model-based testing to test several large web applications for many of our clients, and also for testing our own test tools. The two speakers will share the experience and insights from the several software test automation projects in this talk. We will also provide many hands-on examples. By learning from the ideas presented in the talk, the attendees will be able to consider applying model-based testing in their own test projects.
Non-technical tips on being a better engineer
Oftentimes as engineers we focus on the technical side of our learning. However, as we progress in our career we shouldn’t neglect the more analytical and softer skills that can help us achieve more, be more productive and enjoy work more. From heuristics on troubleshooting to EQ and self-awareness, in this talk I aim to tell my younger self some things that I know now and I wish I knew then.
Not Your Mothers TDD - Type Driven Development in TypeScript
This talk will guide you through these new possibilities. We will start with the fundamentals of structural typing and algebraic types, but quickly move on to mapped types, type guards and beyond. Amongst other things you will see how to remove redundant types, write functions at new levels of abstraction, use constructs like HLists to improve type safety and use emerging libraries like the TypeScript Toolkit. By the end of the talk you will have an appreciation for why Type Driven Development may be the new TDD :-)
OurRagingPlanet: cultural learning through natural disaster simulation
Product of Theseus: Where are you going?
Do you need to create a clear vision of why your product exists and where it’s going, grounded in the reality of what it does, why, and for what audience? If you’re building products - you’ll find this talk helpful.
Ship of Theseus is a thought experiment about a boat that leaves on a journey and during that voyage, it’s continually mended. When it arrives as its destination, every part has been replaced. This results in a philosophical question: Is it still the same boat?
Asking “what is this product?” is a philosophical question in a similar way. Is a product a set of continually changing features? If there are features no one uses, are they really there? Does a product even exist?
Without a clear product vision, you might encounter these problems:
- Feature bloat.
- Users employing painful workarounds.
- Product teams surprised by how users use their products.
- Slow feature adoption.
- Losing out to competitors who are better at communication.
- Sales or marketing selling product features that don’t exist (vaporware!)
At my company, we help product teams communicate the value of what they do to their customers. By the end of this talk, I’ll show you how we create a picture of: What is this product? What does it do? And what value does it deliver?
Quantum Computing 101 with Qiskit
Introducing Quantum Computing with the Qiskit Python Library. Qiskit is an Open source library that allows you to run quantum circuits on the cloud with a real quantum computer. This talk will outline everything you need to know to get started as a Quantum enthusiast!
Side Hustle Adventures
During Lockdown I ended up deferred as I was about to start a new job, after having some down time I stumbled on a free facebook 5 day challenge which lead to me creating a very small side business. Here’s what I learned and why it was great for me which had nothing to do with money
Simple, Hard, Effective
In this talk we will present the idea that simple and hard make effective results.
First, we will prove that simple and hard equals effective by telling an all too familiar story of when something complicated and hard resulted in not very effective results. From this, we will use logic and reasoning to reverse the formula of complicated and hard being the least effective into one of simple and hard being the most effective.
Expanding further, we will discuss simple over smart, why being smart and creating complexity doesn’t help you and others. We will also explain why we must do hard things to get better (because it ain’t ever going to be easy).
After providing enough context on why we say simple, hard, effective, we will now begin to tie in how this phrase is incredibly valuable when discussing software and crafting good software.
There will be three examples of practices in software craftsmanship and engineering that are simple, hard to be good at, but deliver immensely effective results. These will be practices that are so simple, you can start applying them straight away to your work.
The key take-aways of this talk will be: - Learning how simple is good and being “smart” is actually not great - Coming to terms that we will have to work hard, it’s just nature - Familiarity of practices not commonly used in the software community and industry within Belfast, but will set you apart if mastered - Being able to convince others that we should apply the practices learnt, because simple and hard make effective results
Standardising Change: IEEE P2675 DevOps Standard
The new IEEE P2675 draft standard for DevOps: Building Reliable and Secure Systems including Application Build, Package and Deployment is currently in the voting phase. This session explores the major topics in DevOps which are essential to standardising this process. The standard itself is not finalized and these are the opinions of the presenter. At the end of the session attendees will be able to understand what changes are required by an organisation in order to apply a standard where fundamental development concepts must change.
Transitioning to an SDET (during a pandemic)
Going from manual testing to a fully SDET role already difficult enough, but with the extra pressures of a global pandemic and being fully remote makes it even more complicated. Many believe it is only about learning automation, but there is an entirely different mindset involved.
Join me as I take you through my journey of becoming an SDET during lockdown, how you can make the transition, and tips on doing it whilst stuck at home.
Web UI Testing with Cypress
You may, or may not have heard of Cypress as a UI testing tool. I want to give you a brief overview of my experiences so far and draw some comparisons to traditional tools such as Selenium.
Women in Tech: What More Can Be Done To Bridge The Gap?
It has been a topical subject that there is a divide between the male and female genders within the technology sector. Being that the number of females in the sector is significantly lower than male, diversity policy must be an important aspect of recruitment and culture - providing the opportunity to have open discussions from a variety of different perspectives. This lightning talk will discuss my own personal experiences within technology, women’s groups and initiatives in Northern Ireland. It will address the need for more female representation in the digital sectors and will highlight ways in which educational institutions and companies can help by engaging in, and with, women’s technology groups. Indeed, women in tech is not limited to programming - how can we create more spaces for female collaboration in the industry holistically? From my education through to working environments, women have always been the minority within technology and I often ask ‘why?’. With few role models in STEM how can the industry support and develop female recruits most effectively? I will build on the work of women in tech groups by suggesting further measures such as apprenticeships, outreach and workplace training and development.
Writing Emulators for Fun and Self Loathing
Do you want to learn assembly, but thought the conventional methods were too mainstream for you? Do you also have a healthy amount of self-loathing? If that sounds like you, I have the talk for you! First things first, we’ll have a brief discussion on the history of emulation and why it’s so important to emulate what is often seen as obsolete software for preservation purposes. After that, I’ll show off a personal project I have going on - writing my first emulator in Go for the Game Boy! We’ll discover how to write your very first emulator and hopefully get a game running. Even if we don’t get a game running, you’ll take away how the bare bones and fundamentals of programming work with the Game Boy variant of Z80 ASM, and have a bit of fun along the way.