
About Me
Welcome to my homepage! Here you can see a summary of my education, experiences, and projects I have worked on. If you like what you see, or just want some more information about myself, please drop me a line!

- mark.monteiro23@gmail.com
- Phone
- 226-349-3224
- Birthdate
- May 18, 1991
- Website
- www.markmonteiro.info
Experience
Tech Wizard
Senti Solutions Inc.
Guelph, OntarioSenti Solutions is an engineering design company that focuses on unique phase change, energy transfer and mass transfer applications. Prior to the introduction of this position all machines were developed for manual operation with a physical control panel interface. As the sole automation developer for this company, I am responsible for integrating software automation capabilities into these machines using programmable logic controllers and connected HMIs.
This integration starts with the architectural design of systems, taking into account requirements to connect and communicate with multiple machines in order to synchronize larger processing operations. In order to meet rigorous industrial standards, all software requirements are exhaustively documented and tested before, during and after implementation. The development of the HMIs also involves wireframe UX design, which is later complimented with a more concrete design from another designer.
As Senti is still a relatively small company with only one software developer, there are also several other responsibilities that have evolved with this role. I have also taken on the responsibility of advising on digital policy and security for the company, as well as quickly developing small, static websites as needed.
- C#/.NET Core/.NET Framework
- EF Core
- WPF/Prism
- gRPC/protobuf
- Gitlab
- Gitlab Pipelines
- Sysmac Studio
- Balsamic Cloud Wireframes
- Jekyll
- SASS
- Bootstrap 4
- Html-Proofer
- Netlify
Auxilliare De Conversacion
CEIP Montgo
Denia, EspaniaHe vivido en España uno ano y trabajo en una escuela primeria ensenar ingles. Yo estudio español en la escuela de idiomas official de Denia. ¡Yo no se mucho español pero este yo lo he escrito!
Lead Developer
Tarion
Guelph, OntarioTarion is a company that provides warranty protection on new homes to both buyers and sellers. Work for Tarion as a contract developer involved developing a new internal application that is used for generating risk assessment reports on home builders.
The application includes a REST-based API backend that services two different front-end applications and also integrates with several other internal web services.
As the lead developer on this project, responsibilities included:
- Design and documentation of the overall software architecture.
- Software development and testing.
- Coordination and code review of work from other project developers.
- Dev-ops work to deploy to and maintain multiple production and testing environments.
- Development of automated unit tests, integrated with the CI build process.
- Managing a JIRA project to track work (keeping tickets up to date).
- Development of project documentation.
Lead Developer
Deafblind Network of Ontario
Guelph, OntarioThe DBNO is group made up of individuals, organizations and service providers who work together to provide services for Ontarians who are deafblind. Work for DBNO as a contract developer involved creating their new web portal for deafblind people and caretakers to apply for intervenor service funding from the government of Ontario.
This project was a special challenge because it was necessary to include as many accessibility features as possible so that it could be navigated and used by users with various visual and auditory impairments. This was done with a React-based application to provide a fast, fluid, and dynamic interface, without compromising accessibility. Before launch, the site was demoed with several test groups with visual and auditory impairments and was received well.
As a development lead on this project, responsibilities included:
- Design and documentation of the overall software architecture.
- Software development and testing.
- Managing a Jira project to track work (creating and updating cases, organizing the backlog, planning sprints, etc).
- Dev-ops work to maintain multiple production and testing environments using CI/CD automation to integrate source control, code review, testing and deployments.
- Development of source code documentation for future developers.
- Client interaction to develop additional requirements for the product.
Project Lead
Value Connect
Guelph, OntarioValue Connect is a property appraisal management company, harnessing technology to facilitate speedy turnaround times and build advanced, consistent reports.
As team lead on this project, responsibilities included
- Design and documentation of the overall software architecture.
- Software development and testing.
- Managing a JIRA project to track work (creating and updating cases, organizing the backlog, planning sprints, etc).
- Dev-ops work to maintain multiple production and testing environments using CI/CD automation to integrate source control, code review, testing and deployments.
- Development of documentation for future developers.
- Client interaction to develop additional requirements for the product.
Web Developer
Sandbox Software Solutions
Guelph, OntarioSandbox Software Solutions provides development services for custom software solutions, web portals/intranets, content managed website development, and mobile app development.
Many sites are created in Sandbox's proprietary Oasis Content Management System, which is developed using Java, Hybernate and Velocity Templating. Other websites and projects have been developed using C# (ASP, WPF), PHP (Laravel) WordPress or Drupal, depending on client requirements.
- ASP.net MVC
- ASP.net Web Pages
- Entity Framework
- Laravel
- Windows Presentation Foundation (WPF)
- Windows Communication Foundation (WCF)
- Oasis CMS
- WordPress
- Drupal
Bachelor of Computer Science
University of Waterloo
Waterloo, OntarioFive-year program developing a solid understanding of the fundamentals of computer science and its applications. This is a co-operative education program involving six work terms as part of the degree, providing a total of two years of valuable work experience.
Relevant Courses: Distributed Systems, Concurrent and Parallel Programming, Computer Architecture, Database Management, Algorithms, Data Structures and Data Management, Operating Systems, Object-Oriented Software Development
SketchUp Plugin Developer
Renoworks
Guelph, OntarioThis was a short-term contract job to develop a proof-of-concept exporter for SketchUp. The exporter rendered a view of the current 3D model in a 2D format that could be used in the Renoworks renderer. The plugin was developed in Ruby and C++ using the SketchUp API and also involved the use of a C++ Clipper library for performing binary operations on sets of paths in SVG files.
- SketchUp API
- Ruby
- C++
- SVG
- JSON
- Visual Studio 2013
Full-Stack Engineer
Grand Rounds
San Francisco, CaliforniaGrand Rounds provides subscribers to their program with access to their network of top physicians from whom they can schedule an office visit or get a second opinion on a previous diagnosis. This job involved front-end and back-end work on the main company website and several internal tools. The engineering team worked under an agile-based development cycle, with a focus on test-driven development.
- Ruby On Rails
- Slim
- SASS
- Coffeescript
- Bootstrap
- RSpec
Web Developer
Innovaction
Ankara, TurkeyThis was a part time position working with a small startup company that was based based out of an incubator on the campus of Middle East Technical University. They had several products/projects in flight and this job involved creating websites for these products.
International Exchange
Middle East Technical University
Ankara, TurkeyThe international exchange program allows a student to spend a number of semesters obtaining credits for their home institution in another country. METU is widely considered to be the top university in Turkey, but the experience is not only educational. There is much to learn culturally in Turkey and often while travelling to new countries you also learn more about yourself.
Relevant Courses: Introduction to Artificial Intelligence, Computer Networks, Information Systems Management
Web Developer
Phoenix Interactive
London, OntarioOversaw the design and development of a new proof-of-concept developer portal. Worked on the project from start to finish. This included the creation of potential use-cases for the site, low-level design, implementation, documentation, and a final presentation of the completed work to company executives.
- ASP.net MVC
- Entity Framework
- PDF.js
- Microsoft Compiled HTML Help
Web Developer
TangramCare
Tustin, CaliforniaWorked with a small start-up team to design and develop a new home-healthcare application. Contributed to the development of the Android mobile application, web server and database.
- Tornado Web Server
- KineticJS (HTML5 Canvas)
- Android App Development
- MongoDB
Software Engineer
Phoenix Interactive
London, OntarioDesigned, coded, reviewed, tested and validated software as part of an agile development team. The software was part of back-end server software used by several major banks to manage large fleets (thousands) of ATMs. This also involved limited work in a proprietary version of C++ that ran on the ATMs themselves.
- C#
- C++
- Entity Framework
- Unity (Dependency Injection)
- MKS Integrity
Software Support Specialist
Research In Motion Ltd.
Waterloo, OntarioProvided software support for several developer tools. This involved managing user permissions, answering questions, and performing administrative tasks. Created two web applications for the support team during spare time.
- PHP
- Oracle Database
- JIRA
- Rally
- Perforce
Projects
Countify

- Website
- https://twitter.com/multifyco
- Developed
- April 2014
The Countify product is a stylish sign that can be hung outside a business to track customer check-ins on Foursquare in real-time. It has already seen moderate success with adoption by several businesses in Ankara and even a pre-order from the co-founder of Foursquare.
The website was developed using ASP.net MVC technology and uses a custom-written OAuth2 client (source) to interact with the Foursquare API for authentication. Once authenticated, the back-end server processes push notification from Foursquare in real-time and sends updates to the Arduino board that runs the counter.
Once logged in to the website, clients are provided with a dashboard to manage their sign, and administrators have a dashboard to manage the clients. Administrators are also notified via email of important events such as pre-orders for the sign.
In the time since this initial development, development responsibilities have been taken over by others. The product has also evolved with Foursquare to use the Swarm logo and has rebranded as Multify.
- C#
- ASP.net MVC
- OAuth2 (Foursquare Realtime API)
- Entity Framework
- MySql
DBNO Single Point of Access

- Developed
- Sept 2017 - May 2018
This application is a web portal for deafblind people and caretakers to apply for intervenor service funding from the government of Ontario.
This project was a special challenge because it was necessary to include as many accessibility features as possible so that it could be navigated and used by users with various visual and auditory impairments. Accessibility features include:
- Server-side rendering so that pages can be accessed quickly and correctly be screen-readers on first load
-
Usage of
aria-*
attributes as necessary to support dynamic content on the screen, including page navigation, notifications, form validation messages, etc. - Coordination during page navigation to ensure that all server resources are fetched before the navigation completes. This is done to ensure that React is able to render the full page content in a single render cycle so that the dynamic content inserted into the page is read correctly by screen readers.
- Multiple high-contrast themes as alternatives to the default styling that can be switched to at any time.
- Pop-up dialogs for each section of content with ASL videos, along with captions and transcripts.
- Integration with Browsealoud for several additional accessibility features, including text-to-speech.
The site was tested extensively using screen readers during development, and also tested successfully by users with visual and auditory impairments before launch.
- .NET Core Web API
- EF Core
- Stateless (state machine library)
- React
- Server-side rendering
- Redux
- Webpack
- BrowseAloud
Drumpfinator+

- Website
- https://addons.mozilla.org/en-US/firefox/addon/drumpfinator-plus/
- Source
- https://github.com/mark-monteiro/drumpfinator
- Developed
- August 2016
This was a quick and simple project used as an opportunity to gain familiarity with the development of browser extensions. The application uses the native Javascript TreeWalker API to scan the DOM and replace the name of Donald Trump with colorful and dynamically generated names. The MutationObserver API is also used to monitor the DOM for changes and perform the same operations on dynamically added content.
- Chrome/Firefox Extension
- MutationObserver API
- TreeWalker API
- Code Climate
Mark Monteiro

- Website
- https://markmonteiro.info
- Source
- https://github.com/mark-monteiro/markmonteiro.info
- Developed
- April 2015
This website is built with Jekyll, a static website generator. They layout and styling for the site were branched off of a free base theme from startbootstrap.com and modified appropriately. A notable modification is the incorporation and modification of a vertical timeline from codyhouse.co.
The site is hosted using Netlify, which provides simple, free hosting for static websites using the Jekyll web framework. The collection and templating features of Jekyll are used to abstract the rendering of each project in the portfolio section.
The site also integrates several CI/CD components. New code changes are integrated using GitHub pull requests which automatically runs tests on TravisCI, builds a deployment preview with Netlify, and analyzes code quality with CodeClimate. When all checks have passed the branch is safe to merge into master at which point a new build is automatically triggered and deployed live with Netlify.
- Jekyll
- Bootstrap
- SASS
- CSS3 Animations
- Netlify
- Travis CI
- Stylelint
- HTML Proofer
- Code Climate
Smokes, Let's Go

- Website
- https://smokesletsgo.com
- Source
- https://github.com/mark-monteiro/SmokesLetsGo/
- Developed
- August 2014
This site was made as a joke between a few friends as a tribute to the tv show Trailer Park Boys. Though it is very simple in execution, the development involved getting familiar with a few new technologies.
Using the Google Maps Javascript API, the website does a simple search and displays the results on a rendered map. It is hosted using the Amazon EC2 elastic cloud hosting system.
The project uses the online PhoneGap Build system to package the web application into native applications for Android, iOS, Windows Phone and Blackberry (though none have been published yet).
In addition, pushing to the branch on GitHub triggers a web hook on the that updates a test server (test.smokesletsgo.com). The same hook also packages the new source code in a .zip file, uploads it to the PhoneGap Build website, and triggers a new build using the PhoneGap Build API.
- Google Maps Javascript API
- PHP
- Adobe PhoneGap (Cordova)
- PhoneGap Build API
- Github Webhooks
- Amazon Elastic Compute Cloud (EC2)
Value Connect

- Website
- https://www.valueconnect.ca/
- Developed
- August 2016 - May 2017
Value Connect is a property appraisal management company, harnessing technology to facilitate speedy turnaround times and build advanced, consistent reports.
The project was generated and scaffolded using the JHipster Yeoman generator. The technology stack includes a back-end JSON API created with Java and Spring, and a front-end single page website written in AngularJS.
Listed below are some notable features of the software and interesting development points:
- Reports are built with a custom form-builder solution that supports partial completion. A custom server-side validation solution is also used and integrates with Angular Material to dynamically display validation errors in the front-end. All submissions are versioned and each version can be viewed or reverted to at any time.
- The workflow for each report is managed by a pre-defined state machine, implemented using Spring Statemachine.
- Access to software is divided among many different security roles and managed by Spring Security. The site has passed a rigorous 3rd party security audit provided by Coalfire.
- Google Maps Geocoding API is used to automatically locate and verify user submitted addresses. It is also used to auto-populate city, province and postal code fields on user forms.
- Google Maps Distance Matrix API is used to automatically calculate distances between locations.
- Google Maps Static Maps API is used to automatically generate maps that are used in the final report.
- Multiple languages are supported using Angular Translate.
- Java
- Spring
- Angular 1.5
- JHipster
- MySql
- QueryDSL
- MapStruct
- LESS
- AngularJS Material
- Gulp.js
- Gradle
- Beanstream
- Google Maps API (Static Maps, Distance Matrix, Geocoding)
- BitBucket
- JIRA
- Jenkins