Everyone’s career journey, especially in software development is different. These days, you don’t necessarily need a masters, or even a 4-year degree in computer science to get into technology. As new tools emerge — seemingly a new one every few weeks or month — the most important thing is your willingness to learn and take…

Everyone’s career journey, especially in software development is different. These days, you don’t necessarily need a masters, or even a 4-year degree in computer science to get into technology. As new tools emerge — seemingly a new one every few weeks or month — the most important thing is your willingness to learn and take on new challenges in this evergreen industry.

Rona Kilmer, director of engineering at Kenzan will be joining General Assembly in Denver on January 29 to moderate a panel on careers in web development. But before she does that, our People and Culture team sat down with Rona to learn about her career evolution in hopes that it will inspire many more to embark on a career in development.

How did you get into computer science/development?During my senior year of high school I found out I could leave early if I took some classes at a nearby community college. I, like many at that age, was so over the whole high school thing (insert eyeroll). So I thought why not get a jump on college courses? I was really into art all through school and there was a multimedia class that grabbed my attention. In that class I learned how to use software like Adobe Premier and Macromedia Director. I saw the merging of art with technology and loved it.

That’s how I decided on my major in college, Media Arts and Design. It was a nice blend of graphic design and computer science. At the time, I didn’t know that I wanted to be a developer. My studies started with design and “dev” with GUIs like Netscape Composer and Dreamweaver. It wasn’t long before I realized the limitations of those tools and started looking behind the curtain at the code. That’s when I really started to get engaged. I loved the challenge of it.

My first job out of school was as a web designer for a small company in Arlington, Virginia. My very first project was to build out a small website for Exxon Mobil. I nearly had a heart attack when I got the assignment. I was just out of school and building a site for a huge corporation! To make it even more challenging, I had to use software I wasn’t familiar with, Adobe GoLive. It was even worse at generating HTML than Dreamweaver so I was forced to learn more and more code.

How did you get into leadership roles?Over the years, I often found myself leading projects in both official and unofficial capacities. At one point I had to make a decision on where my career would go. At the time I was a designer, developer, and a team lead. I couldn’t take on all three roles effectively. I decided to stick with development and leadership. I was always a natural leader so I couldn’t walk away from that and I loved the challenge of development so I put the design role on a shelf. Occasionally, I get the opportunity to do design work and I always love it when I do but leading technical teams is where I belong.

At Kenzan I started as a technical architect which is a development team lead. I then moved up to the director position. Though I come from a front-end background, I now manage both front-end and back-end teams. I’m not in the code nearly as much anymore but I love seeing what our teams produce and helping them do it. As a director, I think my experience with the full spectrum of development has been invaluable. The UI/UX principles I learned as a designer still help inform the decisions I make today and my time spent as a front-end developer helps inform how we design APIs for our microservices today.

What kind of projects do you work on at Kenzan?Large scale corporate microservices mostly. As far as technologies go, we use Kubernetes for deploying and managing our containerized services. We use Java and Node on the back-end. Front-end is typically React but we also use Angular. We work with Drupal and WordPress on a few projects but usually only in a headless fashion (we don’t use their theming engines).

What’s been your favorite project? Why?We are currently building a tech radar and badge board as an internal project. It’s helping to drive how we make technology decisions on our projects. It is also a really cool tool for ensuring our teams are always in the know on where our technology stack is headed and how to get up to speed on the latest.

What tools and tech are you excited about right now?There is so much happening right now to get excited about. I think everyone should be paying attention to IoT (Internet of Things), machine learning, and voice technologies (Alexa skills, etc). I find blockchain and it’s uses outside of cryptocurrency very interesting as well. Progressive web apps where you optimize your app for offline use is a biggie and I’m also seeing GraphQL pop up more and more. I haven’t used it yet but I can see it being very useful.

What qualities do you think make you a good Director of Engineering?Ultimately, you have to get stuff done. So it’s important to be able to make decisions and keep people moving. You have to shield your teams from the political cruft that sometimes leaks into projects. You also have to be okay not knowing all the nitty gritty details about things. You have to know what questions to ask and who to ask and then you need to act on that information. Lastly and probably most importantly, you have to have empathy. You cannot effectively lead teams of humans if you don’t have it.

Follow up: How do you manage shielding people while still allowing them to see big picture?It’s totally fine to share information about what’s going on. I certainly don’t want to paint a rosy picture if things are not rosy. But you can’t let fear creep in. It is not a good way to motivate. I want my teams to be aware of what’s going on but to know and trust that we (leadership) are dealing with it. For the most part, that’s all it takes.

Where did you learn your skills?I am surrounded by incredibly smart people that I get to learn from everyday. That is definitely my number one source. I also read a lot. We have a book club at Kenzan and we just finished reading Clean Code. That is great book every developer should read. I follow very smart people on Twitter and Medium. If I want to get my hands dirty, I’ll start with a tutorial on Pluralsight (or similar) and just dive in. Conferences are also a great way to learn about the cool things people are doing with technology. I went to AWS Re:Invent this year and learned a ton.

What’s the best piece of advice you’ve received?Don’t be afraid of failure. Failing isn’t always a bad thing as long as you learn something from it. Push past your comfort zone. Make the leap. Try something new. You might succeed, you might not. But the one guarantee is that you’ll never know if you don’t try.

While front end development tends to get a lot of attention, we’d like to shed some light on the developers and engineers who work behind the curtain to ensure that the website or application you’re seeing is firing on all cylinders. Back end developers play a critical role on Kenzan teams, managing and building everything…

While front end development tends to get a lot of attention, we’d like to shed some light on the developers and engineers who work behind the curtain to ensure that the website or application you’re seeing is firing on all cylinders.

Back end developers play a critical role on Kenzan teams, managing and building everything from servers to databases and all the things in between. To learn a little bit about what it’s like to be a Back End Developer, I spoke to one Kenzanite, Nicholas Sledgianowski (aka Sledge), who’s been at Kenzan for 3 years and works out of our Denver office.

Tell us a little bit about yourself and your experience.I have worked as a software engineer for around 5 years with exposure to both the front and back end of websites. My original plan was to be a physics researcher but I switched to software during my college years. I live in Denver and enjoy hiking and ballroom dance.

How did you get into computer science/development?In high school I tried to get into game programming with C++, I did not get very far but I took an introductory C++ class in college that got me hooked on programming.

What kind of projects do back end developers work on at Kenzan?Typically, our setup is a single page web application with many microservice APIs behind it. Back end developers mainly work on Java APIs and sometimes data pipelines supporting microservices. We would be responsible for supporting logins, authentication, designing database tables, database migrations, debugging production issues and caching systems. At Kenzan, back end developers can expect to be involved in everything behind the JavaScript running on the client’s machine.

What’s been your favorite project? Why?My favorite project was a data pipeline we built to provide a unified user data layer on top of 3 legacy user databases. The client had undergone a merger and was moving all users onto a unified site. We had a Kafka topic which the legacy systems published changes to, then an Akka cluster handled denormalizing the data and writing it to a Cassandra database. I got to spend some time optimizing our Cassandra driver’s write throughput which was a blast!

What’s your favorite programming language? Why?My favorite programming language is Clojure. It is really beautiful to work with and has very powerful abstraction and polymorphism features. Clojure is not the best language for web development but it is great in other contexts. I recommend checking it out whether or not you have played with Lisp before.

What technologies are in your tool box?It is more of a question of what technologies are not in my tool box. I have done a little front end, a little mobile development, a lot of back end development and DevOps. I try to stay away from the front end and the JavaScript ecosystem, it moves quickly and I only have so much time. I like to know everything about everything so it is important for me to ignore things to avoid being stretched too thin.

What’s a new technology that you’re psyched about?I am pretty excited in GRPC and its multi-language compilation capabilities. Other than that I want to try and build things with all the machine learning APIs we have available nowadays.

What qualities do you think make you a good back end developer?I am really good at reading which helps because there is a lot of code in a typical project and if you really want to know what is going on you need to read a lot of it. Code is written by people and you can get an idea of what patterns and thought processes went into a program from reading it.

Where did you learn your skills?Most of my skills came from programming and the free resources on the internet. There are blog posts for everything you can imagine in information technology today. I am always reading about projects people have done online and trying out their open source software. A few good places to look for ideas are news.ycombinator.com, http://highscalability.com, and https://blog.acolyer.org/

What’s the best piece of advice you’ve received at Kenzan?I think the best advice I have gotten is to use the dependency management tools in Maven and Gradle (ex. mvn dependency:tree) to help you figure out tricky dependency conflicts. Without that you can get stuck for days trying to work dependencies out. My best piece of advice is to read the book The Phoenix Project if you want to understand project managers, it is like fables for project managers.

To learn about Back End Developer opportunities at Kenzan, join us on December 13 for a job fair. RSVP here

What do you do when your monthly meetup attendance — usually around 20-30 people — all of a sudden jumps up to 100? Well, first you order a few more pizzas and a lot more beers. Then, you recruit a bunch of employees for some manual labor, start pushing desks out of the way, scramble…

What do you do when your monthly meetup attendance — usually around 20-30 people — all of a sudden jumps up to 100? Well, first you order a few more pizzas and a lot more beers. Then, you recruit a bunch of employees for some manual labor, start pushing desks out of the way, scramble for chairs, and hopefully end up with something like this:

That was the scene at Kenzan’s office in Rhode Island last week, and despite some last minute logistical hurdles, we couldn’t have been happier to see lots of new and familiar faces at our meetup. It’s a testament to the growing tech community in Providence, and we’re excited to be a part of it. As it continues to grow, Kenzan will also continue to be a resource for those looking to learn new skills and get hands-on with emerging technologies. With that in mind, here’s a breakdown of what we learned during last week’s presentation.

Thursday night’s topic was on serverless architecture, and was presented by Marie Schmidt, a Kenzan developer based out of our Denver office.

Serverless is a popular topic right now, and for good reason. Serverless technology makes it easy to spin up a web API or event based computing tasks, with minimal server interaction and low cost. It allows developers to focus on writing code, while handing server management and provisioning to 3rd parties. At Kenzan, we have found serverless functions and APIs to be a growing part of our modern architecture and we wanted to share these findings with the community.

During our serverless hack night, we discussed the pros and cons of serverless functions, and what we’ve found to be their best applications. We then looked at the architecture of a serverless API built with AWS and demo’d a simple example: creating an API with two serverless methods called by an API gateway. We believe attendees learned some key applications of serverless technology, and a basic implementation knowledge using AWS services. View the presentation slides here and follow along with the demo on your own!

See below some resources we’ve found useful when diving in to serverless.

Kenzan hosts monthly tech meetups, and for the very first time, we’re opening up the floor to presentations from the community for our December 7th meetup. We’re looking for technical presentations in one of these categories: Progressive Webs Apps, Machine Learning, Native App Development and DevOps. If you’ve got an idea that doesn’t fit into those areas, we want to see that too.

Early in september Netflix invited a handful of Spinnaker’s core contributors and companies to its engineering headquarters in Los Gatos California to discuss all things Spinnaker. Here’s a recap of some key takeaways: Extending Spinnaker David Stenglein, Kenzan’s SVP of architecture and engineering, moderated a panel focused on extending Spinnaker. Panelists featured speakers from Google,…

Early in september Netflix invited a handful of Spinnaker’s core contributors and companies to its engineering headquarters in Los Gatos California to discuss all things Spinnaker. Here’s a recap of some key takeaways:

Extending SpinnakerDavid Stenglein, Kenzan’s SVP of architecture and engineering, moderated a panel focused on extending Spinnaker. Panelists featured speakers from Google, Armory, Netflix, Oracle and Cerner. The panelists gave advice on how to best extend and modify Spinnaker by doing things such as adding your package to the classpath of Spinnaker. If you want to extend Spinnaker to better support your company and infrastructure this discussion is a good place to start.

Canary DeploymentsOne of the most widely anticipated features of Spinnaker is first class support for canary deployments. Google and Netflix have teamed up to work on a new microservice called “kayenta”. While Spinnaker can already do the first half of a canary deployment it’s still lacking a proper judge. Kayenta plans to fix this by monitoring metrics such as disk utilization, CPU, and error rates and compare them to a baseline deployment to determine if any given deployment is healthy enough to get full production traffic or if it should be automatically rolled back and the developers notified.

CommunityAt the end of the conference Netflix, Google, Kenzan and several other companies sat down to discuss the future of Spinnaker and its roadmap going forward. A few things stood out:

Many of us had faced the same problems and came up with identical solutions, often using the same programing language.

We realized just how big of an impact open sourcing even our smallest tools could have.

We also talked about the limitations of using Slack, Github, or Stackoverflow when used for long term planning, discussion, and sharing. We came to the consensus that we need some sort of message board system so that we can share our pipelines, projects, and ideas in a single and easily searchable place.

We all play a vital role in Spinnaker’s future and we very much look forward to more actively engaging with the entire community.

As technology continues to evolve at rapid pace, it’s more important than ever that companies play an active role in the development and education of technology professionals. After all, we’re looking at 1 million technology jobs by 2020 and not enough skilled workers to fill those roles. Internships are a tried and true approach…

As technology continues to evolve at rapid pace, it’s more important than ever that companies play an active role in the development and education of technology professionals. After all, we’re looking at 1 million technology jobs by 2020 and not enough skilled workers to fill those roles.

Internships are a tried and true approach to engage students, recent graduates and new-to-the-market job seekers as they begin their careers. Three times a year, Kenzan hosts interns at our Denver and Rhode Island offices for 10 weeks. These internships provide hands-on experience with new technologies, an opportunity to collaborate with development teams, and to learn from industry veterans.

Before he ended his summer internship, we were excited to hear from Jacob Brauchler, a recent graduate from the University of Colorado. During his internship, Jacob worked with the Platform teams in our Denver office. Kenzan’s training and development manager, Kate Pisano, asked Jacob a few questions about his summer at Kenzan.

We’ll be accepting applications for spring interns in October. For those ready for the next step, check out our job opportunities here.

You’ve spent 10 weeks with us at Kenzan, can you tell us about the project you worked on: A big project that I worked on was an evaluation of monitoring tools for Kubernetes. I tested the ease of setup along with confirmation that the metrics provided by the system match, at a minimum, the metrics provided by Heapster with InfluxDB and Grafana. I performed this evaluation on five different monitoring tools — Prometheus, Netsil, SignalFx, DataDog and Sysdig. At the end of my project, I wrote a white paper that included all my findings and provided rankings of the different tools based on setup, pricing, metrics and features provided by the tools.

What was your favorite part of the internship experience? My favorite part of the internship experience has been learning and working with cutting edge web development frameworks. It’s been really awesome looking at the capabilities of new technologies that successful companies are using, and all with a very knowledgeable team to provide support in the growth and understanding of technologies.

Jacob Brauchler, one of Kenzan’s summer interns in Denver.

What was a challenge you had to work through? Trying to setup Sysdig to test against the other monitoring tools I was evaluating was a real challenge. I attempted the follow the instructions provided by Sysdig, but along the way I encountered a number of errors. The first issue I found is that Sysdig can only be run on a Linux machine, and therefore I first tested on VirtualBox which does not support nested virtualization and would not work with Minikube. My next plan was to test on a dual booted machine which also ended in failure due to the fact that Sysdig had not been tested with Minikube and did not work due to the inability to update the Linux-Headers on the vm. At this point due to the fact that the other tools were successful and I had many struggles with Sysdig it was determined that Sysdig was not a tool we would recommend using.

What was the most important skill you learned during the internship? Honestly, I would say the most important skill I gained during the internship would be the ability to share the process in which I completed a task; it helped me develop my technical teaching and sharing skills. As an extension to that I would say my ability to research and find solutions and to learn new things grew.

What surprised you about working at Kenzan? The thing that surprised me about working at Kenzan most is how involved they keep their interns. In my past internship, they kind of just said, “hey go do this” and I was on my own. Here, it was a great experience where I was a part of a team doing work that is helpful to the company and pushed me to grow as a developer.

Favorite snack in the office? My favorite snacks in the office were probably the different desserts in the office, such as cookies, ice cream and ice cream sandwiches.

What was your favorite timesheet giphy Kate sent? My favorite timesheet giphy Kate sent, was the guess what day it is gif. I choose this gif because it provided a fun time to joke around with other interns, as well as Kate.

What piece of advice do you have other folks looking at internship opportunities? One piece of advice I have for other folks looking at internship opportunities is to find an internship that wants you to be involved with the team, and wants to help you grow as a developer. If you find a company that wants to do this and wants to prepare you for a future in this industry you will get a lot more out of your time.

What new tools or tech were you exposed to or got to work with? The tools and technology I was exposed to were Kubernetes (an open-source system for automating deployment, scaling, and management of containerized applications.), Prometheus, SignalFx, DataDog, Netsil (The past 4 are monitoring tools), Jenkins, React, and Webstorm. I got exposure to a wide variety of tools and tech during my time at Kenzan, some on the development side of things and some on the DevOps side of things.

How did the experience guide your career goals? This experience guided my career goals in that I started out with a focus on just being a fullstack developer but after my time as an intern I would like to have the opportunity to dive into DevOps further in the future.

After completing his 10-week internship, Jacob was hired as a full-time employee.

The front-end development landscape has changed dramatically over the past few years. The release of the latest EMCAScript specification in 2015 brought a new sense of maturity to JavaScript. It also introduced two key features: modules and classes. This has led to a proliferation of tools, libraries, and frameworks that have accelerated the development of…

The front-end development landscape has changed dramatically over the past few years. The release of the latest EMCAScript specification in 2015 brought a new sense of maturity to JavaScript. It also introduced two key features: modules and classes. This has led to a proliferation of tools, libraries, and frameworks that have accelerated the development of front-end applications. But with so many great choices, how do you decide what’s best for your application and team?

In Kenzan’s latest series for Linux.com, we set out to answer that question. We examine in depth how a stack focusing on Yarn for package management, webpack for application bundling, and TypeScript for writing application source code can give developers and organizations the building blocks to write more maintainable and better optimized applications.

For the next few weeks, Linux.com will be rolling out the five-part series on their blog. The first part, posted today, gives you a short history lesson on JavaScript and delves into the core philosophies of front-end development. Throughout the rest of the series, you’ll learn more about the main components of our modern day front-end development stack. We’ll finish up with a case study of a working hello-world application that shows all the elements of the stack in action. By the end, we hope you’ll be able to take what you’ve learned and apply it to your own infrastructure.

Read the first part of our series on Linux.com: Set Up a CI/CD Pipeline with Kubernetes. What’s an eight letter word that starts with K and is the name of a powerful container orchestration tool? If you just shouted out Kubernetes (or if you were curious about the answer), then you’re ready to tackle the…

What’s an eight letter word that starts with K and is the name of a powerful container orchestration tool?

If you just shouted out Kubernetes (or if you were curious about the answer), then you’re ready to tackle the Kenzan Kr8sswordz Puzzle.

The Kr8sswords Puzzle is a crossword puzzle app that runs in pods on Kubernetes. It takes advantage of a full CI/CD pipeline in Jenkins that also runs in a pod, automating the entire build-and-deploy process. And it includes a bunch of other cool components that we don’t want to spoil for you because it’s much more fun to boot up the app yourself and see the different pieces in action. (Okay, here’s a hint: React frontend, Etcd caching, and MongoDB persistence.)

As the tech skills gap grows and more IT roles remain unfilled, the search for top tech talent has never been more competitive. Companies are upping the ante with perks like yoga classes, nap pods, free meals, unlimited vacation days and more in order to attract and retain employees. But according to Stack Overflow’s annual…

As the tech skills gap grows and more IT roles remain unfilled, the search for top tech talent has never been more competitive. Companies are upping the ante with perks like yoga classes, nap pods, free meals, unlimited vacation days and more in order to attract and retain employees. But according to Stack Overflow’s annual developer survey, there is one factor that potential employees in the tech sector value more than anything — even more than pay and compensation — and that’s opportunities for professional development and continued learning.

Source: Stack Overflow

The response from more than 22,000 developers that Stack Overflow asked shouldn’t come as a surprise to anyone who has ever worked with developers and programmers. With 90% of the survey’s respondents also stating that they are at least partially self-taught, it’s clear that the industry is a community of learners. Many of our leaders have been self taught and driven by pure passion for technology — Steve Jobs, Bill Gates and Mark Zuckerberg all famously left prestigious universities in their pursuit of technological innovations.

Investing in continued learning and education isn’t just a good way to attract new talent, but can also be used as a tool to keep current employees engaged, productive and feeling empowered — making them less likely to take their skills elsewhere. The impact of disengaged employees can be staggering, affecting everything from staff retention to morale to a company’s bottom line. Gallup estimates that a disengaged employee costs an organization about 34% of their salary per year, but re-engaging these employees offers an opportunity to improve performance, profitability and customer experience.

At Kenzan, continued development and learning is not only a big part of our culture, but part of our business. As a software engineering and digital consulting firm that is tasked with helping clients make the most out of technology, it’s crucial that our teams stay current on the tools and tech that are leading the industry.

We are continuously improving how we enable our employees to skill up. Here’s a few things that we’ve learned that help ensure a well-supported learning community within an organization:

Develop a continuous feedback loop of learning.Managers who recognize progress, tangible goals, and teach-back opportunities will have stronger relationships with their reports and a clear roadmap for their team.

Provide a structure for training requests.A clear process allows all staff to understand what is considered a reasonable request and that requesting training is not considered self-serving. Providing structure opens the door for new or shy team members to take opportunities because they know it’s appropriate and valued.

Share a clear strategic vision with your team.Most employees want to make sure their training aligns with the organization’s future. Setting the goal posts gives employees the agency to plan their path forward.Implement a way to track skills and progress.Tracking progress means you value the effort that your team is putting in. Unless the team prioritizes training the way you approach other tasks, it will always be at the bottom of the list. At Kenzan, we’re developing a Badge Board to assess team members’ skills and growth based on the organization’s goals and technical vision.

Encourage developers to manage up.Managers have a lot on their plate, and in the tech world, are usually more than just managers. It’s often up to the developer to make sure that their learning needs are part of the regular conversation. For employees who aren’t quite comfortable approaching their manager about training opportunities, we’ve got some tricks for them too:

Set up a clear need that keeps the core of your request in focus. Make sure you have an answer to questions like: “What is your learning goal?How will growing in this area make you a better employee?”

Respect your supervisor’s time. Follow set procedures and follow up with your needs. Even the most thoughtful, learning-minded supervisor is going to forget about the registration deadline. It doesn’t mean they don’t want you to go, but just that they probably had a few fires to fight this week.

Be Flexible. Sometimes your request will be denied, perhaps due to timing or cost. If this is the case, there is likely another resource that offers growth in this skill, but is less expensive or time bound. If the no is because your supervisor doesn’t see a connection to your learning goals or a value to the organization, make sure you’re continuing the conversation to align your goals with your company’s strategic vision.

Whether your goals are in recruiting, employee retention or tied directly into business drivers, the value that learning and development brings to an organization is clear. Far too often professional development is overlooked, and far too many talented employees leave a company because their success is stymied by lack of support.

Kate Pisano is the Training and Development Manager at Kenzan, based out of our Rhode Island office. She is responsible for managing Kenzan’s internship program and supporting Kenzanites through continued learning opportunities. With a background in AmeriCorps and program development, Kate’s always excited to help team members grow and advance.

Download our guide to continuous delivery with Spinnaker and Kubernetes. The path to digital transformation is one that many companies, regardless of industry, are taking in order to bring products and services to market faster. As part of this transformation from traditional enterprise to modern software company, the role of IT is now a core…

The path to digital transformation is one that many companies, regardless of industry, are taking in order to bring products and services to market faster. As part of this transformation from traditional enterprise to modern software company, the role of IT is now a core part of business strategy with the responsibility of delivering software to users faster, safer and more efficiently.

Over the past few years, technology has evolved to enable this kind of delivery. The practice of continuous delivery has emerged as a way to enhance the ability of technical teams to deploy software to the end user faster, safer and more efficiently. Kenzan has paired two tools, Netflix’s Spinnaker as the preferred continuous delivery framework and Google’s Kubernetes as the preferred container management platform, in order to provide a continuous delivery solution that can support any enterprise that is pursuing digital transformation.

Since it was created in 2007, GitHub has not only become the primary destination for open source development and distribution, but also one of the largest collaborative platforms on the internet. GitHub’s open source practices have established the platform as one to the most important tools for developers and gives coders of all levels a…

Since it was created in 2007, GitHub has not only become the primary destination for open source development and distribution, but also one of the largest collaborative platforms on the internet. GitHub’s open source practices have established the platform as one to the most important tools for developers and gives coders of all levels a place to learn new skills, contribute to a vast number of projects and work alongside other programmers. Kenzan is a company that leverages the benefits of open source software by opening many of our projects to the community and contributing to others in order to support the technology landscape at large.

More than just a GUI on top of Git, the GitHub platform offers many powerful tools and features that can help maintainers of OSS projects provide a more useful, transparent, and open experience for their project and their community. In this post, we will walk through some of the best practices that can help make an OSS project successful and inspire community participation and contribution.

Getting Organized

In order to ensure a consistent path to PR integrity, acceptance and delivery, it is important to make sure team permissions are setup appropriately. At Kenzan, we identify maintainer and contributor teams for our projects. The primary goal is to establish a protected branch (typically master) for a given repo and those who should have write access to it. Protected branches allow you to give read access to everyone else in the organization or an internal contributing team, but only permit a small team to actually be able to manage the main line of development. Roles can be defined as:

Maintainers – Act as the stewards of the project with sole access to protected branches like master

Contributors – Community team within the organization that are allowed to read and push branches within the repo

Below is an example of a sample configuration that protects the master branch with options like:

Ensuring only the maintaining team can push to master

Requiring PR approvers

Requiring PRs pass a Continuous Integration build

Pro-Tip!Always use teams for delegating repo access, for both maintainers and contributors. This will ensure easy addition and removal of members, as well as a simple and streamlined permissions strategy for your organization and repositories.

Welcoming Contributions

Great software is developed by many people contributing more than just code like testing, refactoring, documentation, and more. However, each project is generally run in a particular way, and so clearly communicating these specific processes and workflows can help make a big difference in the growth and success of your project. Guiding developers and contributors through the following recommendation will help ensure understanding and onboarding from the start.

README.md – First impressions are everything, so a README that includes important information like an overview (your “elevator pitch”), installation/setup, usage and example, license, etc., will ensure first timers to your project know exactly what it is, what it does, and if it is right for them.

CONTRIBUTING.md – by including a CONTRIBUTING.md in your project’s root, you can define the Contributing Guidelines for your project. With this, GitHub can prompt all users who open an issue or PR to your project with a link to read it.

LICENSE – Having a LICENSE file is important to disclose to users how your project can be consumed, used, and distributed. In addition, be aware of the license expectations of any dependencies your project has.

Webhooks – Webhooks allow “push notification” integration with 3rd party services such as a Continuous Integration server like Jenkins. Anything that can be automated in your project (linting, static analysis, style guide, tests, etc) should be scripted and run against every PR to provide fast turnaround and feedback to contributors (i.e. pass or fail). Kenzan uses GitHub PR Builder.

Issues / PRs – GitHub has done a lot to improve the features around these workflows, in particular Pull Request Templates, fields for reviewers, assignees and labels, reactions and many others. These are great features for identifying/establishing ownership and status.

Below is an example of a PR making use of some of the available PR fields like

Contributing guidelines (the yellow banner)

PR templates (the content inside the textarea)

Reviewers / Assignees

Pro-Tip!Always create an issue for any non-trivial change. This promotes discussion of the feature to happen independently of the code review itself.

Bonus!If you link to the issue in the PR, using #XX (where XX is the issue number) GitHub will close the issue when the PR is merged.

Steering the Project

As a project grows and matures, planning out goals and improving documentation will naturally require some additional organization. No worries, GitHub has you covered!

Project Management – Leverage features like milestones and projects to group issues into related buckets of work. At Kenzan, we see projects as sprints (in agile terms with one or more projects making up a milestone. This allows a project’s mantainer to communicate their roadmap clearly and can help direct contributors to where help is most immediately needed. It also helps establish feature / bug delivery expectations.

Release Management – Whenever a Git tag is pushed to your repository, GitHub will create a link to a page for that tag, thus enabling the easy creation of release notes for every tag. This is useful for tracking progress over time and to keep a record of features and bugs completed.

Wiki – The wiki is a great place to organize and manage supplemental information for consumers and developers. Rather than pack everything into the README, the wiki can be used to establish separate documentation for onboarding, migration guides, API docs and more.

GitHub Pages – GitHub Pages are a simple way to generate web content from source code or even just markdown and deploy that to a domain. This is a simple way to create a nice product, marketing, or API documentation for users with minimal fuss and overhead.

Gitter – Gitter is a chat platform that integrates with popular development/OSS tools like GitHub, Jenkins, Bitbucket, Trello, and others that can allow you to foster a real time community around your project, assist others or let the community jump in and help!

In the below screenshot, we can see an example of the project feature in action, tracking issues sourced from the issue tracker.

Closing Thoughts

Hopefully this has helped shine a light on some of the great features and workflows GitHub offers to support the development of your own OSS project. It is important to remember that Open Source is an inclusive process by nature, so make sure to be open to feedback and respectful of all contributions. OSS will undoubtedly attract contributors of all skills levels, so make sure to engage openly and without prejudice. Likewise, if there are small bugs or documentation tasks, you can recommend those to newcomers as part of your onboarding documentation. With robust documentation around your project and workflows, developers are more likely to contribute and newcomers can self-onboard, with minimal guidance from you.

Most importantly, developing software should be fun and rewarding. When the right people get together with the right tools and in the right way, great things can happen. Happy coding!