Alexander Bird   //   Software Developer

A passion for building useful, valuable software in a team

Alexander Bird


Calgary, AB, Canada
alex@alexanderbird.software
https://alexanderbird.software

Bio

— Strengths, values, and motivators

Helping Others

I'm motivated by making other people's lives better with software.
Values
  • deploy early and often
  • ask users for feedback
  • build the features that provide business value
  • make room on the development team for everyone to contribute
Strengths
  • communication
    • listening
    • discussion facilitation
    • documentation writing
  • teaching
  • pair programming / mobbing / collaborative code reviews
  • leadership

Innovation

I'm motivated when there is room for innovation: when our team is expected to deliver excellent results quickly by whatever processes and tools we find work best in the current context.
Values
  • measure outcomes instead of developer activities
  • specify the problem (not the tasks to complete)
  • work in small batches; reevaluate process/tools regularly based on results
  • devote time to improvement (instead of always rushing and never going faster)
Strengths
  • requirements gathering, design, modelling
  • slicing large requirements into small experiments
  • working to understand the human/business context
  • communicating the problem to everyone on the team

Technical Excellence

I'm motivated when we spend an appropriate amount of time to test, architect, and document what we build. I have found this pays for itself now, and helps us in the future, because well-written software is:
Values
  • faster to write
  • cheaper to maintain
  • less stressful to work with
  • easier to re-purpose when plans change
Strengths
  • building with quality
  • learning quickly
    • requirements gathering
    • reading documentation
    • reading code
    • learning new languages
  • see Experience section

Experience

2018-2019 Technical Lead Arcurve Inc (various projects)
2016-2018 Software Developer Arcurve Inc (various projects)
2014-2015 Software Developer Intern Arcurve Inc (various projects)
2013 (4 months) Software Developer / Research Assistant Software Engineering Decision Support Lab University of Calgary
Web Browser
CSS
HTML
Highcharts
Angular 7
TypeScript
⇅HTTP
⇅HTTP
Docker
Single Page App
NGINX
REST API
Nest
TypeScript
Data collection & aggregation
⇅various protocols
Well-site sensors

Real-Time Well Monitoring Dashboard

Role: Software Developer
Employer: Arcurve Inc
Client: Oilfield services (publicly traded)
2 people 2 months (ongoing) Tech Lead
  • Led Domain Driven Design style modelling session with team (incl. user researcher, UX, and PM) to clarify the problem statement and approach
  • Prototyped experimental data visualizations with Highcharts from provided mockups
  • Setup project build & test infrastructure (using Lerna to manage the monorepo; auto-generating the Angular SDK from the API Swagger doc)
  • Built inexpensive demo infrastructure so we can deploy before the upstream integration points (external team) are available
  • Conducted job interviews
Web Browser
CSS
JavaScript
AngularJS
⇅HTTP
Server
Express
Node

Mongo DB
Axios
 
⇅HTTP
other services

Reverse Engineering

Role: Software Developer
Employer: Arcurve Inc
Client: Corporate minutebook management (startup)
1 person 5 months Tech Lead
  • Built an import utility for a proprietary data format: inferred the domain model/rules from the data, wrote a custom parser.
  • Integrated this component with our client's code
  • Provided extensive documentation and training so their development team was comfortable maintaining the import utility
  • Conducted job interviews
Web Browser
React
Redux
CSS
JavaScript
⇅HTTP
⇅HTTP
SPA Server
Express
Node
Linux
API Server
C#
Windows
AWS EC2
on-premise

Team Lead

Role: Software Developer Team Lead
Employer: Arcurve Inc
Client: Telecommunications provider (publicly traded)
8 people 6 months Tech Lead
  • Updated team processes to increase knowledge sharing and collaboration between team members
  • Identified a way to temporarily reuse legacy components in order to release sooner
  • Conducted job interviews
Web Browser
React
CSS
JavaScript
iOS
React Native
JavaScript
⇅HTTP
Server
JavaScript
Cypher
Node
Neo4j
Auth. Service
JavaScript
Node
Heroku

Architected for Reuse

Role: Software Developer
Employer: Arcurve Inc
Client: Professional certification auditing (startup)
3 people 3 months Developer
  • Architected and unit tested the application in a way that allowed us to salvage most of the application when the client drastically changed their application after several months (new UI, new data model)
  • Maintained respectful, constructive communication with our client in a challenging team environment
Web Browser
Consumer JavaScript (3rd party)
JavaScript Library
TypeScript
Browser WebRTC API
Stanza.io (XMPP)
⇅WebRTC
⇅WebSocket
Selective Forwarding Unit
Signalling service (XMPP)
⇅various protocols
Other Clients
Browser
Desktop
Embedded

Browser WebRTC Protocol Deep Dive

Role: Software Developer
Employer: Arcurve Inc
Client: Video conferencing (private corporation)
2 people 12 months Developer
  • Integrated the emerging WebRTC protocol with our client's custom video conferencing infrastructure via a proof-of-concept JavaScript library
    • Enabled video calling between a browser and multiple embedded and/or desktop clients
  • Collaborated constructively and respectfully with my technical lead in the face of many differences of opinion
Web Browser
CSS
HTML
Kendo UI
JavaScript
⇅HTTP
on-premise Server
C#
.NET MVC
SQL

IIS
Microsoft SQL Server

Following Patterns; Accepting Feedback

Role: Software Developer
Employer: Arcurve Inc
Client: Land acquisition service provider (private corporation)
2 people 4 months Developer
  • Followed patterns set by previous developers
  • Collaborated through code reviews — receiving (accepting, adopting) feedback, discussing my approach
Web Browser
HTML
CSS
JavaScript
⇅HTTP
Server
PHP
MySQL
Apache
Linux (shared cloud hosting)

Navigated Technical Debt

Role: Software Developer
Employer: Arcurve Inc
Client: Surplus oilfield equipment broker (startup)
1 person 4 months Intern
  • Identified and fixed several illusive bugs in a very indebted and haphazardly constructed application
  • Participated in requirements elicitation from domain experts who had little technical understanding
Microsoft Excel VBA
Macros
Unit Tests
Macro Serializer (3rd party)
Version Control

TDD & Version Control with Excel VBA

Role: Software Developer
Employer: Arcurve Inc
Client: Oilfield services (publicly traded)
1 person 3 months Intern
  • Proposed new business process to reduce lead time for new clients by 50%
  • Modified the existing Excel VBA tool to support the new process
Web Browser
CSS
HTML
Ember.js
CoffeeScript
⇅HTTP
Heroku
Ruby on Rails
Postgres

Software Engineering Decision Support Lab

Role: Software Developer / Research Assistant
Employer: University of Calgary
2 people 4 months Research Assistant
  • Implemented a synchronization utility between JIRA and a proprietary business intelligence / project planning tool

Bachelor of Science in Software Engineering, 2016

Schulich School of Engineering University of Calgary