Maritime DevCon 2019 Recap
Maritime DevCon 2019 was another amazing day packed full of an amazing bunch of sessions, lots of moments of laughter and tons of opportunities for our community to get to know each other. Find all the slide decks from the sessions below.
Golang is one of the fastest growing languages. It’s called the new super glue of systems.
In this talk, Sandy Walsh will go over some of the core language constructs as well as some of the advanced topics and why it’s so well suited for complex back-end architectures.
Monitor All the Things!
Is your production service online and responding? Is it behaving as designed? Is it performant? The answers to those questions are critical early in the design of a successful service but can be added to any existing solution in as quickly as a few minutes.
In this talk, Matt VanTassel will walk through using proven open source technologies such as docker, telegraf, influxdb and grafana to spin up a rock solid monitoring solution that can scale as your business needs grow.
Finding Your Path
It’s not easy walking into a world dominated by opinion. Which language is best? Which technology is that of the future? Tabs or spaces? Navigating a career path is no trivial task. Do you need to learn skills on the side to land the job you think you want? Do you just pick a company that pays well and hope you like the work? What if you’re mid career and decide you would like to try something else. Is it too late?
Listen in as Andrew Connors, Danielle Leighton, Matt VanTassel, and James Stewart discuss their experiences navigating their own career paths.
This session will be a “fly-on-the-wall” panel in which you get to listen in on a candid conversation between four software professionals.
Andrew, Matt, Danielle, James
It’s time…Serverless Computing and DevOps for Mere Mortals
Almost like a nuclear arms race, the cloud vendors are making it easier than ever to build your application on their platform. At the heart of these serverless compute offerings are FunctionsasaService (FaaS), where you can implement your application code in a very abstracted way. There is potential for shorting the development cycle, achieve the promise of scale and truly pay for ‘what you use’ in this new serverless world. You still need to look ‘under the hood’ and there are a few rough edges, but it is great time to consider building serverless cloudbased applications. Since this new serverless code still needs to be built, tested and deployed, it is also a good time to revisit your CI/CD pipeline.
In this session, Darryl Dutton will share some experiences in building a Microsoft Azure based FaaS using code examples, then show how to build a CI/CD pipeline (with resource provisioning) for a solid DevOps foundation. After this session, as a developer or architect should understand if it is time to take on this serverless world.
Building Scalable Web Apps in Google Firebase and Polymer Web Components
Recently there has been a move by the major browser vendors to simplify the development of software through the new Web Components standard. Polymer, a free open-source library by Google makes use of this new standard to make web software reusable (see YouTube, newly built using Polymer). Firebase, a collection of cloud services, combined with Polymer, make for a compelling development platform for web and mobile apps and the new push for mobile web apps. In this talk we will cover Polymer, Firebase, and the major services of Google Functions, Hosting, RealTime and Firestore Databases. Examples will be shown of a production app in progress.
Short on time? Accelerate Your Data Science with GPUs
Data scientists are facing a constant obstacle in their daily workflow. This obstacle is the massive amount of data they need to process every single day. Billions of data points are gathered, stored and need to be processed in a reasonable amount of time. Most of the data scientist’s time is spent visualizing, cleaning, analyzing, preparing the data and often also train a machine (or deep) learning model. These tasks are very expensive and time consuming when the process must be repeated multiple times. Many technologies and tools such as Hadoop, Spark, etc. have been developed to address this problem. But until recently, most of that processing was done on the CPU, only the training part was taking advantage of the GPU acceleration. Today, with some fresh released tools made by brilliant minds around the world, data scientists, machine learning developers and data analysts are now able to conduct most of their data wrangling processes directly on the GPUs. Those tools drastically decreased the amount of time spent on those time consuming tasks.
During our session, Axel-Christian Guéi will present how these tools can improve your data science
Mesh Isn’t Just For the Club (Anymore)
A mesh is defined as an “interlaced structure” and this exactly describes what we are building when we create distributed systems. The pieces talk to and depend on one another. Managing, monitoring, and controlling the ether between our services is a daunting task and one that can lead to failure scenarios if mismanaged. In this talk, Josh Comer will explore how adding a Service Mesh to our systems can not only make them more resilient but flexible and transparent. With first hand stories of distributed failure, Josh will discuss how a mesh could have avoided these scenarios. Hopefully, at the end you will agree that if you could only take one technology to a distributed desert island, it would be a Service Mesh.
Analysis Paralysis and Effective Decision Making
As architects, developers, and technical decision makers, we are constantly faced with decisions; these choices are the driving force of the design and implementation of applications and infrastructures. These decisions have a lasting effect on the overall solution. Whether it is how we implement a specific feature, approach the resolution of a defect, or the more strategic decisions like what languages, frameworks, platforms, or services should be leveraged, these decisions can be daunting and they can lead to the inability to commit to a solution.
Having a single arbitrator leads to decisions made with limited information and facts, while approaching decisions with a democratic process leads to conflict and can cause difficulties reaching a consensus. The fear of making the wrong choice stifles a team’s ability to innovate and improve. How do teams approach problems and commit to a resolution? How, as a leader, do you ensure that your team avoids the pitfall of “analysis paralysis”?
The Good Code
Have you ever worked on a project with code that was an unmaintainable pile of garbage? How did the code get like that? Without the proper attention to code quality, over time, all projects descend into disorder.
Everyone agrees that good code is important but many developers do not really know how to create good code. Chris Dail covers the basics of what good code is, why it is important and how to keep projects from descending into chaos. New software developers will learn tips and tricks to writing good code. Experienced developers will benefit from a refresher and think on some bad habits they may have picked up.
Building Event Driven Architectures on AWS
What is an event driven application and how does it relate to serverless?
There are a number of cloud-native (AWS) tools you can use that go beyond the typical serverless stack. Join Chris Fullerton as he discusses some of these and demos alternatives that can help with creating scalable, decoupled architectures.
Rise of the Technical UX Designer: Prototyping w/Framer X + React
Technical UX Designers are an emerging class of contributors in our industry. Are you a Front-End/Full Stack Developer who wants to do rapid prototyping with your company’s design system? Or perhaps you are a Designer who has programming skills and want to take your prototypes to the next level with real data and interactions? Framer X and similar tools are changing the way we prototype.
Framer X is a React-powered interactive design tool. It allows you to create responsive layouts, realistic prototypes and generally brings the process much closer to production quality. Finally, your UX and product development teams can share a common system to ensure your future product development efforts align.
Imagine Photoshop, Sketch or Adobe XD, but with React under the hood and the ability to import/create components from code or design perspectives. You can even tie your components to real data from API endpoints All of this built on a tremendous community store platform where users share their components.
In this session, Brian Dunphy will walk through importing an existing design system, creating components from design and code, importing and using 3rd party React components, and finally how to tie it all together with a live data source.
Adapt & Overcome: Dependency Management in Existing Codebases
Changing existing code is difficult. Being forced to change on short notice due to changes in dependencies is undesirable. The adapter pattern helps manage code changes. This makes our jobs as programmers easier in two major ways: (1) it limits the exposure of the change to a single point in your codebase and (2) it can be used to indicate when behaviour changes that you care about have been made.
In this session, Matt Duffy will cover how to introduce the adapter pattern into an existing codebase and the advantages and disadvantages of this strategy.
CircuitPython: Python on Hardware
Python has made the jump to embedded software running on microcontroller hardware. This talk will introduce CircuitPython, a fork of MicroPython (a implementation of Python 3 designed to run on small hardware) that takes it to exciting new hardware and makes it very beginner/learner friendly. MicroPython is a new, opensource implementation of Python3 for this type of environment, including the BBC Micro:bit.
CiruitPython is a fork of MicroPython that supports new hardware and provides a very beginner/learner friendly way to deploy code to the hardware: connect your board via USB and a drive appears, drop code onto the drive and it runs. Edit code directly on the drive. Save it and it runs. Connect to the board via a terminal emulator (e.g. screen) and you can drop into a Python REPL. A recent addition has been a compatibility layer for Raspberry Pi making CircuitPython code portable between the various microcontroller systems and the Pi.
Dave Astels will introduce CircuitPython and various boards from Adafruit that support it as well as the Mu python programming environment that has support for CircuitPython and associated hardware.
From Reactive to Proactive – The Changing Role of Technology in Healthcare
Technology is permeating just about every facet of our lives. In the area of Healthcare, it has promised cures to diseases, better access to services and a longer, better quality of life. What is the reality of what’s occurring with modern day technology in healthcare? How can we use it on a daily basis to improve our own health outcomes? What are the challenges surrounding adoption of modern tech in healthcare and how do we address them?
Securing the Cloud – How Not to End Up in the News
In the ever evolving world of Development and Operations, more and more companies are adopting a devops methodology. This puts more responsibility on everyone to develop with security in mind. This includes securing your cloud infrastructure. In this session, Matt Taylor will discuss methods and best practices to run your product responsibly in Amazon Web Services (recognizing that these practices can also be adapted for other public cloud offerings). Matt will look at different tools to manage your infrastructure and security in code and what tools AWS offers to monitor the security of your infrastructure.
Minimal Likeable Process – Scrum? Kanban? Just get work done!
If you are a starting a new project, whether it be a startup, a project inside a large company, or just taking on a small hobby, planning, tracking, and delivering your work always leads to a question around “how do we break this down, execute, and deliver?” With so many tools, books, and opinions floating around on Medium, Slack groups, and hackernoon on how to go forth and prosper, it can be overwhelming to find the balance between getting sh*t done and planning said “sh*t”.
In this session, Patrick will share his experiences over the different size of organizations, colocated and remote, he has worked at, leave you with some thoughts (and some opinions) and draw conclusions, from his perspective, on what are some great ways to do the minimal process as an engineering org that will set you up for success. Agile? Scrum, Kanban? Just GSD, let’s hash it out and figure out what works for you.
Using and Abusing AWS Lambda (Lightning Talk)
What can we do in the AWS Lambda environment besides running small functions? We’ll start with the basics of the service, move through some simple examples, and see just how far we can push the Lambda environment AWS provides us with. AWS lambda is the leading FaaS (Functions as a Service) option. This talk will give a brief overview of some basic example uses of the service, (web scraper, SMS reminders, image resizing) before diving into exploring the details of how the lambda environment is set up (what exactly can we access in the small Linux environment called lambda that AWS provides us with?) With this information, we’ll try some more unusual uses for lambda like ssh-ing into a lambda instance, installing git in a lambda and using it to mirror one repo to another, running headless Chromium in a lambda, and maybe even try running Docker in a lambda.
Smart Community: What Can We Do To Make This an Actual Reality (Lightning Talk)
When someone mentions “smart community” or “smart city”, people often think of apps to help find a parking spot or gamification of dead racoon clean up. But we all know that smart community is much more than gamification and digitalization of tasks. The real question is…how can we really get there?
Becoming a smart community requires complex policy changes that needs to involve everyone from the public to private sector. In this lightning talk, Book Sadprasid will explore what the tech community can do to help drive Atlantic Canada’s transformation into smart community.
What It’s Like Contributing to Git (Lightning Talk)
For most of us, Git is an important part of our development workflow. But what do you do if you discover a strange bug or you want to expand on some functionality to help other developers that are using the tool? Where do you get started? How do you submit your patch?
I recently became involved with the development of Git after I found and resolved a bug around GPG commit signing. It was an interesting experience which lends itself to a discussion about contributing to open source software and what it’s like to contribute to the version control system that is leading the software development industry.
Primer on Python (Lightning Talk)
Python is a powerful and popular language. Join Dave Astels for an introduction (or just a refresher) on Python.
This lightning talk will be scheduled before the CircuitPython session.
Shaping Innovation: What Gets Made, How and Why? (Lightning Talk)
We live in the future, sort of! Modern computing is at most 5 generations old and it’s clear now that computing has shaped nearly every aspect of our lives. How did we get here? Who dreamed of this? Who wanted it? Join Angus Fletcher for a brief journey through the contemporary history of computing, the cultural forces that shaped it, and where it leaves us today. Angus will also talk about the history of computing research, the business environment it has created today, and the challenges it has created.
He will also touch on the role of resistance in this system, and the relationship between what we call progress and resistance. It’s easy to see everything that’s happened in the last 60 years as inevitable and it’s important to understand that even though it doesn’t look like it, the way technology looks today is still a product of compromise, of tension.
How Design Systems Can Improve Your Design / Engineering Process (Lightning Talk)
We’ve all been there, recreating the same looking button or component a dozen times while it slowly morphs into something our designer doesn’t recognize anymore. In this lightning talk, Kolton Gagnon will dive into how Design Systems can help bring back consistency in your interfaces and in your code. We’ll also talk about the roles designers and engineers play and how we should get rid of the old Over-The-Wall process.
Short on time? Accelerate Your Data Science with GPUs (Lightning Talk)
Singletons. Possibly the most divisive of all the programming patterns. Frequently used and often abused, what do you do
with a codebase littered with them? And more importantly, can we even program without them?
In session, Colin will offer a deeper look at a pattern most developers will use or encounter and some point in their career as well as practical guidance on ways to curb some of its shortcomings.