DevConf is a community driven, developer focused, one-day conference hosted annually. The aim of the conference is to provide software developers a buffet of tools, practices and principles applicable to tackling current and future challenges in the South African software development environment. It's an event where attendees can learn, network and be inspired regardless of their specific technology stack and programming language of choice.
DevConf serves to inspire software developers. A range of topics applicable to software development will be presented. From keeping up to date with the latest technologies and trends to tackling the challenges of working in large enterprise systems – it's a buffet of experiences, ideas and pragmatic advice as well as an opportunity to connect with peers across the industry.
Request for speakers is now open and will be open until the 1st October 2017.
Our event agenda will be published at the end of October 2017.
Ticket sales and request for sponsors will be available on the 12th September 2017.
Buy in bulk and save! We offer 5% off for 5 or more tickets & 10% off for 10 or more tickets (does not apply to the Early Bird tickets which are already discounted more than 10%).
If you are a student or work for an academic institute, we have a limited set of massively discounted tickets available for you. Please email us your from your .ac.za email address, so we can assist in getting those tickets to you.
Submit your talk at https://www.devconf.co.za/CFS
4 September 2017 - Submissions Open
1 October 2017 - Submissions Close
15 October 2017 - Speakers Selected. Regardless of selection or not, we will contact you via email to let you know.
22 October 2017 - Deadline for Speakers to confirm
25 October 2017 - Announcements of Speakers
Our Johannesburg event will kick off with an amazing keynote and be followed by 5 concurrent tracks of content. We will have over 30 full length talks (45min long) and over 5 lightning talks (15min long) during the day. The day will also include snacks, lunch and drinks at the end of the day for networking.
Our Cape Town conference will be a smaller event kicking off with an amazing keynote, followed by 2 parallel tracks filled with great content. We will have over 12 full length talks (45min long) and over 5 lightning talks (15min long) during the day. The day will also include snacks, lunch and drinks at the end of the day for networking.
The keynote and full length talks presented in Cape Town will be the same content as in Johannesburg and the lightning talks will be unique per event.
|Crafting Code||Talks related to designing or refactoring code (can be language specific or spanning multiple languages).|
|Database||Talks relating to database paradigms from Relational Databases to Graph & Object Databases, techniques for working with data, etc.|
|DevOps & Automation||Talks related to DevOps and automation of deployment, including specific automation approaches, experiences and lessons learned.|
|Tools||Talks related to the use of developer tools, languages, frameworks and platforms.|
|Teams, People & Methodologies||Talks related to culture and experiences in teams, new ways of working, or tools that practitioner’s find useful.|
|Security||Talks related to security or hacking.|
|IoT||Talks related to Internet of Thing devices, platforms and writing software for IoT.|
|Machine Learning & AI||Talks related to data science, and how to use AI and machine learning.|
|Future Technology||Sessions focussed around the the future of autonomous vehicles, VR (Virtual Reality), AR (Augmented Reality), rockets and drones.|
08h00 → Registration ← 09h00
09h00 → Welcome ← 09h15
09h15 → Keynote ← 10h00
10h00 → Movement, Networking, & Snacks ← 10h30
So you are technical genius and you have the software community commits and contributions to prove it. Therefore your value to an employer is obvious...you should earn a fortune! Does this assumption hold true for the current and future trend in business? What does business value, historically, now and most likely in the future? My talk explains why you are not a resource or an asset. You are an investment. This talk explains what is needed from you and from the business to unlock the value of the investment in you and your career.
I am the CEO of Chillisoft. I have worked in the software development industry for 18 years, as a consultant, and owner of two software development companies. During the course of my career, I have studied and worked with software developers and senior managers. I am therefore in a unique position of understanding how soft issues, shape business, learning and sustainability of business and a career in the software industry.I have presented and spoken at various engagements, as a guest speaker or a presenter. These engagements have been to students, software developers, managers, senior decision makers from government, corporate and the private sector.
Do you have dark places in your database where only the knowledgable few fear to tread? Shouldn’t you try to change this?For more than a decade any team I have worked with has treated the database as code. We have also treated the database as a living object that changes its structure with every iteration of the code. This practice takes discipline but the payoff is well worth it.In my daily job as a consultant, I am often frustrated to find many databases in a state of uncertainty. Not many teams embrace the concept of Agile Database Design, and those that do, struggle to get it right. Databases aren’t treated as first class citizens and definitely not as code. This results in databases quickly losing consistency with the code and over time becoming unmanageable behemoths.In this talk I discuss why treating your database as a first class citizen is important.I cover the techniques we have used over the past decade to make sure we treat the database as code, as well as the techniques we implement to manage ve...
Chris Tite is a director and co-founder of Kaleidocode, a software consultancy based in Durban.Chris has over twenty years of software development experience, spanning multiple countries, technologies and industries as diverse as banking, farming, health services, call centres and financial services.Currently Chris can be found either overseeing the architecture of client solutions at Kaleidocode, actively contributing code to the solutions, or working with teams on new ways to approach technology, skills building and productivity.Chris is also involved in Kaleidocode’s mentoring programme, as well as giving talks around the country through his inStruct Series, or through the Durban Agile User Group, where he is well known for sharing his love of craft beer with active contributors during his talks. Chris has also presented at both the Johannesberg and Pretoria Developer User Group, and presented at last years DevConf.
Tools and Tactics for building, testing and deploying mobile solutions. Hear from one of the industry’s best how you can set your Mobile XPlat Development and DevOps strategy in motion
About Brent: I am a passionate technologist who enjoys providing leading-edge Information Technology services to medium and enterprise clients in a wide variety of sectors including retail, public, financial, media and communications, energy and the professional services industry. I create value by bridging the gap between business and technology through a focus on strategy; people, processes, information and communication technology. I am skilled in a range of offerings extending from Microsoft Dynamics implementations with customization to bespoke software solution offerings using Visual Studio, .Net Framework, SharePoint Portal Server, BizTalk Server and Microsoft Azure. Office 365 Development, Cognitive Services, IOT and Bots I pendulum between delivering software solutions and mentoring and coaching partners, customers and ISV's to do the same. About Dave: Dave is the Managing Partner and Co-Founder of Tangent Solutions. Prior to starting Tangent Solutions in 2010, Dave gained wide exposure into the Information Technology consulting industry in Johannesburg whilst working for a number of Gold Microsoft Partners and Blue Chip corporates including amongst others, the JSE, Investec, Standard Bank, Sun International and Liberty Life. Tangent focuses on delivering innovation and mobile and web applications that combine sexy UI and UX with high quality engineering. Tangent is a strong proponent of build automation and DevOps and have helped a number of enterprises implement digital transformation and reap the benefits thereof, allowing for quicker time to market, reduced build costs and improved quality. In the Digital age, good enough is not good enough. Excellence is the only currency.
"An introductory overview of ChefChef is a policy management tool which allows for the automation of server deployment. I have been working with chef for over 18 months and would like to share some of my experiences. This talk is for those who would like to know about what Chef is and what it can do, and how to use it.• What Chef is and what to use it for• The Chef Development Kit• Your first cookbook• Bootstrapping a node• Quick overview of chef server features."
How is it possible that a seemingly highly skilled team struggle to meet business deadlines whilst a team of average skilled professionals consistently deliver value to their client? Do the skills of the team members have any outcome on the delivery of the team? Of course they do, but without the secret sauce even the best team will fail. The uncomfortable truth is that human beings do not do ANYTHING unless they are sufficiently motivated to do so, despite what they may say they will do. Unfortunately, in most organisations, people learn to say what their managers want to hear and then still proceed to do the opposite. Why do people do this? In this talk we will explore how an Agile approach makes average teams become great teams through the injection of one vital ingredient: motivation. We will explore how an Agile approach gets people in all kinds of industries (not only developers!) become motivated to be successful without them even realizing it. The key principles of Agile that, probably coincidently, addresses the fundamentals of human motivation, will be uncovered.
Jaco heads DVT, a team of 600 staff that specialises in Agile software development, testing and related services for clients in South Africa and the United Kingdom. He has more than 20 years IT experience in the field of software development and has been involved in the architecture, design and construction of various size software development projects, some of which were in the utilities, financial and insurance industries. Jaco holds a doctorate in Computer Science from the University of Johannesburg and has focused his Ph.D. research on object oriented software design and information security.
10h55 → Movement ← 11h05
I am a software engineer / DevOps guy currently building and deploying software systems used in TV production (think BBC, Sky, etc, etc).I am self employed and I work from home in Johannesburg but with media companies based in the UK and the US.I've given many presentations on various topics (Scala, configuration management with Ansible). I also presented at DevConf 2015 on the topic of property-based testing.
The database is slow! Or is it? How do you know it’s the database that’s slow?This session will show how, as a developer, you can get some insights into exactly what queries your application is running against that database and precisely how slow (or not) the database queries really are.
I'm a tech lead at Entelect Software. I've presented at database conferences locally, in Europe and in the USA
So, is this functional programming thing just a fad, starting to have its 15 minutes of fame? Are there any benefits to learning a functional programming language? Or to switching your development over to a functional language? In this talk, Rachel will discuss several of the considerations and use cases that helped Jet.com (and a few other companies) decide whether to consider, or fully make the switch to using, a functional programming language.
I've presented at several large and small conferences, mostly focusing on functional programming, and I'd love to visit Johannesburg!
Come see how we set up environments and deploy to Docker containers. We will walk though automated packaging and deployment of Docker environments make releases a non-event.
Founder of Team Foundation Consulting, Niel Zeeman is a Technology Specialist, ALM MVP and Visual Studio ALM Ranger . He provides support and services for Application Lifecycle Management and Team Foundation Server in South Africa. Niel has more than a decade and a half of experience in the IT sector. He often hosts ALM community sessions and regularly speaks at developer and ALM focussed events such as DevConf 2016.
An overview of how Spring Boot and Spring Cloud can help with the development of Microservices with specific attention to the service discovery and management.Demonstration and code included.
I have been the Chief Software Architect at JumpCo (formerly TSC Technologies) for the last 10 years.I presented at DevConf in 2016 and I Code Java 2016 and 2015. I regularly present at Johannesburg Java Users Group.
11h50 → Movement ← 12h00
Infrastructure as Code was supposed to revolutionise the way we managed our build servers, freeing us up to work on cool stuff whilst it automagically managed the drift! We’re still working on this dream… I’m going to talk about where we went wrong, and how we’re using Docker to make this a reality.
I started out as a developer 15 years ago when I became fascinated with automation and how it could solve many of the problems I was experiencing. I currently lead the DevOps team at Derivco and co-host the Durban DevOps Meetup group. I am passionate about collaboration and automation, and spend a large amount of time finding ways to improve our software delivery pipeline and bringing people together to work on complex problems. When I’m not at work I enjoy spending time with my family and taking time out to run, cycle or workout at the gym.
The database is often cited as the cause of poor performance but is it true the SQL just won't scale. In this talk we will look at the most common cause of poor query performance "missing or poorly chosen indexes". We begin by showing you how rapidly query performance degrades when poor indexes are used and then show you how to chose indexes that support your application as it grows
Michael is an independent Business intelligence consultant from Johannesburg, South Africa. He specialises in data warehousing using the Microsoft SQL server stack and runs the local SQL Server user group.
If you haven’t heard about blockchain, you probably know Bitcoin. Blockchain is the underlying technology that powers Bitcoin. Although it was created to support Bitcoin, the blockchain concept can be defined regardless of the Bitcoin ecosystem. Experts say that blockchain will cause a revolution similar to the one enabled by the advent of the Internet. But what is it really, and how can it be used to build apps today? In this talk, Badi explains the blockchain phenomenon to developers who primarily build web and mobile apps. You’ll understand the fundamentals of blockchain and how to get started with building apps with it.
Badi is a lead developer at IQ Business and a Google Developer Expert (GDE) in the making. Badi focuses on growing African businesses by solving problems and finding new and better ways of doing things using technology. Since beginning his career with Yahoo!, Badi has lived in four countries, worked on numerous projects for multi-national companies, led many software teams and built beautiful software.Badi is also an avid public speaker having spoken at more than 10 developer events and conferences in 2016 alone, including international conferences held at places like Romania, Denmark, Sweden, Kenya and at home here in South Africa.
Innovation is about challenging the status quo and solving problems in interesting new ways. To allow innovation in our day-to-day work, we need to actively work at it. Allow space and time to think. Allow space and time to exercise the craft and mastery of Software Engineering. This talk will cover how culture, practices and tools underpin this search for innovation.
Dan Acton is Head of Devops and Software Engineering at Absa. In this role, he and his team help teams across the organization to deliver high quality software at high velocity. Dan has been at Absa for a year and a half, and before that was at Google. Dan is passionate about software and people.
I would to explain and show what evolutionary architectures are all about, examples, and when they can be beneficial, and when they are not. Share what event driven architecture is about, what would be the indications whether event driven architecture is the right choice for our application or not. What its strengths are and when it’s better to pass on this approach.
I work at ThoughtWorks (Johannesburg).I have given a talk on RESTFUL services and how to implement that architecture using Spring Boot at the Tech4Africa in CapeTown 2015.
12h25 → Movement & Lunch ← 13h05
We create REST API’s to be integrated to system that are expected to at the end achieve a business defined goal. We never test against these requirement and wonder why we have to either add or rework some of our service because they don’t match requirements. Join me in this discussion as we bridge the great rift between business and technical using Cucumber-Serenity. This talk will expose you to writing normal English scenarios (test cases) that are translated into methods which test the actual contract you expose to the public and enable rich reporting for visibility.
Ruddy Riba software developer at BBD and an Honours graduate in Computer Science. With 4 years experience she has worked in various project involving .NET, knockout.js and is recently taken on a venture to Java with Spring and Angular. She strongly believes in testing code from unit test to end-to-end. Ruddy is a co-founder of an organisation called Pink-IT aimed at creating a social culture for females to be exposed to software development to achieve gender diversity in the workplace.
I wrote a document with more details about this, which can be requested, I am just going to highlight some of the points I want to talk about.The reason for having a database has changed. It used to be only for persistence, but has now become a means of storing more and more data to be able to do meaningful analytics to help grow the organisation. I have gotten a lot of questions regarding "Why do I use MongoDB, why is it better than SQL?". This talked is aimed at answering that question. To explain that it is the wrong question to ask, since neither is better than the other. Each has different benefits and a different reason for use. With NoSQL (I will specifically talk about document stores) it is easy to make design changes and it's better for rapid development and deployment. It is also a good fit in the world of micro services. Choosing NoSQL vs SQL has more to do with the development process and less with the way of storing the data. With polyglotism it is also not necessary to only have one database. ...
I work at Dariel, contracted out to do development jobs at clients. I am currently working on a Big Data project using MongoDB doing ETL and analytics. I am a MongoDB certified developer and have set up a proper production cluster using MongoDB enterprise. I previously worked on a project involving setting up a SQL data warehouse and doing ETL and analytics. I have done presentations at international conferences about conference papers I wrote for academic purposes.
I'm going to take you on a whirlwind tour of Apache Spark and cluster computing, as well as how to build your own micro big data computing cluster. I'll also show you how bad Scala code turned better can affect run time performance.
I'm a member of Driven Alliance, have spoken at a couple Developer User Groups in Johannesburg and Pretoria, Wits University via the CPD programme, as well as JS in SA in 2013. I've been writing code professionally since 1999, and I'm still no good at it.
Follow the story of Liam, a software developer bogged down by the repetition of tedious build and deployment processes and his journey to enlightenment.
Calvin has worked in the professional services industry for over 18 years and in a number of major organisations, both in South Africa and abroad. He has a background of delivering highly complex solutions across a broad spectrum of businesses, including; financial services, engineering, logistics and government and has undertaken many roles including project management, project reviews, package selection, vendor assessments, solution architecture and implementation. Denzil is an experienced senior Technologist with good Consultative skills. He has 9 years’ experience in the IT industry. Technically he spends 80/90% of his time coding with managerial tasks interspersed. His core skills lie within C# . He has worked across many technologies including, MVC, angular.js, node.js, mongodb, iOS development using Apple’s swift language, WPF, windows and web forms, Web Services, MS SQL, ASP.net, Raspberry Pi etc
One of the oldest and most harmful misconceptions is that programming and testing are activities similar to manufacturing or construction in mature engineering disciplines, performed after the design has been completed. In this talk I will give the audience a fresh look at growing software, inspired by a 1992 article by Jack W. Reeves: “What is design?” I will show how software product development is a creative, collaborative design process involving the creative energy of all the role players.Finally we will take deep look at modern software design practices like Continuous Delivery, and see how it interlinks with disciplines like Lean Startup and UX Design and allow us to iterate fast toward superior solutions.
I'm founder of nReality and a software engineer who divides my time between coaching software development teams and building software products, mostly mobile (both native and hybrid). Most of my experience has been in developing crucial font-end applications in the financial industries: online trading, online banking, insurance and branch banking.I have plenty of SA and international software industry speaking experience, highlights being Agile 2015 Washington DC, and Agile Australia 2016. This is a new talk which I have been working on for months, and I plan to present it at a few events – I think it speaks to one of the biggest misunderstandings in software creation.
13h30 → Movement ← 13h40
Automated testing is becoming more visible as a critical practice for the development of high-quality and high-value software products. There is a lot of guidance around this practice, for example the Test Pyramid popularised as part of Continuous Delivery. A potential problem with this guidance is that the parameters involved in automated testing are changing all the time, for example the tools enabling automated testing are improving all the time. I developed the Dimensions of Tests Model as part of my coaching and training, with the aim of helping development teams have better conversations around why they want to have automated tests, and to help them decide which types of tests they should write.
I work as a Developer Coach at nReality where I help organisations get better at making customer-delighting software products. I also lecture part-time at a post-grad level for the Jo'burg Centre for Software Engineering at Wits
Over the last couple of months I have been leading a team tasked with upgrading an extremely core component of our gaming systems. There are just 2 requirements for our project to be considered a success, seems easy right? Well we need to support near infinite scale (i.e. Google/Facebook load) for hundreds of millions of users, and everything in the system has to happen in real-time. If this system goes down, or runs poorly, the money printer stops. After lots of research and testing we ended up picking Couchbase as our primary data store. In this session I will highlight some of the lessons learnt along the way - from coding to hardware infrastructure - that allows our clusters with billions of JSON documents to meet these lofty requirements.
Work at Derivco, and have presented at 6 SQL Saturday events in the last 2 years (Cape Town, Durban and JHB)
After years of protracted development and a tumultuous release cycle, Angular 2 abruptly crash-landed onto the web. Now that the dust has settled, the thoughts foremost on developers minds is - can it be used? Is Angular 2 backwards compatible? Can I upgrade from my Angular 1.x app, or is it a full rewrite? Do I really have to? This talk will explain the angular 2 upgrade path, from restructuring your angular 1.x code to running side-by-side using the UpgradeAdapter.
A fast paced trip through Xamarin Forms showing how real world native apps can be built with a single UI definition layer.
I'm a freelance developer currently using Xamarin to build cross platform apps. I presented at the first Xamarin DevDays in South Africa in September, and I also co-organise and regularly present at the Gauteng Xamarin user group.
Collective code ownership is challenging. Different members of the team have different ideas of what "well" written software is. Personal styles often creep in making it easy to "identify" who wrote what and introducing key man dependencies.In the past we have come up with various approaches to counter this from code reviews to pair programming. While they all help, what if there was a better way?What if there was a way we could get the best of everyone into all the code?What if while doing this new team members could become almost instantly productive, overall skill level increased by all involved, key man dependencies radically reduced and the overall output and quality increased?Over the last year I've used a technique that has done just that we call it mobbing. Mobbing has allowed us to speed up, scale up and skill up all at the same time.It sounds like a magic, but it isn't it has its set own challenges.Today I would like to share the journey I've had with mobbing with you. By the end of this sessi...
I've been involved in creating software for over two decades. Most of the time I have gotten it wrong, sometimes I've gotten it right. As I get older it feels like I am getting it right more often. I find nothing more fulfilling than being involved in creating something that has a real impact on other people's lives.I'm currently an engineering lead for MYOB in Auckland.I love sharing the insights I have gained from these experiences with others - I do this by speaking at events, writing andfacilitating workshops.
14h25 → Movement ← 14h35
The software industry seems to finally be paying attention to the practice of TDD and its benefits.This is great, but TDD is hard and there is a long road to becoming proficient at it.In this talk I will be sharing some of the things I have learned in my journey over the past 10 years of practicing TDD. Hopefully these insights will prove useful to those just starting out or even a decent way down this road to mastery.
I work at Chillsoft, hailing from Durban, South Africa. I have been involved in professional application development for the past 15 years and I have been practicing TDD for 10 years.I have spent most of the past 8 years assisting customers in successfully getting their failing software projects back on track.
I'm a technical all-rounder with many years of experience working with the various incarnations of Microsoft development tool and have worked extensively with SOL Server throughout my career. I currently work at Microsoft South Africa as a Cloud Data Solution Architect. Most recently I have been working on projects utilizing Azure SQL Database and Data Warehouse, Azure Stream Analytics and Azure HDInsight (Microsoft's Azure distribution of Hadoop). I particularly enjoy the intersection of electronics, math, data and innovation.
Akka.net is a port of Scala Akka. It uses the Actor model to provide a higher level of abstraction for writing concurrent and distributed systems. Getting up to 50 million messages per second on a single machine. Akka Actors have a small memory footprint with about 2.5 million actors per Gig of memory. In this talk we will see how we can use the Akka framework to simply create a concurrent and distributed system. Hopefully looking to show how we can get about 10 million transaction a second (creating text data files) on a simple laptop.
I've been in the IT and Development game since the 1980’s. My first computer was a Sinclair ZX Spectrum with 48K ram. I've developed code in more than 16 different languages and scripts. I have a passion for software development, designing and delivering the right software in time with as little defects as possible. I am a manager and Senior Developer at IQ Business.
In this presentation, Rebecca will cover the new platform recently announced by Google, called Android Things. She will cover an introduction to Android Things, basics of getting started with the platform and how any developer without electronics experience can build IoT apps with Android Things. A few use cases and examples will be shown in this session, along with how you can use the existing android libraries with your next IoT project.
Rebecca is a Senior Android Developer based in Johannesburg, South Africa. She loves working with new technology and has a passion for making great user friendly products. During the day she works the DStv Now app adding new features and supporting old ones. In her spare time, she manages her open source app, Book Dash, which contains free African story books. She speaks at conferences and local meetups mainly about Android. When not coding, she can be found baking and travelling the world. Previous talks : https://riggaroo.co.za/talks/
Burnout has been synonymous with the IT industry since its birth in the 60s and many good people have suffered the consequences. Everything in our industry is geared to pushing us towards burnout, with those resisting it often labeled as lazy or “not pulling their weight.” Even tinkering / playing / learning new technologies in your own time can be detrimental. The objective of this talk is to equip people with a number of practical techniques to prevent burnout and attain that elusive “sustainable pace,” regardless of your boss’ demands. That way we can reduce the human and financial cost of burnout. The content is based on lessons learned in a 4000 person organization where employee performance was demanded and burnout was deemed unacceptable.
Marius is a process improvement pragmatist. He has worked with individuals, teams, and organizations around the world, to find better ways of delivering on their promises by mainly employing Lean and Agile thinking. Marius' career has been a mix of external coach/consultant and full time employee, ranging from developer on a small team to senior executive of a 4000 person organization. This journey has provided him with first hand experience in the rewards of successful change and the deep learning that results from abandoned initiatives. Though qualified as mechanical engineer, software has always been his passion, and helping others find joy in work, his motivation.
15h20 → Movement, Networking, & Snacks ← 15h50
With more and more data being available on the web, wouldn't it be nice to know how to access it? I'll show you just how easy it is to work out how a private API works by sending requests through an HTTP proxy, and how to scrape data directly out of web content when an API doesn't exist.Finally I'll detail the process I went through to discover and exploit a vulnerability in one of the largest [type redacted *] companies in SA, and how to avoid this in your company.* = currently going through the responsible disclosure period. Which will be up soon and they're publishing a fix soon.
I'm a Windows developer, Microsoft MVP, blogger, and hardware hacker from Durban. Currently I'm building awesome media apps at Plex and building an Xbox One game.
AppCapital built a realtime online auction and catalogue system in under 6 months, using the Google Firebase platform, coupled with native iOS and Android applications as well as a web portal built on AngularJS. The use of Firebase greatly improved the user experience, reduced the time to market and facilitated an Agile delivery against other technologies. In this talk we demonstrate and show the code of the application(s), their commonality and their differences. We will also delve into the various design considerations and mindset changes required when using this technology stack to deliver an application, in a short amount of time, that surpasses client expectation and technical performance.
I am currently a Director of a new tech startup called AppCapital, focusing on mobile and web applications. Before that I was Head of Software development at EOH A Microsoft Partner and was with them for over 12 years. I have over 20 years experience building all manners of software, mostly in the enterprise space. I have presented previously at DevConf 2016, 2 Microsoft Tech-ed's, some DevdDays and a few other Microsoft events.
You don’t really need a service bus, do you? There are service bus offerings out there, but they’re too complex and opinionated. Surely it’s easy enough to write your own messaging layer over a queuing technology like RabbitMQ or SQS.It doesn’t make sense to take a dependency on 3rd party software with millions of lines of code when you could have a lot more fun writing the perfect solution all by yourself. In this session, I’ll show you everything you need to know to build the ultimate service bus of your dreams from scratch.After all: how hard could it be?
With every increasing speed of delivery required and a great need for exception devs, the amount of companies that can afford to employ a dev for every platform is quickly draining.Additionally, small projects have enough to decisions to make when trying to build the right app for their customer. Every project would benefit from being able to remove the decision of which platform to deliver to first. If it were possible to deliver a responsive app, while still developing for all platforms, it would be a no-brainer.NativeScript tries to achieve this by allowing developers to write in JS and compile down to truly native mobile apps. NativeScript is to Angular 2, what React Native is to React.
The path of a craftsman is one of mastery. Our industry is only starting to understand the implications of this. We are feeling the pains of losing our best craftsman to other countries or managerial positions, but don't really know what to do about it.For craftsman, this talk will give insight into the mastery model adapted from the Northern European guilds' model of apprenticeship.For leaders, this talk will help you to understand how to support your team members to grow in mastery, become more fulfilled and structure your organisation to nurture mastery as motivation.
I've worked at Business Connexion and a few small companies and I will be running a dev start-up from 1st of January '17. I have a B.IT degree and a M.A. in Organisational Leadership.With a team of friends, I've written and presented my own full financial seminar. I've presented many times at a pre-marriage seminar. I've given a similar talk as the one I'm planning to give at DevConf to the Pretoria Dev User Group (you can ask Sean or Terence who were hosts for feedback). I haven't given a talk at a conference like this before.
16h35 → Movement ← 16h45
A look into the current state of artificial intelligence, machine learning, and the future of computer intelligence. This talk aims to reveal and demonstrate some common concepts that are currently being utilised for advancement in AI. The aim is to provide an overview of the simplicity and uses in machine learning techniques and SDKs useful to get started. The outcome is to encourage developers to learn more about current AI technology and spur tinkering with these concepts.
Rishal is currently fulfilling the role of a Team/Technical Lead at Entelect. He is a senior software engineer designing and building solutions for various national and international blue chip clients. He has a passion for web architecture, mobile development, and design thinking methodologies. Rishal founded Prolific Idea in 2015 where innovation is cultivated through research and technology.
My journey in trying to fly drones through using mobile VR, trying out Oculus Rift and seeing what sticks. I'll talk around how everything communicates together, what options you have if you'd like to do this and general lessons learned.
Hi, I'm Theo. I've been a practicing Software Craftsman for 9 years now, I love Software development, love teaching it and eating an elephant one piece at a time. I've embarked on what I can only call my calling: A code school, The Coding Ground, for individuals that cannot afford it. O yes, I'm also addicted to flying stuff.
RedHat recently released an Extention to allow full Java Language and maven support for visual Studio Code:(https://marketplace.visualstudio.com/items?itemName=redhat.java) In my session we'll demo Power-User features, including debugging on-the-fly, intelliSense for your favorite Java Libraries, and other editor hacks. We’ll also demonstrate Maven integration and discuss writing your own extension.
Rory has worked in many of the blue chip companies in Johannesburg. A Developer since 2001 he is a Oracle Certified Java Programmer and has his Honours BSc. Rory is lucky enough to work full time in R&D at BBD which gives him an unparalleled insight into industry movement. He is a co-organizer of the Jozi-JUG, General Manager of Jug-Africa and is a passionate Programming Evangelist
The growth of the craft beer industry has been a boom stick for a dycotamy of new products, businesses and brewers across South Africa, though, like most businesses, brewers and event's organisers don't utilise the mountains of digital information and feedback available to them. Social media and data analytics tools offer brewers and events the ability to tap directly into the opinions, popularity and conversation of a consumer base that they'd not originally be able to. This intelligence can be most effective in small businesses like brewers who are small enough to adapt a moments notice over larger businesses. I use craft beer and brewers as an example, but, this rules apply to all businesses and corporates in most industries.
Hi there, My name is Brett Magill, I'm an entrepreneur based out of Alberton, South of Johannesburg and Maboneng, Jeppestown. I currently run three business; Milled.co.za; focusing on Millennial centric content in the entertainment, technology and business conversation, Joburgbrew.com a online retail store and beer of the month club, and lastly, Third Planet Media, a digital communications agency, focusing on paid media, data analytics and social media. I've spoken on topics such as eCommerce, startup entrepreneurship, craft beer and the craft beer industry, social media and digital communications and entrepreneurship overall. I've got more energy than I know what do with and more energy than most stages can handle. I am usually able to get a rise our of a crowd and keep the audience engaging and tweeting at the same time. I'd like to speak at DevConf because, yes, it's a great opportunity to expose myself for further opportunities, but I also have the opportunity to add value to my audience out side social m...
We'll have a quick history lesson showing the (lack of) evolution in keyboard designs over the last 150 years. The reason we do this is to understand why we should all care about things like RSI (or at the very least productivity and happiness) and how our tools can affect that.Finally, we'll discuss some modern alternatives to these antiquated designs including building your own keyboard (from kits as well as designing and 3D printing your own).
17h40 → Drinks, snacks, cocktails & networking ← 19h00
08h00 -> Registration <- 09h00
09h00 -> Welcome & Keynote <- 10h00
10h00 -> Movement, Networking, & Snacks <- 10h30
Architects, those that design buildings, study architecture from the past to the present to best understand their craft. As software developers we aren't easily afforded this opportunity, this has always frustrated me, and has thus lead me to always want to share with my fellow craftsmen.
In this talk I lift the veil on a two of my enterprise projects implemented using a message based architecture. I walk through the architecture of the projects highlighting the SOA patterns used. The first architecture focuses on patterns employed for performance and scalability and the second focuses on big data principles for data visualisation using projections and the lambda architecture. This presentation also focuses on the do's and don'ts when designing a scalable message based architecture, as well as potential technology you may consider such as NServiceBus.
Chris Tite is a director and co-founder of Kaleidocode, a software consultancy based in Durban.
He earned his B.Sc. Electronic Engineering through the University of Natal and has 22 years of software development experience, spanning multiple countries, technologies and industries as diverse as banking, farming, health services, call centres and financial services.
Currently Chris can be found either overseeing the architecture at Kaleidocode, mentoring the intern programme which is run through the company twice a year, or giving talks around the country through his inStruct Series, or through the Durban Agile User Group, where he is well known for sharing his love of craft beer with active contributors during his talks.
The World we live in today makes us deal with a lot of information. The solutions we put out there also have the same problem. We collect a lot of data through our applications and we try to give these data back in a non-asphyxiating fashion. Doing this with a single data storage technology will make you feel definite agony even on a medium-scale solution. Furthermore, it's next to impossible to provide a viable solution in a large scale products like Foursquare and Twitter.
This is where polyglot persistence comes into picture. As much as the word "polyglot persistence" sounds extremely fancy to your ears, it's also not that straightforward to adopt in a solution; especially in existing ones. Come and join me in this session to learn about what most matters in this type of architecture to build a viable, maintainable solution. Also, I will be talking about how to make decisions to choose the right data storage technologies based on my personal experiences I gained with the side project I am spending my nights on.By the end of the talk, polyglot persistence should seem less scary and you would at least have a one real world example in your mind on how a solution is being architected where polyglot persistence is the solid foundation.
I am a web guy, Microsoft MVP and software developer specialized mainly on .NET Web technologies. I've worked at the tourism industry to build tourism software services and products for long time and now, I am working at Redgate Software as a Software Developer helping people do database delivery in a joyful way. I am also a very involved member in the community and try my way to expose my knowledge to others through my blog, webcasts, authoring books, giving talks on various topics and so on. I live in lovely and green Cambridge, UK and I am married to a lovely woman.
Speaker Experience: I have been speaking in international conferences and local user group events for last four years. A few examples: I have spoken at That Conference in US, Web European Conference in Milan, Progressive .NET Tutorials in London, /dev/summer in Cambridge and Azure Conf 2014 Virtual Event and many other local events in UK and Turkey. In addition to that, I have some upcomming speaking engagements scheduled like Codemash 2016, in USA.
DevOps is not a job title! This session will be a brief look at the latest buzzwords in IT. We discuss how DevOps fits into the greater scheme of things and what the actual implications are surrounding a solid DevOps focus.
Founder of Team Foundation Consulting, Niel Zeeman is a Technology Specialist and a Visual Studio ALM Ranger. He provides support and services for Application Lifecycle Management and Team Foundation Server in South Africa. Niel has more than a decade and a half of experience in the IT sector. He often hosts ALM community sessions and regularly speaks at developer and ALM focussed events.
Dispelling the myths of the complexity behind native iOS development.
Life-long techie with a fascination with all the new bits, but with a realistic (some would say 'cynical') view. Always pursuing the unicorn. Founded: JSinSA, CodeSkills, Broken Keyboards Software and a few community projects.
When I started out with app development I had zero knowledge on app development, all I had was just design skills. I got over my fear starting on developing an app by testing the waters by building an app based on my experiences. After building a few apps, I got to advance my XAML skills. This later got me to build an award winning app with minimum skill set on building an app.
Griffiths Sibeko, a lifelong learner with a grade zero mentality who draws his design inspiration from nature, human interactions and communication patterns.
Learning how to use a computer at the public library at age 11 where the staff was always sceptical that he would break the equipment, he got to excel at using computers and got his first promotion from owning a library card to owning a library staff card. He later then realised his passion to design and develop solutions to help better ways in which people interact with the world around them.
Griffiths' work range from software design and development, knowledge management, and digital design. Griffiths has skills on various Microsoft technologies and has since published various apps on the Windows store. Griffiths was awarded the MTN Best App Garage Developer 2014 for the Rea Vaya app he designed and developed beginning of January 2014 in a quest to solve some of the issues he encountered when using the service.
After finishing an internship program at the Microsoft AppFactory, Griffiths now works for Zapper which is a successful mobile payment solution company he competed with at the MTN App Awards for the consumer choice award and is based in Cape Town. After hours, apart from working on local relevant solutions, he is furthering his understanding on software develop and to better his skills.
How many times have you wanted to start a new project in Java EE, but struggled to put all the pieces together? Has the Maven archetype syntax left you scratching your head? Everyone else is talking about cool new tools in other languages or frameworks, and you're left thinking, "I wish it were that easy for me." Are rapid prototyping tools a thing of the past?
JBoss Forge is the tooling and technology you have been waiting for! It will blow your mind how easy it makes development. Just say "hold on, let’s prototype that" , "Yes, that is what we need!" We’ll first see the insane productivity this tool offers, and create a full JEE multi-tiered application in under 5 minutes! Restful services made with 2 lines! Swop out our JSF layer for angular in one statement!
Rory has worked in many of the blue chip companies in Johannesburg. A java developer since 2001 he is a Sun Certified Java Programmer and has his Honours BSc. Rory is lucky enough to work full time in R&D at BBD which gives him an unparalleled insight into industry movement. He is a co-organizer of the Jozi JUG and is a passionate Java Evangelist
11h00 -> Movement <- 11h10
APIs are part of our day to day work even if we don't think so. Often developers only think of 'APIs' as service endpoints for certain web services but this is only a single type of API. In this talk we'll discuss what types of APIs there are and how we can write and maintain beautiful APIs. What is a beautiful API and how can you craft one? Join us for the session and find out.
Software developer. Conference Speaker & Coach. Not a rockstar/ninja/pirate/guru. Interested in learning and sharing experiences. I've been a developing software for just over a decade now and in that time learned that software development is more about people than code. Although the code is fun, the people aspect is so much more important.
Oh the horror stories about SQL Server systems that I could tell.... Over the years I've come to realise that most of the worst problems could have been avoided if a few things were more widely known, So in the interests of preserving my sanity (and my weekends) I'm going to talk about a few things that I really, really wish more developers knew.
Learn the importance of good database design, the reasons for SQL's locking behaviours, the use of indexes, the risks of functions, the need for maintenace, and more.
DevOps is the intersection of tools, processes and people. There are tons of tools and a plethora of processes - but what about people? In this session we'll take a step back and look at how to evolve your culture to help speed your DevOps transformation.
Colin Dembovsky is a senior DevOps practitioner for Seattle-based Northwest Cadence. He is currently based in Cape Town, South Africa. After completing an MSc in Computer Science at Rhodes University, he worked as a developer (first in Linux/C++ and moving to .NET/C#) and later systems architect. He left development work to start ALM consulting, and has been a Microsoft ALM MVP since 2011. He is passionate about helping teams embrace DevOps as a journey, without self-destructing on the way.
When he is not working on improving DevOps somewhere around the world, he is playing guitar or mandolin and recording in his home studio, or entertaining his wife and 2 kids.
Colin is a frequent guest speaker and has appeared several times at DevDays SA and TechEd Africa.
Over the past year (and a bit) our team has been working with RabbitMQ on our production lead management system. We adopted it as the base of our unproven "Service Bus" based architecture that we wanted to try out.
This talk will share learnings, take-aways (eaten), technologies adopted and options, lessons learn, pain and tumblebeasts experienced and other near homicidal ideas.
Having loved computer science at school I realised that software development was my calling; I moved on to complete my B.Sc. HONS Computer science at UCT (long before #feesmustfall).
I have been working with C# for last 11 years, moving from front end development focused on Windows forms to back end development services and now slightly begrudgingly towards web (but mainly the services behind the scenes).
Moving from 5 years of working in the "casino world" and the 100% uptime that comes with it, I moved to JAG Method to help revolutionise their IT systems. JAG Method is one of SA's largest online lead generators. We specialise in generating leads for the financial services industry (no we are not those SPAMMER guys!).
Adopting an unproven service bus based design our small team has rewritten the 10,000 line one-file VB service (sexy!) into a multi-service, service bus oriented system with full management portal and monitoring (scary!). We currently process between 4000 and 8000 leads a day which are received, cleaned, run through a rules engine and then send on to the insurers for conversion.
Design thinking is a methodology used by designers to create innovative and effective solutions. Most scientific methodologies of working take all the known factors into account when deriving a solution, whereas, design thinking analyses both the known and the unknown. It challenges us to delve deeper into the problem and read between the lines before forming a solution. This talk aims to provide insight into activities and practices that assist developers in building effective, robust, and usable software by utilising the design thinking methodology.
The outcome of this talk is to highlight the benefits for the developer, team, client, and project in being a design thinker. It is to also convey some practices that the audience can immediately apply in their working lives to better themselves and their projects.
Rishal is currently fulfilling the role of a team lead at Entelect. He is a senior software engineer designing and building solutions for various national and international blue chip clients. Rishal is also the founder of Prolific Idea where innovation in software is cultivated through technology and research. He has a passion for web and enterprise architecture, mobile development, and user experience design. Rishal is an avid speaker at various conferences and user groups such as Tech4Africa, JSinSA, Java SA, RubyFuZA, Jozi JUG, Jozi Android UG, and the Gauteng Dev UG.
This session dives into discussion and code, depicting the two often conflicting approaches to software development – Pragmatic vs Purist. There are pros and cons to both which can filter through all levels of development e.g. choosing the perfect persistence store against choosing what that would work now or choosing a perfect solution vs choosing the one that full fills the requirements now. The end result, however, still needs to be a maintainable and simple solution.
Solution architect, software engineer and aggressive agilest. Mark has a passion for well-constructed clean code and loves building pretty much anything - mobile, web and complex enterprise line of business applications. It must just work and bring value.
Senior software developer with a passion for web development and open source technologies. Adriaan is driven to build the best simple solution using the technologies, platforms and tools that fit the requirement, and unit testing, always, fits the requirement.
11h40 -> Movement <- 11h50
With most new technologies it looks very simple when you have done a little 'Hello World' tutorial. However, when you start implementing it in your enterprise and it needs to work at scale then simple isn't that simple anymore and all kinds of problems start showing their ugly faces. There isn't any difference when it comes to NoSQL. With more solutions starting to contain NoSQL components more developers will need to come to terms with what to expect in the real world. Scaling isn't the only problem you will face. In this session we will look at the different types of NoSQL databases and unpack a few of the important issues you need to address to ensure you don't discover these ugly face problems late on a Saturday night when production goes down.
The session will cover all major NoSQL database types and look at the two or three main issues of each to be aware of and how to solve them.
I am a technhical lead and part-time trainer at BBD. I'm currently drifting around in the banking space. I have been a developer for the last 15 years and hold an MEng from Wits. When I'm not working or trying my hand at something new in the technology world I like to run. I'm currently training for my first Comrades marathon this year. I am part of the Jozi-Jug committee and presented 2 talks at the JUG last year, one on Swagger and the other one on the value of certifications. I also present the Java expert level certification training at BBD.
Becoming the next Uber is only possible when bringing your ideas faster to your end users. Some aspects of DevOps are perfect for that as it only works if Ops and Dev work closely together. But what does this mean for you as a developers? Delivering code faster with the high chance of failing faster?
In my opinion we need to look at Key Technical Metrics such as Memory Usage per User or Request, # of SQLs, # of Service Calls, Transferred Bytes, ... - these are metrics you need to track starting at your workstation all the way through CI into Ops – and don’t forget the Business: How often is the new feature really used? What does it cost to run it? Let these metrics act as Quality Gateways and stop builds early before they Crash your System: faster than ever.
In this session we look at how companies like Facebook, CreditOne and Co apply metric-driven DevOps. We look at use cases that crashed rapid deployments, identify metrics that identify the reason of the crash and learn how to use these metrics to steer your pipeline to build better code, deploy faster, without failing faster!
Andreas Grabner is a performance engineer who has been working in this field for the past fifteen years. Andreas helps organizations identify the real problems in their applications and then uses this knowledge to teach others how to avoid the problems by sharing engineering best practices. He was a developer, tester, and evangelist for Segue Software, builders of the Silk Testing product line. Later Andreas joined Dynatrace where, for the past eight years, he has helped organizations worldwide test applications, better understand the technologies behind their apps, and improve the entire development process. He shares his expertise on blog.dynatrace.com Conferences I spoke at: JavaOne 2015, Java South Africa 2015, Velocity, STPCon, StarWest, Agile Testing Days, ... Some of the meetups I spoke at last year: Java New York, Web Perf Chicago, .NET Devs in Redmond, DevOps Boston, DevOps Berlin, Web Perf Amsterdam, ...
Introduction to the Gradle build system with historic overview, examples / comparisons and case-study.
Corneil is a Software Architect and Developer with over 30 years experience in all manner of software development technologies on hardware from embedded systems to Mainframes and just about everyting in between. He has written software using Assembler, Pascal, C, C++, Java and a few more languages. He has a special interest in developer productivity using a variety of patterns and tools to improve the feedback cycle. Corneil presented at the inaugural Java South Africa Conference in Cape Town during November 2015 and at various JUGSA and Developer User Group meetings over the past few years.
When working in a team environment, code-reviews are an essential step in the process of producing code. Reviewing code decreases “silos” by increasing mutual understanding, exposes bugs/pitfalls and allows you to maintain consistency and quality. I’ll be sharing some of my experiences with the Zando team, how we work and the tools we use.
I'm Danny - Lead Developer @ zando.co.za
Passionate about quality code, mentoring, code-reviews and using great tools. Coding since using Netscape Navigator wasn't a laughable offence. A transplanted (but unrepentant) Vaalie
This session will take you though a journey of Azure machine learning and how to use it. It will explain how the platform works and how it can be leveraged to build great predictive analytic solutions.
Get an introduction ot machine learning, and understand how to build and execute an experiement.
12h20 -> Movement & Lunch <- 13h10
Testing is important, but I am lazy. So why spending copious time thinking about test cases when your computer can do this for you in a fraction of the time?
In this talk, I will show you how to use an awesome approach called property-based testing.
It allows you to automatically generate test values based on the properties of the things you want to test, from primitive types, all the way to arbitrary data structures.
Generating copious amount of random data can certainly break things but sometimes you want to find out which particular test case causes your system to fail.
This ability to hone on the particular bug (it is called shrinking) is extremely useful and almost makes property-based testing very hard to distinguish from magic.
I will use Scala, a typed functional programming language as a driver for demonstration, together with the ScalaTest and ScalaCheck frameworks.
The principles of properties-based testing have been applied successfully to many other languages, from Haskell to Erlang and I will briefly touch on those as well.
I am a self-employed consultant doing Software Engineering (mostly in Scala) and DevOps (mostly with Ansible). I am from Martinique and I've been in South Africa for over 3 years.
I currently work in the TV broadcast industry building software solutions to help media companies produce news and sport content.In a previous life I was doing a lot of work on distributed systems and configuration management at HP Labs. I've started the Scala and Ansible Meetups in Johannesburg where I try whenever possible to hammer in the benefits of functional programming and automation while feeding people some pizzas.
I've given talks at Meetups in Johanesburg and at Tech4Africa on topics such as Scala, DevOps and Continuous Delivery.
Building extraordinary user experience requires extraordinary capabilities. Among these capabilities, persistence of data is one of the most important one. We need a database that is fast, scalable and supported by world-class infrastructure, has a wide-variety of APIs, allows for clean code and needs less coding.
FireBase, Google's NoSQL cloud database, provides just that. Auto-scale to millions of users; real-time user experience; easy-to-use APIs. It allows developers to build extraordinary mobile and web apps. With FireBase, you can build and build fast for any device. FireBase also supports REST API natively. This session will be focussed on providing a practical overview of this awesome database with coding examples.
Badi is a developer, architect and agile practitioner with over 14 years of professional experience in a wide range of software development roles. He excels as a solo developer, team member, team leader, or manager of multiple distributed teams.
Badi started his career at Yahoo! in 2003. He has since evolved as a thought leader in the field of software architecture, software design and development for the web, the desktop and mobile platforms. Badi has spoken at, and contributed to, numerous internal training events and International conferences like the Free and Open Source Software conference (India), the Unicode Conference (USA) etc.
He is currently a leading technologist at IQ Business, South Africa. He works closely with clients to define ideas and deliver products.
In this session I will discuss the importance of analytics in the application life cycle and how to use it to drive change that improves the end users' experience of applications. This includes how to define meaningful metrics to measure so that the data being used to inform decisions is accurate and reflects the actual usage of the system.
I will be showing attendees Google Tag Manager(GTM) with Google Analytics(GA), as an example of tag managers and why they should be using them instead of implementing analytics tags straight into their applications. The techniques for that I'll discuss can be used for other tag managers, like Omniture, but I chose GTM since it's free to use so attendees can start playing around with it straight away.
My name is Veroon Budhai, I'm a Senior Software Engineer with Entelect Software that specialises in front end development. I have a strong passion for UX Design and Analysis and try to bring my experience with it to the development process so that the applications we build are focused more around the end user than just the requirements.
Developing an app for the fragmented Android ecosystem can be a difficult task. Problems such as small amounts of RAM or low performance GPUs on some devices makes the job of an Android developer a difficult one. In this talk, we will discuss various tools (and how to use them) to ensure your app isn’t slow or dropping frames. Enabling your app to run smoothly across a larger set of devices.
Rebecca Franks is an Android Developer working at DStv. She has over 3 years experience in developing Android apps. In her spare time she blogs over at http://riggaroo.co.za and has released several android apps. She graduated cum laude at the University of Johannesburg with a BSc (Hons) degree in Information Technology.
With the advancement of Software Development, developers' capability to test their own code has been greatly improved. IDEs and automated testing tools are enabling developers to easily create unit, integration, regression and any other tests as required. The widespread availability and use of automated build tools that aid testing, and practices like TDD, do we still need human testers in a software development team? Do testers have a role in this ever improving environment of automated testing? What skills and value do they bring? What is the mindset that keeps a tester relevant and valuable in a software development team?
Originally from Zimbabwe, with working experience in a few African countries, Oz currently works as a software tester in a mature development team. He believes thinking is his strongest skill in his bag of many and varied tricks. With over 15 years of experience, mainly in financial systems, he is focused on solving the right problems, the right way. A co-organiser of the Joburg Software Testers meetup, Oz loves to interact, learn and grow with the community. He enjoys a good coffee, especially with developers and other non testers alike. He has spoken at Agile Africa 2015, and co-facilitated a workshop at Lets Test Conference South Africa.
Ernst is currently leading the “Digital Team” at Allan Gray. His aims are creating a highly productive team that builds stable, reliable software that can be deployed with zero downtime or effort. The team is technology agnostic and delivers business value using the most appropriate tools and tech for the job at hand.
He also enjoys good coffee, great whiskey, trail running, skateboarding and traveling.
13h40 -> Movement <- 13h50
I'm Joshua, and I used to be addicted to mocks. I fell in love with TDD many years ago. In the past, every class I wrote had its own unit test and was perfectly isolated from its collaborators using mocks. More recently, I've changed my specification test philosophy quite drastically, to the point where I now no longer use mocks or other test doubles unless I absolutely have to. I believe my specification tests are now much more valuable, understandable, changeable, and also smaller and quicker to write. My production code is much easier to refactor, and I can also start releasing my code earlier. Let me tell you my story of rehabilitation and liberation from my addiction to mocks and how I came to see the light.
Joshua Lewis has an MEng from Wits and has worked in the software development industry for a decade – gosh that makes him sound old! His experience is mostly as a software developer, though he now works as a (software) Developer Coach at DStv Digital Media. He also lectures post-grads and CPD students part-time at Wits.
Graphs are great for discovering connections between things, but what if you want to search as well as do recommendations or exploration? It's time for polyglot persistence: store your connections in the graph, the indexed documents in Elasticsearch, images in some random key-value store, logs in Splunk and maybe some tabular data in your SQL Database.
It's not rocket science, but I would like to share the way we designed our data stores to connect the graph and other stores elegantly. I'll start with a super-quick overview of Neo4j and Elasticsearch and then dive straight into connecting the two. I'll follow that up with why you might want to do this, and what kinds of applications could you build with it.
Location: Pietermaritzburg (yeah)
I love software development, doing it, reading about it. I'm tech/ops director at Chillisoft, and with the growth of our software dev company I seem to now do more telling other people how to software develop, but I'm also more invested in maximising the effectiveness of software developers - both from a tools and personal effectiveness point of view.
How many people are using your website right now? Which features are their favourite? Are they experiencing errors? Getting stuck? How are your servers performing? Is your code easy to work with? Are you making money? Dashboards are a way to have the answers to these questions all around you, all the time.
Join Rouan as he shows you why building dashboards will change the way you look at software. He’ll share concrete examples of the kinds of dashboards you could build and will show you the tools with which you can build them. He’ll introduce you to principles that will guide you as you make decisions about what you dashboard, how you treat data and how you use data to make decisions.
We all have a favourite actor. For some of us it's a heavy hitter like Robert Downey Jr, for others: the more obscure the actor the better. Regardless of how good the actor is though, he or she can only act out one scene at a time. The same is true for systems that implement the Actor Model - a conceptual model aimed at reducing the complexity associated with concurrency. By treating a piece of computation as an "actor" we can direct multiple actors into a single, fluid scene that describes complex business scenarios in a simple fashion all while make sure each actor only has to do one thing at a time. Join William as he sets the scene for explaining the Actor Model, and tries to fit as many bad actor puns into one talk as he can.
Professional geek. Amateur beer enthusiast. Works for Particular on amazing products like NServiceBus.
In 1961, in his chapter about testing in his book "Computer Programming Fundamentals", Jerry Weinberg wrote - "It is, of course, difficult to have the machine check how well the program matches the intent of the programmer without giving a great deal of information about that intent. If we had some simple way of presenting that kind of information to the machine for checking, we might just as well have the machine do the coding. Let us not forget that complex logical operations occur through a combination of simple instructions executed by the computer and not by the computer logically deducing or inferring what is desired."
Are you testing if you have a set of automated tests that you consistently run? Do you need a human doing testing? Why bother testing at all? In this session, I would like to discuss and debate what 'Testing' means to people.
Testing is not just a career to me, it is a massive part of who I am. I have been blessed to come across people who have inspired me and taught me and I believe I have been that person to others over the years. The learning never stops though, and I continue to practice the craft and apply learnings from other disciplines back into software testing. Building the craft and community of testing in South Africa is also a passion of mine. To this end, I am the co-organiser of LetÕs Test South Africa and the founder and co-organiser of the Joburg Software Testers Meetup. I am also one of the founding members of ISST - the International Society for Software Testing and a member of AST (Association for Software Testing).
I enjoy speaking at conferences and have spoken at LetÕs Test in Sweden, Copenhagen Context and CAST in North America and served as the co-program chair for CAST 2013.
As Director and Consultant at House of Test South Africa, I am hoping to continue working with awesome people, partnering with friends whom I respect and working my butt off to promote $hit HoT testing.
Frontend tech: Keeping up with the Jones" covers the importance of challenging yourself to keep learning and exploring new tech. We as an industry we need to push the envelope of tech, experimenting with new projects. We take a look at how to create value for both startup and enterprise developers, allowing us to give actionable information when consulted by our businesses or clients. Then we take a look at how to practice some of these ideas and lifehack our learnings.
I am a full stack developer and a Senior Software Engineer at Entelect.
Professionally, I've worked in risk management and fraud prevention systems, the health sector, I've lectured web design and been a web freelancer.
Personally, I am a self proclaimed UI/UX enthuasist and keep a keen eye on cyber security.
In the analog world, I am involved in a couple of charities related child protection and education.
14h20 -> Movement, Networking, & Snacks <- 14h50
I have heard so many developers say "TDD is great in concept, but I can't use it in my current project. I'll wait for my next project to introduce it..." and they never do. Let's be honest TDD is not easy, especially when you have a large legacy code base to deal with, and if you are waiting for the perfect situation to start it may never come around. You need to make it happen. This talk will give you practical handles on how to introduce TDD as one of your development practices in your existing brownfields (legacy) project. When do we start? Well, there is no better time than the present!
I have been involved in professional application development for the past 15 years and I have been practicing TDD for 9 years. I have spent most of the past 7 years assisting customers in successfully getting their failing software projects back on track.
People are using our web applications on mobile devices, so internet connectivity is no longer always guaranteed. We need to build applications that work offline. Enter PouchDB, a database that works in the browser and CouchDB, a NoSql database that replicates. Combine both of these and you can build responsive applications that work whether the user is online or offline. In this talk I will introduce both of these great database technologies, show you how to get started with CouchDB and PouchDB, and demo many ways you can combine them for an amazing web experience for your users.
Nowadays, infrastructure automation is a necessity to achieve repeatability of deployment processes across multiple servers with minimal/zero human intervention. Yet, mere automation has proven to be insufficient when trying to keep up with ever growing business requirements.
Tools such as Puppet, Chef and Ansible have consequently emerged to ensure versatility and consistency of automated infrastructure. These tools provide ways to treat server provisioning and configuration management as we would treat software source code; thus making it possible to apply software development practices.
Unfortunately, just like with the rest of our software code, infrastructure code can grow difficult to maintain when good practices are not followed thoroughly. And that is even a bigger problem when multiple teams are involved.
In this session, I will share my experience of some Chef anti-patterns. I will then discuss the approaches that can be taken to address them. More specifically, I will show how software principles such as DRY, domain modelling and versioning can make a difference for teams who need to collaborate on automated infrastructure.
Charlene is a developer who is currently working at ThoughtWorks. Before that, she lectured programming to Computer Science students. As a consultant, she helps deliver software solutions across different business domains.
She enjoys being a polyglot developer and does not mind wearing the DevOps hat to simplify the way to production.
Her past talks include a keynote at Rubyfuza and a presentation on mobile health services at Grace Hopper Celebration of Women conference in the United States.
We're stuck in limbo with angularjs 1.x, knowing that v2 is looming large on the horizon - with significant changes, but no clear upgrade path. In this session we'll focus on some of the major design flaws of angular 1, the reasons behind the change, and work through how to best future-proof your code. Even if angular 2 doesn't become a 'thing', we can make our angular 1 code the best it could be.
Major changes between angular 1 and angular 2
How to avoid the biggest angular 1 performance pitfalls
How to structure and partition angular applications for development at scale (both amount of functionality and team size).
How to start preparing existing angular applications for v2
Join us to discuss how to use Visual Studio Team Services to manage your agile team(s) and find out how we are using the tooling. See what’s coming and share your mind for any future work.
Willy-Peter Schaub is a program manager with the Visual Studio ALM Rangers at the Microsoft Canada Excellence Center (www.microsoft.com/en-ca/sites/vancouver-development-center).
Since the mid-’80s, he has been striving for simplicity and maintainability in software engineering. His blog is at aka.ms/willyblog and you can follow him on Twitter at twitter.com/wpschaub.
Johann is an extremely passionate engineer and long time techie. He has a passion for continued learning and playing and due to this he holds a wide scope of language / framework / service knowledge and always trying to find the tools that fit. Johann has a deep understanding of systems ranging from embedded to large data processing services; and is also experienced in developing successful services from front to back. He is currently working on a ton of cool products.
He is a regular on the local tech scene in Cape Town and attends every conference possible. He also helps to run the local NodeJS chapter (meetup.com/nodecpt/) and helps other groups organize and source speakers.
Johann is experienced in building and team leading large scale systems with past work examples such as a Data Aggregation and Reporting service being used by a few US based financial companies. Currently, his main focus is building and leading development for a real time betting site, where large amounts of data needs to be processed and shown in a way that makes sense to the user.
He also builds, maintains and leads one of the four national microchip databases for Southern-Africa that is currently working with a few local organisations to find pets that have gone missing and get them home.
15h20 -> Movement <- 15h30
Everybody seems to be in agreement that maintenance is the most expensive phase of software development and that we as developers read more code than we write.
There has also been better adoption of agile methodologies and continuous delivery which are essentially putting parts of your code live (and therefore in maintenance) much earlier.
What all this means is that there is a very clear need for focused refactoring to make live code more readable and hence more maintainable. Of course, this has to be balanced against the cost implication - rewriting all bad code you come across is not sustainable either.
In this session we will look at how we can use forensic techniques to identify bad design and the code most in need of refactoring in your projects.
We will use version control data along with complexity measures to identify hotspots in your code that is not only complex, but that changes often. By doing this we can focus our refactoring on the code that will slow us down most often.
The techniques used is tool and language independent, so will work on pretty much any project you may be maintaining.
I'm a software developer who develops mobile apps for Discovery by day and tries to find ridiculously interesting projects to tinker with by night.
My decade of work experience includes setting up an SMS service for USAID in Afghanistan, consulting on a mobile CRM system in Costa Rica and helping out with systems for an SMS campaign during presidential elections in Zambia.
However, what I am really passionate about is producing quality code. I'm always looking for better ways to refactor legacy code.
Writing unit tests for your C# or Java code these days is a pretty well known and well covered topic. What about your database code? There are still many companies out there who have large SQL Server databases with many lines of code that are untested. If you thought it wasn't possible to write tests for your database code, come along to my presentation and let me show you how to get started.
My name is Andrew Russell. I am currently working as a Team Leader at Chillisoft a company based in Hillcrest, KZN. I have about 20 years of commercial programming experience and have worked in a number of sectors including commercial and investment banking, transport, insurance and government. I have worked on many greenfields and brownfields projects over the years and worked with a wide range of developers.
At Chillisoft I am responsible for driving our deliberate practice (as a company we spend about 5-6 hours a week working on sharpening our skills outside of our production work) and I am also involved in running some of our tSQLt training courses.
Git is an amazingly useful and powerful tool. Continuous Integration and (Continuous deployments) are incredibly valuable practices.
But are they compatible?
How do Git's major advantages such as cheap branching fly in the face of continuous integration? Is there a way to use the popular Git-Flow process and still have true CI?
I would like to explore my journey into using Git and CI thoughout my career, and I'll cover the various lessons learnt and viewpoints held and how they have changed. I'm not promising to have a solution to the problems posed, but I would like to stir up some debate and get people to think about their processes rather than just following practices that seem to be buzzwords.
My name is Duane McKibbin. I have been a software developer for 10 years working in various fields.
I started in Machine to machine communications (IOT before it was a buzzword ;) ) at Siemens, writing embedded j2me software as well as the corresponding j2ee server code.
I then worked at a startup developing an electrical smart grid system aimed at preventing load shedding. My main responsibility was a handheld device used for field installations (.net compact framework), but I helped out on the Java server side as well. I dipped my toes into some embedded C++ but nothing much to speak of.
I now work at Entelect Software as a Team Lead. I am currently based at Ashburton Investments but previously worked on various projects in various industries including medical aid, debt consolodation and imports.
I have previously presented internal training forums within Entelect as well as at our internal DevDay conference. This would be my first foray into speaking in the wider community.
On a personal note, I am married and have a 1 year old daughter who keeps me very busy when I'm not in the office.
I plan to give a high level overview of React.Js to the audience, so that they will feel comfortable with the general concepts and know how to get started. Many people would have heard of React.Js and will want to know what all the fuss is about. This talk will give a brief outline of the history of React.Js, why it is incredibly useful and the problems it solves. I will give brief code examples (showing the outline of a React.Js component), but will not go in-depth. I will however provide links to many websites that give in-depth tutorials and will also provide a boilerplate Github repository for interested listeners to pursue further.
I am a full stack developer currently working at Red Comet Labs. I have worked here for a few months and previously worked as a full stack developer at Takealot.com.
Developers often feel de-motivated, disempowered and under-utilized. Especially if working in big teams or in big corporations.
I want to help developers identify where these feelings come from and give them ideas on how to adjust their behaviour and mind-set. It’s not easy to change other people or organisations, but it is possible to change your own behaviour and attitude.
Very often when we change ourselves, others respond and follow.
However I believe that the developers are not aware of how significant an impact they personally can have on the success of a team and the software created. I want to share my pragmatic opinions, ideas and tools that technical people can use to improve their job satisfaction.
However I believe that the developers and testers are not aware of how significant an impact they personally can have on the success of a team and the software created. There are so many ways that they can influence and lead even as a junior or new member of a team.
My software engineering background with +-7 years as a C++ developer gave me a practical understanding of the intricacies that are involved in teams of smart creative people creating successful software.
My first job at Nokia in Cambridge UK in the 90’s gave me a benchmark for what teams can achieve. I was disappointed and despondent when coming back to SA. Spending a few years in our corporates, I felt very dis-empowered and frustrated as a developer. I started learning “tricks” and an attitude that enabled me to develop successful products despite the constraints of the organisation and team I was working in. Since then I have worked in inspirationally successful teams and dysfunctional teams.
I have been always been fascinated about understanding what makes the difference between happy and dysfunctional teams. I have had to grow and learn hard lessons on how my mind-set and attitude affected the team and therefore the success of the software created. Running my own custom software development company and co-founding a start-up gave me the opportunity to create and grown many teams myself. I also got to play all the different roles in a development team – tester, developer, product owner, scrum master, project manager and even the support consultant on my own product.
I now have lots of opinions, ideas, practices and tools. I use these extensively in the teams I am now leading.
I fill my “spare” time with mentoring young entrepreneurs, testers and developers Presentation: “Agile practices for tech start-ups” - 2015 Scrum gathering
Managing multiple servers and their configuration is time consuming and error prone, and that’s if you only have a handful of them. What do you do if you have hundreds of servers… Infrastructure as Code! We’ll be taking a whirlwind tour of some of the more popular tools out there, and discussing how we manage our Continuous Integration build servers.
I started out as a developer 15 years ago when I became fascinated with automation and how it could solve many of the problems I was experiencing. I currently lead the DevOps team at Derivco and co-host the Durban DevOps Meetup group. I am passionate about collaboration and automation, and spend a large amount of time finding ways to improve our software delivery pipeline and bringing people together to work on complex problems.
When I’m not at work I enjoy spending time with my family and taking time out to run, cycle or workout at the gym.
16h00 -> Movement <- 16h10
Most developers have an idea of what refactoring is, but can quickly paint themselves into a corner by not sticking to a safety first rule. Statically typed languages typically have great refactoring support, yet developers tend to rather rely on a slower refactor-compile-fix-errors cycle than a safely-refactor cycle during development. This session will address the true meaning of refactoring, and how using small, safe refactoring steps can actually speed up development, reduce stress, help you live longer, and swear less.
Janco has spent close on two decades learning how NOT to build software. He likes to understand the driving principles behind the way developers think, work, and design code. You can usually find him working as part of a team, supporting people on their software craftsmanship journey.
Some of the benefits of switching from a row representation of data into columns is that it enables one with an ability to pivot a given dataset which can lead a reduction of the size of your dataset. For instance, if you have 5 rows with each indicating the number of apples bought by Themba over 5 months – you can use SQL Server to rotate the data around in a such a way that only one row is displayed with all Themba’s apple-buying history. Therefore, this proposed session utilises SQL Server Management Studio client, SQL Server Statistics and Actual Execution Plans to illustrate row-to-column representation of data using SQL Server built-in methods such as CURSOR, PIVOT, XML and Dynamic Transact SQL.
Sifiso is a Johannesburg based certified Microsoft professional within a wide range of competencies such as SQL Server, Business Intelligence and Data Warehousing, and Visual Studio Application Lifecycle Management. He is the member of the Johannesburg SQL User Group and also hold a Master’s Degree in MCom IT Management from the University of Johannesburg. He blogs at selectsifiso.net and has published several articles at SQLShack.com and SQLServerCentral.com. He currently works for Clientele as Data Warehouse Development Supervisor
Take your CI server from good to great! I'll share some examples of graduating your CI from tester, merger, deployer into a productive member of the team.
CI servers can:
* Run static analysis tools to guide refactorings and enforce team standards
* Upgrade dependencies (local and external) and run tests, catching breaking changes early
* Check for security vulnerabilities, in the app and dependencies (CVE's)
* Build with stricter configurations to catch other issues
* Run any other repeatable process that would be mundane for good developers, freeing them to focus on the 10x stuff
I'm a regular open sourcerer and I've been building internet-based systems for 15+ years. I actively work across the entire stack, from the darkest corners of cloud infrastructure to the silver linings where users live.
I'm a regular speaker at local meetups and regional conferences like Rubyfuza & JSinSA. I've also presented a lightning talk at Ruby Kaigi in Japan.
You may have heard the term **microservice**, but what does it actually imply? What are the benefits and risks of a **microservice** style architecture? How can you manage the risks and successfully use microservices to bring you more flexibility, resilience, and scalability?
In this talk, we will answer these questions and more while building a real world **microservice**.
10 people delivering more than a department of 150. How is that possible?
In his work as a coach the speaker has seen how small nimble software teams outperform large enterprise teams by a factor of 10 to 1 or more. This talk explores the causes this phenomenon and how to effectively scale software development.
Scaling software development is usually driven by a need for teams to deliver more features with increasing complexity faster. Typically companies address this need by increasing team size without considering others factors that affect a team’s ability to deliver.
In this talk the speaker will explore characteristics that enables teams to scale their software development capacity without growing headcount. This talk will use model and simulations of value streams to visualise explore factors such as batch sizes, process overheard, feature selection and scoping, defect management, team size, team organisation, capacity management, and task switching.
The speaker will look at how modern software development practices that has an effect on these factors. (such as TDD, Continuous Integration and Delivery, Story Mapping, Pair and Mob programming)
Martin Cronje is a software developer who spends most of his time coaching software teams to help them master their craft. Over his 17 year career he has contributed to projects ranging from mobile, data analytics to high volume mission-critical systems in government and financial sectors. The most notable projects directly affected the South African economy and democracy.
Currently, Martin splits his time between coaching teams, advising companies and building products. Martin is deeply passionate about building beautiful well-crafted software and hope to continue creating for as long as possible.
Martin Cronjé has been speaking in the community since 2009 and has been fortunate to deliver keynotes and facilitate workshops at conferences in Africa and North America including Agile2015, Agile Africa (2013, 2014), Scrum Gathering (2014), Microsoft TechEd (2010, 2011, 2013), JSinSA (2013, 2014). RubyFuza (2015), CodeLab (2013) and Tech4Africa (2013).
Great conferences like this one would not be possible without great companies passionate about supporting the local software development community.
We would like to thank the following companies for helping make DevConf possible.
Would you like your organization associated with DevConf? DevConf offers a variety of sponsorship opportunites to be able to connect with the best software developers in South Africa.
Please download our 2018 Sponsor Proposal for information.