This event has passed. Find the latest Vermont Code Camp info here.

2018 Sessions

Read more about the sessions of Vermont Code Camp

Room 221 - Data: From Big to Small

Survey of Big Data Infrastructures Malina Kirn 9:00 AM-10:00 AM

Level 100 (absolute beginner)

Big data infrastructures have evolved rapidly as computing power has grown and hardware has become less expensive. This session will be a high level overview of popular big data infrastructures and paradigms over the last decade in both academics and industry. Technologies covered will include Spark, Hadoop, distributed relational databases, grid computing, and high performance computing. We will compare and contrast embarrassingly parallel vs distributed memory algorithms and streaming vs batch processing. Finally, the session will cover some of the modern technology options available for various applications.

Getting started with Azure Marketplace Udaiappa Ramachandran 10:15 AM-10:45 AM

Level 200 (never stop learning)

In this session, I will walk thru the process of getting started with Azure Marketplace and publishing Virtual Machine and Web Applications.

"Recalculating!" - Navigating Container Technologies and Azure Chris Bowen 11:00 AM-12:00 PM

Level 100 (absolute beginner)

Like Boston streets at the height of the Big Dig, the world of containers can seem a tangle of construction and one-way streets. Many turns can be taken, but reaching the destination of container adoption can improve your application architecture, deployment, scalability, cost, and more. In this session, we'll update our navigation systems with the latest maps of container options in and around Azure (Docker, Kubernetes, ACI, AKS, ACR, App Service, etc.) to learn why these roads exist and help you swiftly arrive at success!

Pushing Data to the Cloud and Serving It Up Fast! Rama Kocherlakota 1:00 PM-1:30 PM

Level 200 (never stop learning)

Dealer Dot Com is moving their infrastructure to AWS and needed to make a version of their account (i.e. dealer) dataset available in the cloud. Requirements: keep it in sync with the on-prem database, deploy in multiple regions and keep the read-latencies down to single digit milliseconds. Beanstalk and Hollow and triggers, oh my!

The Ultimate Stage in Machine Learning Svetlana Levitan 1:45 PM-2:45 PM

Level 200 (never stop learning)

Machine learning and data science are in popular demand. Predictive model deployment is the part of the machine learning process where the practical results are achieved. Model deployment is the process of making a machine learning model available for generating predictions on new data, known as scoring (or sometimes called inferencing). The deployment used to present big difficulties, as models were typically built in one environment and needed to be deployed in a different one. Often they would need to be re-implemented in a new programming language, that would be very slow and error-prone. This talk will cover two open standards that have made the process of model deployment easier: Predictive Model Markup Language (PMML) and Portable Format for Analytics (PFA), both developed by the Data Mining Group (DMG). We'll also talk briefly about deployment options for deep learning models.

Go API Middleware John Cicilio 3:30 PM-4:00 PM

Level 200 (never stop learning)

Maximize code re-use with middleware when writing a Go api. In this session I will show how to use the standard Go libraries to construct middleware in a simple api.

Using MySQL Workbench to Design and Build Databases Frank Canovatchel 4:15 PM-5:15 PM

Level 300 (pretty darned-experienced)

Use MySQL Workbench to design your MySQL database. With the design completed, you can forward engineer the design into SQL code that when run, will generate all of the tables, attributes, indexes and all of the related parts of a well-functioning database. See how to tweak the code so it can run on a Microsoft’s SQL Server.

Room 232 - Code, APIs, and Things

For the DotNoobs! Leveling Up Your C# Bob Crowley 9:00 AM-10:00 AM

Level 100 (absolute beginner)

So you have some C# experience but you're still a little green. Chances are you are making common mistakes without realizing it. This session will accelerate your experience level in just one hour by pointing out things you will never do wrong again, and do so in an easy to understand way. We'll cover as many mini-topics as we can in 60 minutes, including:

  • What a reference type really is and what it means to pass by reference.
  • Using HttpClient correctly.
  • Async/Await mistakes.
  • Exception Handling.
  • Handling SqlParameter and the problem with AddWithValue
  • Visual Studio features you should use. And more, time permitting !

psst, even experienced programmers might pick up a thing or two...

Enterprise Apps for the Web Platform Bradley Holt 10:15 AM-10:45 AM

Level 200 (never stop learning)

Progressive Web Apps are opening up a whole new world of innovation on the open web platform by providing the reliable, fast, and engaging user experience of a native mobile app, but delivered with the openness and discoverability of a web app. A number of high-profile organizations including Google, Twitter, and The Weather Channel have adopted Progressive Web App technologies. Learn how and why your organization should build a Progressive Web App and how your development team can take advantage of related open web technologies and browser APIs such as service workers, IndexedDB, persistent storage, payments, geolocation, and push notifications. We'll also cover some open source and proprietary technologies that can help you build your first Progressive Web App.

A Gentle Introduction to ReactJS Linus Falck-Ytter 11:00 AM-12:00 PM

Level 200 (never stop learning)

Got framework overload? Join us for a gentle introductory session on using ReactJS. We'll go over the theory behind the framework, and then finish the session by building a small demo site together.

Coding In Real Life: Python, 3D Modelling and Printing Kendall Fortney 1:00 PM-1:30 PM

Level 200 (never stop learning)

As someone that first started exploring Python for data analytics it was a pleasant surprise to find that the same language can be used for 3D modeling software like Blender, Maya, Poser and Rhino. Translating programing abilities into creating printed objects or virtual models can extend how the coding can be used to make an impact, solve a problem or tell a story in a completely novel way.

The talk will cover explorations of geospatial and abstract data represented as 3D models to create new ways of visualizing information including printing incredibly accurate geospatial Lidar DEM and DSM models at multiple scales and creating abstracted models of complex data in VR environments. And it looks nothing like Zero Cool hacking The Gibson yet….

Developing ASP.NET Core 2.0 Web APIs for your Web and Mobile Apps Chris Woodruff 1:45 PM-2:45 PM

Level 300 (pretty darned-experienced)

ASP.NET Core 2.0 is a cross-platform web framework that can be deployed to Windows, macOS, Linux or even to Containers! It is the perfect framework to develop the the Web APIs that drive the hottest web and mobile apps. The key is to have the right architecture to go along with the benefits that ASP.NET Core gives developers. In this , we will look at ASP.NET Core 2.0 Web API and the Hexagonal Architecture to allow your APIs to be efficient and testable.

By using the Hex Architecture not only does the development story become easier but your end users get a much more stable API set to consume. The talk will explain and get you started on using these concepts with your ASP.NET Core 2.0 Web API projects.

WebAssembly and Blazor Floyd Hilton 3:30 PM-4:00 PM

Level 200 (never stop learning)

Will we be able to write front end single page apps (SPAs) without using JavaScript? Come and learn what WebAssembly is and how it can be used with the Blazor framework to write SPAs using .NET.

Building Serverless Data APIs Julie Lerman 4:15 PM-5:15 PM

Level 300 (pretty darned-experienced)

Azure Functions, Microsoft’s serverless offering, allow developers to focus on their code and not be concerned infrastructure or DevOps. And thanks to a slew of built-in integrations, it's also easy to have your functions get and send data to various services or even be triggered by events in those services. One such integration is with Azure Cosmos DB, the multi-model, globally distributed NoSQL data service. Cosmos DB exposes data as documents that you can access via SQL, JavaScript MongoDB or Cassandra as well as graph and key-value store. In this session, you'll see how easily you can build an API from a set of Azure Functions that interact with Cosmos DB documents and some other services. We’ll go all cross-platform with Visual Studio Code and NodeJS.

Room 233 - Modern Practices

Real World Introduction To Enterprise Blockchain Paul Swider 9:00 AM-10:00 AM

Level 300 (pretty darned-experienced)

If you’re interested in learning a little bit about Enterprise Blockchain and a real-world use case, you should check this session and see how we are building an enterprise blockchain which can be used to transparently record different types of donations for SharePoint Saturday Puerto Rico.

One of the primary design principles of our real-world use case is to demonstrate patterns for Business App integration with other services in the Microsoft Cloud. i.e. SharePoint, Dynamics 365, Teams, etc.

See how creative you can get with smart contracts and learn how to use the transparent ledger properties of blockchain to share donation and sponsor information. All the demo code is OOS and will be shared with attendees via GitHub.

Exploring User Mental Models of Data Sharing Amy Chess 10:15 AM-10:45 AM

Level 100 (absolute beginner)

Successful integration of software applications depends critically on appropriate sharing of data. But how do we know what constitutes “appropriate” data sharing? By talking to your users, and asking targeted questions to assess their expectations around the addition, modification, and viewing of data, as well as what rules your users believe should govern access to specific data points, you will be able to anticipate and plan for key software architecture decisions.

You will learn how to:

*Characterize the way your users currently think about data in relation to multiple products *Establish the way that your users’ tasks could be better supported by alternative underlying data models *Reveal which users need to see what data and in what circumstances (e.g. permissions) *Anticipate areas where data sharing is deemed risky by users, and explore potential data verification strategies to mitigate risk *Investigate user conceptions of data at an enterprise level and resulting implications for data manipulation at the child level

Artificial Intelligence for everyone Veronika Kolesnikova 11:00 AM-12:00 PM

Level 200 (never stop learning)

I’m sure you have heard about artificial intelligence because it’s next big thing and all major tech companies are involved in its development. Now you can implement it too directly in all your websites, mobile and desktop apps using Microsoft Cognitive Services. In this session you will get basic knowledge about artificial intelligence, machine learning and their applications, go over all 6 groups of Cognitive Services and see individual APIs available in Azure. We’ll see how to use pre-built and custom services. Also we will concentrate on some details and specifics of Cognitive Services implementation in Xamarin and Xamarin.Forms solutions. In the end, you will see a demo on how using exported model from Custom Vision service create image recognition app.

Practical UX & UI for Developers Kyle Mitofsky 1:00 PM-1:30 PM

Level 100 (absolute beginner)

As an end user, there's nothing more satisfying than a well crafted design. As a developer, this often takes knowledge, forethought, and work to achieve. We'll go over some fundamental design principles and frameworks, and then build some guidelines and strategies for designing exceptional interfaces and experiences. UI skills are easily transferred across organizations and tech stacks and allow you and your company's products to stand out and deliver value.

Powershell Primer Larry Keyes 1:45 PM-2:45 PM

Level 200 (never stop learning)

Powershell is Microsoft's evolution of the good old DOS command line, now with commands to automate Azure, Office 365, Windows and applications. It slices, it dices, it does DevOps, text processing, REST-APIs calls, SQL database management and much, much more. This session introduces Powershell to newbies, who want to take to next step in automating their world.

Accessibility Awareness: Empowering Everyone Mandy Swithenbank 3:30 PM-4:00 PM

Level 200 (never stop learning)

Web accessibility is more than programming for screen readers. Learn how placing accessibility first improves your user experience for everyone, enabling people of all backgrounds to accomplish their goals on your site regardless of their abilities. We’ll review some easy ways to evaluate your site’s accessibility, along with a few steps you can take to remove barriers and delight your users.

“It’s the stairs leading into a building that disable the wheelchair user rather than the wheelchair.”

Excel Tools for the Global Ingredients Archiving System Mitch Miller 4:15 PM-5:15 PM

Level 200 (never stop learning)

A major undertaking is going on around the world: standardizing the way companies and governmental agencies communicate about pharmaceutical products. One component of this system is ginas (Global Ingredients Archiving System), a software system that allows users to define the substances used in medicines, foods, veterinary products, etc. with sufficient precision so that people around the world can communicate confidently about these substances, eliminating the errors that come with ambiguity.

One component of ginas is a set of tools for Microsoft Excel that allow retrieval of information from a ginas repository into a spreadsheet as well as entry of new information into a repository from a spreadsheet.

The tools consist of a C# user interface that communicates with a Java RESTful web service via a JavaScript shim. Users can create reports by retrieving data to match a query name or identifier; create new worksheets for data entry; and post new data to a server. The new data may be brand new records; new names or identifiers for existing records; amendments to existing outward links and other updates.

We will start with an overview of the standardization process, then talk about the ginas system as an implementation of the new standards. This will set the context the Excel tools, which we'll dissect in detail. Finally, the lessons learned about Excel add-ins that may be relevant to developers of similar add-ins.

Room 424 - Testing and Devops

The Whole Team Approach to Testing in Continuous Delivery Lisa Crispin 9:00 AM-10:00 AM

Level 300 (pretty darned-experienced)

We've never had time to Test All The Things before releasing updates to production. So how can we feel confident to release updates weekly or even daily with continuous delivery (CD)? Automating regression tests is already a challenge. What about all the other critical testing activities we need to do to make sure our product doesn't turn into a roadblock for customers? In this session, Lisa will introduce some new tools and frameworks that will help your team work together to overcome testing challenges and succeed with CD. These include:

  • Ways to visualize your CD pipeline so the team can find ways to shorten feedback loops and mitigate risks
  • How to use a test suite canvas to discuss what questions each step in your CD pipeline needs to answer, to understand the value each step provides
  • How to make sure all essential types of testing are done continually, and how to fit testing into the continuous world. There IS a “test” in DevOps! Let’s explore it together.

Semantic release gleb bahmutov 10:15 AM-10:45 AM

Level 200 (never stop learning)

Manually releasing new software versions is dangerous. You might forget to test it before releasing, or you might release a platform-specific version, instead of a general one. Moving the release to the CI and automating it is the key to repeatable and robust release process. In this talk I will show how to setup completely automated yet robust release system with semantic versioning for JavaScript using NodeJS.

Maintaining Investment Grade Technical Debt Peter Vile 11:00 AM-12:00 PM

Level 200 (never stop learning)

Successful systems continue to evolve through changing features, technologies and developers. Let's discuss how to evaluate changes and impacts on the technical debt of systems. Should we follow Conway's law? Reverse Conway's law? What are some metrics to monitor, so that we don't have to declare technical bankruptcy.

Continuous Integration/Delivery of SQL Databases Zachary Kingston 1:00 PM-1:30 PM

Level 200 (never stop learning)

In an attempt to simplify development and deployment we undertook to align the CI/CD pipelines of our applications and our database schemas. This talk will explore how SQL databases were developed and deployed using an existing CI/CD pipeline originally built for web applications. I will show how traditionally challenging areas such parallel development were greatly simplified. I will also discuss the new, arguably greater, challenges we created for ourselves with this experiment. Technologies in this talk include: SQL Server, Visual Studio SQL Server Data Tool (SSDT), Data-tier Application Component Packages (DACPACs), NuGet

Automated Quality Assurance: From Apprentice to Master Shawn Vernier 1:45 PM-2:45 PM

Level 200 (never stop learning)

A look into the world of Automated Quality Assurance - what it is, how to achieve it, and pitfalls to avoid. This presentation has something to offer anyone from those curious about AQA to those already in the field. We’ll start by distinguishing between Manual QA (Quality Advocates) and Automated QA (Quality Assurance), followed by how to get started in AQA and how to structure AQA in your organization (Don't Automate the Mess!). Next we dig a little deeper and talk test case management (Scrum is not a Silver Bullet), structuring your codebase for maintainability, and AQA paradigms (Gherkin/Cucumber). Third, we touch on a few common pitfalls of AQA a mature AQA pipeline (Watchman problem) and how to avoid them. Finally, we’ll walk through the various types of AQA testing (Integration, Front-end, Performance) and how to tackle them with AQA.

Value Stream Mapping Tobin Winters 3:30 PM-4:00 PM

Level 200 (never stop learning)

Every company delivers value at some level as their primary mission, yet many don't have a clear picture of how the do it and how they can do it better and more efficiently. This is especially tricky in the rapidly changing world of software development. We'll walk through why value stream mapping is important and some actual value streams covering some lessons learned and examples of reducing waste and making value delivery more efficient and the primary focus.

Unit Testing with JUnit and Eclipse - Basics Murat K. Gungor 4:15 PM-5:15 PM

Level 100 (absolute beginner)

Basics of white box testing, live coding demonstration of JUnit framework with Eclipse IDE. If time allows Mocking with Mockito framework also could be on the menu.

Room 442 - For Fun and Profit

Bit Banging and Other Fun Programming at the Edge. Scott Thibault 9:00 AM-10:00 AM

Level 100 (absolute beginner)

An introduction to sensors, microcontrollers and how they fit into the larger context of the Internet of Things (IoT). This session will begin with a survey of the various sensors that are available. I’ll then spend the bulk of the time talking about what microcontrollers are, how programming them differs from desktop/web programming and how they are used to connect to sensors and the network. We’ll finish off by looking at a demo or two and how this all fits into the grand scheme of the IoT.

Leadership Ethics and Diversity Kash Kundargi 10:15 AM-10:45 AM

Level 200 (never stop learning)

Leadership is a fascinating social phenomenon that occurs in all groups of people regardless of geography, culture or nationality. Most young people today aspire to become leaders in school, entertainment, politics or any other area of endeavor. For a leader to be continuously effective over time and in different situations, the leader's behavior must vary with the situation. But how do we know if the leader is effective and is making ethical decisions for the organization? In the session I will talk about the ethical issues that leaders face today and provide information to enable a leader to effectively carry out the leadership process.

Everything SEO: Strategy, Process, Technical Implementation, Tools, & the Real World John Waterman, PMP, GISP 11:00 AM-12:00 PM

Level 100 (absolute beginner)

We dive into 'everything SEO' using a current real-world geographic success. Want to go from zero to 1000 unique user visits per day? How do you rank among your competitors? Want a big salary SEO Strategist job position? We'll touch on best practices, small modifications to gain big, tools of the trade, analytics, and much more.

Civic Tech: Meaningful Ways to Use Your Skills Micah Mutrux / Brie Hoblin 1:00 PM-1:30 PM

Level 100 (absolute beginner)

Opportunities to use your digital skills for social good are everywhere, but it isn't always clear how to get started, or what your involvement would be. We're going to look at concrete examples of people like you working on things like hurricane relief and social justice reform. This is exciting and meaningful work – and you can get involved right now.

How to get a great job and build a network in a rural market Kip Steele 1:45 PM-2:45 PM

Level 100 (absolute beginner)

Working in Vermont can be challenging and hard for people from outside of the area to find a way in. Or for students graduating from our local colleges who are so smitten with Vermont (who wouldn’t be?) that they want to stay here after they graduate. Learn tactics and methods to get into great companies as well as understanding the tech community here in the 802.

5 Key Skills & Tools to Instantly Improve Project Success Annmarie Curley 3:30 PM-4:00 PM

Level 200 (never stop learning)

A targeted overview of 5 key methods and toolsets to help you manage your projects more effectively, improving quality and project results and making your clients and end-users happier. Attendees will receive project templates, including a project dashboard Excel template, and sample checklists.

Developer’s Guide to WordPress Josh Lee 4:15 PM-5:15 PM

Level 200 (never stop learning)

A Developers Guide to WordPress In this talk we’ll take a peek under the hood at some of the underlying architecture behind the most popular content management system on the planet. We’ll review the database schema and internal APIs, and discuss the pros, cons and caveats to historical decisions that are now “baked in” to WordPress, for better or worse.

Finally, we’ll look at Gutenberg and upcoming changes to the WordPress ecosystem.