I help growing tech companies scale up their internet based products to handle the load. It's as simple as that. But when I am at a party and people ask me what my occupation is and my response is “Web Application Architect” I get a funny look. Oftentimes that is followed by people asking “So you are kind of like a project manager?”. No! I would be an awful project manager. I get paired up with project managers but I don’t do the project management.
What a “Web Application Architect” is similar to what a building architect might do. A building architect needs to factor in how a great many systems interact to create a habitable functional environment. Not only do they take in the needs of the people that will occupy the structure but the process of building and maintaining it over time.
An architect needs to be versed in many disciplines so they can design systems that interact with each other. Consider all the parties involved in the construction phase, everyone including plumbers, electricians, steamfitters, carpenters, etc. A building architect would need to be sure that the electrical doesn’t interfere with the plumbing, and the plumbing can support the HVAC systems and so on.
Not only that, but they have to consider how best to construct the building. What tasks need to be done in what order and by whom. You wouldn't want to put the drywall up before the electrical and plumbing is installed.
My job is similar but on a less tangible level. I take into consideration a huge amount of digital services that need to interact to make my clients web based products run smoothly. I have to come up with answers for a lot of tough questions. Questions like the following:
What does communication from our mobile app look like?
How do we partition our data so we can meet our customers needs?
What data gets sent from our source of truth database to our data warehouse for internal analytics?
How can we design a system that is secure and fault tolerant?
How do we keep http requests to our site sub 100 milliseconds round trip from the moment it hits our system to the moment it leaves?
How do we implement a caching system that prevents our source of truth DB from becoming overloaded and slow?
I plan out the entire platform and how the individual systems will interact then I come up with a plan for how we will build it. There is a lot of back and forth between myself and the dev team, the project owners, and the project managers as we polish up the game plan. Once the plan has been flushed out I start working with a project manager and the dev team to begin developing the platform.
Similar to a building architect, or any other architect I would imagine, there is a ton of research that goes into it at first, gathering requirements and what not, then a ton of planning and documentation. Communication is a huge part of the job. If it is not crystal clear, down to the byte, what is getting sent where, when and by what part of the system then that could cascade to huge expensive headaches for my clients down the line. The old woodworker mantra “Measure twice cut once” really applies here.
It is kind of a tough job to explain and it is a lot of work but I seem to be wired for it and I thoroughly enjoy being challenged to invent new things and help teams of people bring them to life.
Signup for the mailing list