DevFacto Community Foundation: Software Innovation for Charities

We’re excited to announce the start of the DevFacto Community Foundation, a program that connects talented young developers with not-for-profit organizations to create software solutions that make a difference. Through the foundation, we want to help our local communities innovate the best way we know how – by building software that humans love to use.

The DevFacto Community Foundation works in two ways: it offers promising developers a chance to hone their skills while working on a real-world projects, and it helps not-for-profits fulfill their mission with modern tools and apps. The foundation has already completed its pilot project and released the first mobile app called Missions. The app was built in partnership with the Edmonton Skills Society and Lethbridge-based Southern Alberta Community Living Association (SACLA), two not-for-profits that help people with disabilities experience meaningful lives as valued citizens.

Here is a snapshot of what Missions looks like:

Missions App Demo

A bit of history

For the last twelve years, we have supported numerous charities in our communities. We fundraised, donated and contributed employee time to numerous causes which include United Way, Stollery Children’s hospital, and Movember Foundation.

Over the years, we noticed that charities have a hard time keeping up with technology. In particular, they struggle with building custom solutions, apps and portals that empower their missions and enable unique experiences for their sponsors and supporters. Charities cannot afford standard consulting rates, and even at a discount the amount of money spent on a software solution is hardly justifiable when faced with other priorities. As one of Canada’s premier consulting companies, we wanted to empower charities through technology. As it turns out, almost by happenstance, we might just have found the way to do it.

Putting skills to a good use

Young developers rarely get the opportunity to apply their hard skills in real-life projects. They know how to code, but they lack the experience that comes from designing and building enterprise-grade solutions. Applying project methodology or mastering communication and teamwork can’t be fully taught in a classroom setting. But without that know-how, it can be difficult for developers to progress their skills.

At the same time, there is a strong demand for modern tools and technology among not-for-profits that look to support local communities in new ways. They want to leverage software and mobile applications to reach those in need of help. While custom built solutions can bring these organizations closer to their communities, limited budgets often stand in the way of achieving this goal.

Aware of these challenges, we wanted to make a difference in a meaningful way, and we found just the way to do it.

High school students build an app

While judging a Skills Canada competition, Matt Waggoner, one of our star developers, met some highly capable highschoolers. Ben Lehmann and Shashank Bhat, Grade 11 and Grade 12 students at the time, who took the top spots at Skills Canada were certainly ready for the next challenge.

You may already know that here at DevFacto we’re seriously committed to empowering the next generation of software developers and we even run a co-op program in partnership with the University of Alberta and the University of Calgary. However, as high school students, Ben and Shashank, wouldn’t qualify for it.

So, when Matt got back to the office the following Monday, he knew there was something he could do. With the support from DevFacto, he set out to find the right project for the students to work on. He connected with SACLA and Skills Society, two not-for-profits who were looking to build a mobile app that helps people with disabilities fully explore their community.

Under Matt’s watchful eye, Ben and Shashank spent their summer at DevFacto developing Missions, an app that makes it fun for people with disabilities to discover new interests and build a sense of inclusion with their community. Users select missions from a list of specially pre-designed activities and then complete them with their families or allies. The app offers them a chance to explore exciting things to do in their neighbourhoods and to reflect on their experiences. Skills Society and SACLA will use Missions app to empower people with disabilities and help them achieve their individual goals.

See a complete demo of user functionality in Missions:

DevFacto Community Foundation: how does it work?

The DevFacto Community Foundation offers not-for-profits a chance to build custom applications at a fraction of the cost. Talented young developers do the coding while seasoned DevFacto consultants manage and guide their work. As DevFacto, we provide methodology, on-going mentoring, and project management throughout the engagement. We also closely guide the students to ensure that the final product meets the business needs of our not-for-profit partners.

All the proceeds from the project go exclusively towards student’s wages. DevFacto offers its services pro-bono. In the future, any money left from the projects delivered by the foundation will be put towards a scholarship fund for students who participated in the program. We trust that this will further support young developers and encourage them to pursue education in STEM fields.

And now, the good stuff! DevFacto Community Foundation will build more apps in 2020. If you represent a registered charity that needs a consumer-grade application, we would love to hear from you. Let’s find a way to empower your organization with technology – get in touch.

The DevFacto Internship Experience

For several years now, we’ve been running a co-op program in partnership with the University of Alberta and University of Calgary. In that time, we’ve had the chance to mentor many bright and talented students from the departments of computing science and computer engineering who chose to kick-start their careers with an internship at DevFacto. Curious to know what an internship in software consulting and product development is like? Read on to learn what some of our recent and current co-op students have to say about their internship experience. You can also access our current co-op postings on PlacePro (UofA) and CareerLink (UofC).

Co-op students Darren Tran and Anas Mohamed attending DevFacto’s 2019 QualityConf

Darren Tran

Darren is a Computer Engineering, Software Option student at the University of Alberta and a bit of a fitness fanatic. He has just finished his eight-month long internship at DevFacto.

Why did you choose DevFacto for your co-op internship?

I wanted to get the most of my co-op experience and searched for opportunities at software consulting companies. The thing that stood out to me the most about DevFacto was the emphasis on employee happiness — and from what I have experienced here, it definitely holds true!

What kinds of projects have you worked on at DevFacto?

I’ve worked on a couple of different projects, the most interesting one so far is a game portal for a high-profile corporate client the name of which our marketing team won’t let me share. Essentially, the project is made up of four elements: a website, an admin site, a trivia game (which will be part of the website) and a back-end to support it all. The game drives visitors to the website, the central hub with information about the products our client is selling. Visitors will get to play games to earn rewards and win prizes.

One of the things I enjoyed the most about this internship is being able to work with brand new technologies that I have never been exposed to before. For example in my last project, I worked on the back-end with AWS and Serverless.

What skills did you get to develop and practice during your internship?

On the technical side of things, I have learned new programming languages, frameworks and libraries – React, Typescript, Serverless just to name a few. I have also learned to work with others in the agile/scrum process. In terms of soft skills, I feel like I learned how to better communicate my ideas with other project members. Having a daily stand up with the team opens communication and helps us keep track of the tasks between team members.

Can you share your favorite DevFacto experience so far?

Definitely Friday beer o’clock to wrap up the week! Aside from that, meeting and learning from all the amazing people around the office has been invaluable.

Anas Mohamed

Anas is a Computing Science student at University of Alberta and he’s currently completing an eight-month internship at DevFacto. When he’s not working with computers, he’s picking up new hobbies. His newest one is learning Japanese.

Why did you choose DevFacto for your co-op internship?

The biggest appeal of an internship is the experience. With that in mind, I chose DevFacto because I felt assured that there would be no lack of volume or variety in the experience that I would gain.

What has been the most interesting project that you have worked on so far?

Beacon, for sure. Beacon is an internal project focused on rebuilding a tool called TechRadar. The tool was used for discussing various tech DevFacto teams wanted to adopt, avoid, etc. In simple terms, it’s a website we use internally to discover, discuss and recommend tech. What made this project the most interesting one, is being able to witness and participate in the discovery process. We researched why the previous tool failed, what is the purpose of the new tool, and how it’s going to be used. The knowledge and skills I gained from this process, I feel, are hard to come by as a student.

What skills did you get to develop and practice during your internship?

I learned more about full stack web development, database management, and had my first encounters with agile project management as well as UI and UX. I also got to work with a wide variety of teams. Those experiences taught me how to handle working with remote team members, how to collaborate, and most importantly how to communicate (the answer is: often!). Too much communication, I found, is much better than too little.

Can you share your favorite DevFacto experience so far?

Best experience by far has been consistently uttering the same sentence, “Wow, I did not know/think of that”. Almost every day, I’m humbled by the experience and resourcefulness of the people that I work with.

University of Calgary co-op student Alexa Astorino

Alexa Astorino

Alexa is a software engineering student at the University of Calgary and currently completing her internship on DevFacto’s product development team. She discovered her passion for software after attending her first coding class at the university. Her interests go well beyond coding. She has impressive soccer skills and has been playing competitive soccer since she was 5 years old.

Why did you choose DevFacto for your co-op internship?

I chose DevFacto for my co-op internship because through the course of my job search, DevFacto was the only company I felt wanted to take me on not only because they valued my skills, but because they valued me as a person. I had the pleasure of interviewing with David (DevFacto’s CTO) and Zana (Talent Specialist), and I remember feeling very excited that they believed in what I could do, especially as a student, right off the bat. Something that really stood out to me was their desire to find someone that fit with DevFacto’s culture and team, so this was another deciding factor for me.

What kinds of projects have you worked on at DevFacto?

So far at DevFacto, my time has been spent on team Sparrow [Sparrow is an employee engagement platform and Devfacto’s flagship product]. I have been working on improving and adding brand new features to our Administration Portal. This includes contributions to the User Interface, Analytics, User Management and Post Management. We have a big release coming soon that we are all very excited about. Having my teammates by my side has really made working on Sparrow that much better.

What skills did you get to develop and practice during your internship?

In only 4 months here, I’ve developed so many new skills and improved upon existing ones as well. On the technical side, I have learned 4 completely new coding languages and become familiar with new database services. Additionally, I’ve been able to improve my time management and organization skills as I’ve gotten used to the concept of sprints. I’ve also improved my communication and teamwork skills significantly by constantly asking questions, which was very nerve racking in the beginning, and tackling daily problems or bugs with my coworkers.

Can you share your favorite DevFacto experience so far?

My favourite experience so far has been QualConf 2019 and the Summer Party. QualConf [DevFacto’s internal semiannual conference] allowed me to leave with new ideas regarding UX thanks to Figma 101 workshop, important knowledge of security from Web App Security Basics, and an understanding of personal branding. It was really fun and exciting not only to meet and get to know so many people across all of our regions, but also to learn from them during workshops and talks. I was able to bond with people I always hear about in the office and learn about their experiences at DevFacto. It was also a great chance to catch up with the Edmonton interns.

Co-op students Ben Ripka, Anas Mohamed and Jack Xia at a ski trip with fellow DevFactonians

Jack Xia

Jack is studying a Computing Science at the UofA and currently completing his internship at DevFacto. He’s a huge Pink Floyd fan.

Why did you choose DevFacto for your co-op internship?

The culture. DevFacto values people most.

What has been the most interesting project that you have worked on so far?

It was definitely a live auction portal. What makes it different from other projects is that it’s a real-time application, which means that users get real time and up-to-date notifications every time the state of an auction changes. My role involved developing new features for the site.

What skills did you get to develop and practice during your internship?

I gained considerable experience in full stack development – I developed for front-end and back-end and deployed apps to the server. In addition to the hard skills, I also learned how to effectively communicate with other developers and project managers and how to resolve problems.

What has been your best experience at DevFacto so far?

My favorite thing is that I can always get mentorship from experienced developers. Curtis has helped me all along this internship.

Co-op student Zach Drever at 2019 QualityConf

Benjamin Ripka

Ben is a Computer Engineering student at the UofA. Whatever free time he’s got, he spends it outdoors hiking, biking and snowboarding.

Why did you choose DevFacto for your co-op internship?

Consulting seemed to me as one of the best ways to get hands-on experience in the software development industry. I figured it would provide contextual examples of how software systems are created, used and maintained in businesses. Specifically, I decided on DevFacto because the people seemed fantastic and I thought the company culture would be a fit for me. I was right.

What has been the most interesting project that you have worked on so far?

My most significant project during this internship has been an end-to-end testing system I designed and developed for a webapp used by thousands of people every day. Our client has an in-house QA team that performs frequent manual regression testing to make sure all the features are up and running. This gets quite costly, and so they hired my team to automate the process.

I had a lot of autonomy on this project which lead to a massive increase in both my confidence and understanding of software systems. Through the process I also gained many new skills such as C#, .NET Core, NUnit, Selenium, React and Specflow.

What skills did you get to develop and practice during your internship?

First and foremost, I’ve built a set of skills required to work with cross-disciplinary teams. This includes skills like version control (git), sprint planning, demos, and general communication. Second, I’ve picked up more technical skills with C#, Javascript, .NET, React, etc. than I could have ever hoped for!

What has been your best experience at DevFacto so far?

My best experience at DevFacto would have to be the Beer O’Clocks after work on Fridays. It’s when all of DevFacto (or most) get together in the lounge for some drinks and snacks to hangout and play games after a full weeks’ work.  It is the perfect environment to get to know everyone and talk about everything from the weekend plans, to passions, to career goals, etc. I’ll never forget the feeling of such a lively bunch all jammed into the kitchen!



We’re Launching a Sabbatical Program to Help DevFactonians Grow

When David, Ransel and I set out to design a different type of company over twelve years ago, we were all young and naive. We knew what we liked and disliked about our past employers, and we were driven to create a different kind of work environment: one with a great, constantly evolving culture and a lot of flexibility. As our first joint decision at DevFacto, we came up with a simple mission statement, or rather a simple mathematical equation (since the three of us are geeks): “Happy Employees = Happy Customers”. This equation has stood the test of time and has been our guiding beacon ever since.

Years later, it isn’t just a nice-sounding catch phrase. It’s how we work. In fact, we continuously measure employee happiness and client happiness. We take this so seriously that our executive team’s compensation is closely tied to these two metrics.

To keep our employees happy, we look after their well-being in many different ways. And while the list of our perks and benefits is vast and fairly unique, we felt it lacked something to reward our longest-serving staff. The ones who have been with us for many years, doing great work for our clients and pushing us to get better along the way. The smart, talented and loyal employees that most CEOs dream about. The kind of people that recruiters call me about to express how frustrating it is to try to “poach” them from DevFacto. We owe our success to them. Although we don’t believe in rewarding roles based on tenure, we wanted to celebrate and honour employees who have been with us for a long time. So, after some conversations with our amazing staff we came up with the concept of “Discovery Days”.

“Discovery Days” is a two- or four-week fully paid sabbatical, duration of which depends on the length of service with the company. It’s main purpose? Expand the employee’s horizons as a human being. Employees that qualify, apply for the program by sharing what they will do with the time and how it will take them outside of their comfort zone. It doesn’t need to be extreme, although it very well could be. Anything goes, as long as it meets the following criteria:

  1. You will do something that will help you grow as a person.
  2. You will document the journey and share it with the team via a Pecha Kucha talk.

The program has launched, and the initial reception has been great. I can’t wait to learn about our employees’ adventures and if you’re as curious as I am, be sure to keep an eye on our social media profiles where our marketing team will be sharing these journeys in the upcoming weeks/months. After all, personal growth and self discovery enrich the entire community and not just the individual.

And who knows, maybe we will end up rewriting that simple equation to “Happy Employees + Discovery Days = Delighted Customers.”


Hackathon Tips from a Hackathon Mentor

Last month, The University of Alberta’s Computer Engineering Club held HackED, an annual 24-hour student hackathon. I had a great time volunteering at the event alongside a bunch of DevFactonians, and even had the privilege of judging several great projects to cap off a wonderful weekend.

One of the biggest reasons to participate in a hackathon is not necessarily for the prizes (although there were plenty!), but for the valuable learning experience that the setting of these event offers. So, if you are considering taking part in a hackathon, read on! I’ll be sharing a few helpful tips for anyone preparing themselves for a similar event.

Plan Your Project

In most hackathons, time is the biggest constraint. At HackED, students were given only 24 hours— that’s not a lot of time! While observing several teams, I noticed that the biggest trap participants fall into is picturing the finished product and not planning out how to get there. It might seem counterintuitive to dedicate a lot of time to planning when you’re given a short deadline. However, even 30 minutes spent early in the hackathon means uncovering potential issues before they can surprise you!

Planning a project doesn’t need to be time-consuming, complex, or boring. A planning tool I like to use with teams is a Kanban board. It’s as easy as putting to-do items on sticky notes and then arranging your notes into columns titled “To-do / In Progress / Blocked / Complete”. You can even go one step further and use differently-coloured sticky notes to categorize your work items. When work is being done, write down the name(s) of those who are working on an item. This helps to prevent confusion and also provides a rough gauge of who might be taking on too much/too little work. Lastly, remember that plans can change. If the finished product you were picturing is no longer possible, at least you have an existing plan that can be adapted!

If your hackathon space isn’t conducive to having a physical Kanban board, I recommend Trello to keep it all paperless. It’s free and simple to use, making it perfect for a hackathon!

Ask for Help

Students and industry professionals alike volunteer their time to help you out. It might feel awkward to have to pipe up and flag somebody down, but trust me, it’s worth it. At work, I’ve had moments where a 5-minute conversation solved a coding problem that I had spent hours trying to crack by myself. At HackED, we have mentors with web, mobile, 3D, embedded, and hardware experience. If we don’t know the answer, we can find somebody who does.

Take Regular(-ish) Breaks

Developers are an interesting breed: we need extended periods of undistracted time to solve tough problems, but we also need time to decompress. When starting your project, decide on when the team should take breaks (for lunch, for snacks, or simply to relax) and give your minds a rest. Set a rule to not even talk about the project while you’re taking your break. As unintuitive as it may sound (the clock is running!), your mind needs a break too. For those who need to be told when to take breaks, the Pomodoro Technique may be helpful.

Sleep (Yes, sleep!)

I get it, 24 hours is not a lot of time. But then again neglecting sleep is probably going to hurt your project. Some teams that I assisted ran into problems caused by late-night coding. They patched issues with hack after hack, eventually causing a big mess that became hard to fix. Plan that the whole team (no late-night warriors allowed!) gets at least 6 hours of sleep (either on-premises or elsewhere) and re-convenes in the morning, recharged and motivated to finish the project. Lucky for us, breakfast was provided at HackED making hackathon Sunday a little less stressful.

Rehearse Your Demo

Judging can be subjective, but all judges appreciate a well-prepared demo. Some teams straight up admit they are at the hackathon for the learning experience rather than for building a demonstrable product, and that’s ok! So as long as the presenters knew what they wanted to say, us judges appreciated the gesture.

For teams that have something they want to demonstrate, it’s useful to describe what your project was about, and what each person did. From there, demonstrate key areas of your project and leave time for questions. I recommend leaving the last 30-45 minutes of your hackathon to identifying what you’d like to demonstrate, and then rehearsing the demo at least a couple times. Remember that a hackathon is a learning environment, so even if you’re not a strong presenter just yet, you can use it to practice your presenting skills as well.

Don’t Forget to Show Up

The last, and most important piece of advice, is to just attend the hackathon, even if you don’t have or don’t feel like you’re ready. As someone who graduated from the University of Alberta not that long ago, I do regret that I never took part in hackathons when I was an undergrad. The excitement in the air at the beginning, the antics that happen as the night wears on, and the intensity of the final hours are just some things you have to experience at least once in your student life.

I hope that these tips will help you get the most out of your next hackathon experience!


Big thanks to the U of A Computer Engineering Club for the opportunity to take part in the 2019 HackEd hackathon and for providing photos from the event. 

Tales of a UX Designer in a Dev Shop

I wonder how many designers, after reading the title of this post, thought of a perfect meme to describe how that scenario plays out. I mean, even though we all know that working with brilliant developers who can bring your most precious ideas to life is the dream, we also expect that the designer-developer relationship won’t be filled with rainbows and unicorns.

Last summer, when I was thinking of joining DevFacto as a UX consultant, not only did I picture those memes too, I was also unsure if this type of challenge was going to be a good fit for me. Could I picture myself debating which features matter and which ones don’t, every single day? Hmm…

Luckily, soon after coming on board, I got to meet the developers over beers and got a true sense of the personalities on the team. The excitement of collaborating with brilliant minds quickly grew on me and I looked forward to learning within a fun, supportive culture. Now, six months into being a DevFactonian, I can report that I’ve learned a few lessons and busted some myths about the relationships between UX designers and developers. Here are my top 3 discoveries:

1. Developers attach to their work as if it were a baby (just as much as designers do)

Whether in a dev shop, or a design studio, we all protect what we create, foster and put effort into making. So, when someone else modifies our work in any way, it’s difficult to detach oneself but very easy to discount any modification as a nonsensical idea.

Whenever that happens, it helps to remember that we are all in this together and we share the same goal – make the best solution possible. Or, as I like to think about it, create “the perfect baby.” In each project, we all contribute from our own experiences to build a product that combines a fresh, sleek look with exceptional functionality. However, ultimately, we do this not to appease our own egos but to create value for the people who will be using what we’ve built.

2. Sharing your process promotes collaboration

After talking to one of our brilliant devs, I realized that effective collaboration is all about sharing the process. The developers write code, make something come to life, and it either works or it doesn’t. In that way, the mind of a developer is binary. Meanwhile, as designers, it is our job to come up with various ways to create success (usually there are many) and put forward the best one in a mockup or a prototype. However, sometimes we fail to share how we arrived at the presented solution. This makes it hard for a developer to understand why we are making certain suggestions and can lead to a rejection of the idea.

Collaboration comes from having a common understanding of a problem.

Therefore, sharing both my approach and context helps them see where I’m coming from and take my modifications as potential improvements, rather than just self-preference edits.

3. Feelings matter

Even if we try our best to be rational and logical, at times it can be hard to accomplish. As software users, we respond to emotions, we make mistakes and get distracted. We like or dislike things based on how they feel, even if that sentiment makes no sense. That’s just how we’re wired. Even though we’re trained to think differently, it is still easy for us to fall into certain patterns and behaviours quickly.

It’s easy to forget we’re all just human and that does not make us the ideal user.

Empathy has been THE card up my sleeve as a UX designer. I use it both internally with our project teams and externally with our clients. In my work, I’ve learned to play that card as much as possible for the sole purpose of creating products so easy to use, that people will want to use them more.

I do know for certain, that there are still many lessons to be learned and plenty of discoveries to be made about the process of designing user-centric software solutions. But one thing I can attest is that despite the left-brain and right-brain differences between designers and developers, the awareness of the value of good user experience goes well beyond our roles.

DevFacto Does Mexico: A Lesson in Team Building

In the weeks and days leading up to the DevFacto 10-year anniversary corporate retreat, I wasn’t sure what to expect from travelling with a group of over 150 employees and spouses Read more

Longing for Change: Empowering Horizontal Ambition in a Flat Organization

From lean start-ups to intricate enterprises, flat and open structures have become the new gold-standard for the modern organization. But while flat structure comes with significant perks (employee empowerment, transparency and engagement to name a few), it definitely presents challenges when thinking traditionally about career growth. Read more

Embracing Your Crucible

Hi, I’m Natalie! I started at DevFacto the second week of September as a User Experience Researcher (UX) / Business Analyst (BA) who has been working in the product software space for the last few years.

Where most organizations will ease you in to your first week or so, my first week at DevFacto started out with a bang. Read more