Who am I? What did a Computer Scientist do during a typical career? Example: Scientific software engineering
I've recently been preparing some "cover letters" for a potential career change and it turns out I've had a reasonably varied career so far as a "Computer Scientist". Here's an example I did recently covering scientific computation and software engineering.
Scientific computation and software engineering
Developed a computer program for pasture growth modelling
for DSIR (1985, New Zealand).
15 years experience with UNIX systems & kernel
programming, distributed systems and Open systems (UNSW, start-up in Sydney,
ABC TR&D, CSIRO Software Engineering experience). This was considered
directly relevant to scientific software development due attention to detail
and quality requirements, similar technology stacks and methodologies etc.
Senior Software Process Research Engineer (CSIRO Cross-divisional
Software Engineering Initiative, I worked primarily with Plants, Tropical
Agriculture, Soils, Land and Water) working with teams of managers including
divisional chiefs, end-users, stakeholders, scientists, programmers, software
engineers and other software process engineers working in other divisions to
discover/research/customise/trial/improve/train others etc for best-practices in software development
practices in CSIR0 (1996-1999). Also provided specific architectural and technology
advice and hands-on assistance to integrate modelling environments, and
re-architect modelling applications etc. Spent some time evaluating appropriate tools for light-weight software engineering support across distributed software projects (e.g. version control tools, testing tools, development environments, collaboration tools, etc), including modelling and simulation tools (as a lot of be-spoke scientific software was re-inventing the "wheel" as they were used for generic modelling and simulation. A lot of modelling in the last 2 decades has been focussed on climate change modelling).
Project manager and software architect, soil modelling
software application in Division of Soils (1998-1999). Worked with scientists, stakeholders,
end users, programmers to architect, develop and test a new program to
integrate multiple approaches for modelling, analysing and visualising methods
related to soil hydraulic properties and allows for integration in other
modelling tools. Trialled best practices for scientific software engineering
including use of modern Object oriented language (Java), methods and tools
(Java, UML based architecture tools, trial of OO GUI methodology, custom architectural
frame-work supporting pre and post conditions to facilitate automatic integration
of new methods/algorithms over time, data/model providence linking and ability
re-run models, explicit units and automatic unit conversion, GUI prototyping tools, development and testing
on multiple Operating systems for multiple browsers, use of Java Applets to
facilitate rapid testing for end users, etc).
CSIRO Grid computing (cluster) project (2003), software
architect for Grid computing project (CSIRO ICT Centre, eScience project)
developed dynamic execution of astronomical image processing workflows using
web services from large scale astronomical data archives on a Grid Data and
Compute Cluster.
Visiting Senior Research Fellow/Project Manager/Chief
technical resource (UCL OGSA Grid project, UCL Computer Science Department,
London, 2004). Program manager for distributed Grid OGSA evaluation project
(London 2 locations, Newcastle, Edinburgh) to establish and evaluated OGSA
software and trial application software. Re-architected and trialled sample scientific
chemistry application (modelling for drug design) as a distributed Hadoop-style
map-reduce application using web services as first-order entities and explicit
workflows. (This real application was subsequently replaced as the main trial
application for the project with a synthetic application loosely based on it
but which was more flexible and which had more realistic and larger data
sizes). Many of the ideas discovered/reported formed the basis for public cloud
computing (e.g. resource metering, pay-as-you go billing, virtual machines for
isolation and security, use of web services for end users to manage and deploy
application code for extreme scalability across distributed resources).
Note that there is some overlap between these areas and general software engineering, software architecture, distributed systems, data analytics, etc. I also recall that I worked with some super clever people in scientific R&D organisations with a passion for the "science" and making an impact. Sometimes there was a lot of "translation" from their domain specific scientific and mathematical way of thinking, into something that software engineers and end users could understand and hopefully do something useful with (hiding or abstracting away the detail was often critical. I used a lot of visual modelling techniques and prototyping to assist with this process. Also some effort to translate -and often re-engineer without adding too many bugs - from older spaghetti code languages and algorithms such as Fortran into Java what fun).
very informative blog and useful article thank you for sharing with us , keep posting learn more Data Science Online Training Bangalore
ReplyDeleteGreat Article
ReplyDeleteData Mining Projects
Python Training in Chennai
Project Centers in Chennai
Python Training in Chennai