IAN
STEWART
SOFTWARE
ENGINEER
PROFESSIONAL SUMMARY
- Ownership, maintenance, and support of project schemas, models, and components shared amongst multiple development teams
- Build/release process and project organization for a large multi-project multi-team web application.
- Optimization of system performance in the areas of database access, graphical rendering, and horizontal scalability.
- Design, analysis, implementation, test, and operational maintenance of major software systems.
- Design, implementation, and maintenance of web-based application components in the areas of collaborative user interaction, graphical user interfaces, and 2d rendering system.
TECHNICAL SKILLS
Languages (Expert):
|
Java, Flex/Actionscript/Molehill, XML, GLSL
|
Languages (Familiar):
|
C/C++, HTML, JavaScript, CSS, PHP, CG
|
APIs:
|
Hibernate, BlazeDS, OpenGL, DirectX, MFC
|
Methodologies:
|
OOP/D, Functional, UML, Design Patterns, SOA, Concurrency, Agile Development
|
O/S:
|
Windows, Linux/UNIX, Sun Solaris
|
Databases:
|
SQL, PostgreSQL, Oracle versions 10g and 11g
|
Tools:
|
Eclipse/FlashBuilder, VisualStudio, JIP (Java Interactive Profiler), Tomcat, PixelBender
|
Project/Source Control:
|
Jira, Ant, Maven, SVN, CVS, GIT, SmartGit, SourceSafe
|
PROFESSIONAL EXPERIENCE
Tapestry Solutions, Inc., CDM Technologies, CA February 2010 - Present
Software Engineer
- Improved the performance of our web application from supporting 20 simultaneous users on initial release, to supporting hundreds of simultaneous users.
- Improved the horizontal scalability of our deployment cluster to support multiple servers interacting with multiple databases.
- Refactored and maintained the system architecture to support efficient development with separation of concerns and reusable code.
- Hibernate database transaction optimization. (Java, Hibernate)
- Build process and project organization management. (Ant, Maven, SVN, GIT)
- Experience working in a leadership roll on a large team contributing to a massive code base, larger than 500,000 lines of code.
CDM Technologies, San Luis Obispo, CA February 2007 – February 2010
ICODES Student Developer
- Development and maintenance of the graphics back end for user interactive software. (C++, OpenGL)
- Design, implementation and maintenance of the web-based collaborative interaction system. (Actionscript, Java, SOA)
- Design, implementation and maintenance of the modular 2d rendering system. (Actionscript)
- Implementation and maintenance of the graphics state persistence. (Java, Hibernate)
EDUCATION
B.S., Computer Science, CalPoly State University, San Luis Obispo, CA, Degree in Progress
Courses Include: C/C++/Java programming; Functional programming (SML); Software Engineering; Algorithm design and analysis; Programming languages; Theory of computing; Computer architecture; Graphics: Animation, Advanced Rendering Techniques, Real-time systems; Networks and distributed systems; Linux systems programming, device drivers; Technical Writing for Engineers
SCHOOL RELATED PROJECTS
Super Human Geneticist: <http://users.csc.calpoly.edu/~zwood/teaching/csc476/final_proj_08.html>
- Voted Top Game amongst the class.
- Experience working in a team to design and develop a real-time 3D video game from start to finish.
- Roles Included: rendering engine framework, shader and texture framework, GLSL shaders, Toon Shading, edge shading, shadow mapping.
Linux multi-touch device driver and mouse simulator for vision based multi-touch systems.
- Project leader.
- Experience working with character device drivers and the Linux input subsystem.
- Produced a publishable quality research paper on the results of the project.
INDEPENDENT PROGRAMMING PROJECTS <ikstewa.blogspot.com>
- Hardware accelerated 2D rendering engine utilizing Flash 11 3D rendering API (Actionscript, AGAL, PixelBender)
- Multi-touch interaction research using low cost vision based multi-touch systems.
- Real-time Image Based Edge Detection using OpenGL shaders.
- Shadow Mapping and Normal Mapping implementation. (OpenGL/GLSL)
- Custom shading pipeline with a focus on real-time image processing effects. (OpenGL/GLSL)