I decided it was time to write a short bio of myself, and share some of my developer experience. I encourage anyone I might work with in the future to read this.
Development Style:
I believe I work best when I know
exactly what I'm doing, what's expected, and have some creative
freedom to explore my work while I'm doing it. I like getting very
focused when I'm working on a problem and mixing it up with creative
conversations. I find a mix of focused work, and less focused
general discussion with my coworkers keeps me motivated and inspired.
I always find the team works better when everyone idealistically
believes in what they are doing and can share a single vision. It's
that excitement and sense of forwardness that I'm really looking for
in my future professional endeavors.
Background:
I started writing
software at a very young age, experimenting with C++ and then PHP3 at
the time. During college I became interested in animated films (maybe Pixar
inspired me) and worked as an intern at a small CG/Modeling shop in Grand Rapids.
During my time there I worked some with Scene7 (now owned by Adobe)
and used tools like Maya, 3d studio max, Photoshop, After Effects,
etc.
After that company
changed ownership I started working for the notorious Geek Squad (while still attending college), and several years there after found myself working as a Systems Engineer for an
electrical company in Grand Rapids, MI. During my time as a systems
engineer I did some web programming and started taking it more
seriously adopting more standards, learning jQuery, and writing
applications that interacted with MsSQL, and Mysql. After two years
fixing other people's problems and programming routers I decided it
was time to follow my true passion and start writing code full time.
I got the first job I could (and took a pretty big pay cut) at a new
(and small) development company in Grand Rapids. I saw the ins and
outs of getting clients and had a big reality check. I learned what
it was like to work at a startup, the challenges, and the pressure to
get things done. I often wasn't insulated from the customer so I had
no choice but to learn how to interact with customers, define
requirements, and gained an understanding of how difficult it can be
to write code with little to no real direction from anyone but yourself. What a growing experience this was; but I embraced the new challenges and did some work I'm pretty proud of.
After writing
software for clients and working on many projects (including
consumersearch.com) I was made an offer to join an organization that
combined two of my interests (motorcycles and programming). The
prospect of writing new software and having time to work on longer
term projects was very appealing. I was hired in and worked along
side 1 other developer. As the team grew I was made the lead
developer, and then the Director of Technology as the company grew to
over 40 employees.
Today:
Over the last three years here at
Riders Discount I've grown the team of developers and made 4 hires.
I thrive working with a great group of talented, passionate,
professionals. Everyday I try to be a servant leader and work alongside my team on nitty gritty problems and help with design
and planning challenges. Together we decide when to refactor, where
to spend more (or less) time, and I protect the development process
by doing the everyday mundane stuff (write a report for accounting)
myself when it's needed.
I also championed the addition of
Python as the infrastructure language of choice. In my time here
I've found that Python is used in so many different fields that it's
almost impossible to find a software problem that someone hasn't
already worked on in Python. Python is a great glue language for
companies leveraging open source development environments and we have
used it to interact with everything from .Net web services (using
IronPython) to Java Lucene, to wrappers for SIFT image processing
algorithms implemented in C.
Most organizations need applications,
they need to be able to communicate between those applications, and
maintain a life cycle of those applications as well as continually
test the applications. We have adopted a very suitable technology
stack that we've evaluated and vetted based on several factors. In
the end we've come to a pretty stable list of tools to solve our
problems based on a couple factors; they include: code-stability,
documentation, cost of adoption, learning curve, performance, and
community.
This technology stack includes:
Databases:
MongoDB
Postgres
SqlLite3
PyTables
Redis (sessions)
Redis (sessions)
Reporting:
ReStructured Text
Matplotlib (graphs/plotting)
Map-Reduce
Custom Aggregation API's
Python OpenOffice API (custom
procedural spreadsheets)
Search:
PyLucene
Custom JNI Extensions (C++)
Web/Network:
Web/Network:
Parallelism/Network:
Twisted
Twisted Perspective Broker
BSD w/PfSense
Custom Job Queue / Process Monitoring
Python:
Setuptools
Sphinx
Pip
PyPI
Desktop:
pyGTK
Cairo
Twisted / PerspectiveBroker /
GTK-Mainloop
I'm looking forward to the coming years, I've reached a point in my career where I feel like I have enough experience that I can tackle most any challenge with the knowledge I've gained from using such a great set of tools. I remember when all I knew was PHP and I tried solving every problem with it; oh how I've grown since then. I'm sure the coming years will hold even more challenges but I look forward to growing my skillset beyond what I know now. Never stop learning!
No comments:
Post a Comment